الأخبار التكنولوجية والاستعراضات والنصائح!

شرح الانحدار المتدرج والشكل المغلق مع Python – نحو الذكاء الاصطناعي

ستساعدك المقالة التالية: شرح الانحدار المتدرج والشكل المغلق مع Python – نحو الذكاء الاصطناعي

التعلم الآلي والبرمجة

تم تبسيط مشكلة الانحدار وتنفيذها في بايثون

مقدمة

الانحدار هو نوع من خوارزمية التعلم الخاضعة للإشراف في التعلم الآلي. إنه نهج ل نموذج العلاقة بين المتغير التابع (أو الهدف ، الاستجابات) ، والمتغيرات التوضيحية (أو المدخلات ، المتنبئين) ، . هدفها هو التنبؤ بكمية المتغير المستهدف ، على سبيل المثال ؛ التنبؤ بسعر السهم الذي يختلف عن مشكلة التصنيف ، حيث نريد توقع تسمية الهدف ، على سبيل المثال ؛ توقع اتجاه المخزون (صعودًا أو هبوطًا).

علاوة على ذلك ، يمكن استخدام الانحدار للإجابة على ما إذا كان و كيف ترتبط العديد من المتغيرات، أو التأثير على بعضها البعض ، على سبيل المثال ؛ يحدد و ل خبرة العمل أو العمر يؤثران على الرواتب.

في هذه المقالة ، سأركز بشكل أساسي على الانحدار الخطي ومقارباته.

مناهج مختلفة للانحدار الخطي

هدف OLS (المربعات الصغرى العادية) هو العثور على أفضل خط ملائم (مستوى مفرط) يقلل من الإزاحات الرأسية ، والتي يمكن أن تكون تعني خطأ تربيعي (MSE) أو مقاييس خطأ أخرى (MAE ، RMSE) بين المتغير المستهدف والمخرجات المتوقعة .

يمكننا تنفيذ نموذج الانحدار الخطي باستخدام الأساليب التالية:

  1. حل معلمات النموذج (المعادلات المغلقة)
  2. استخدام خوارزمية التحسين (نزول التدرج ، التدرج العشوائي ، إلخ.)

يرجى ملاحظة أن تقديرات الانحدار OLS هي (أزرق ، باختصار). الانحدار في أشكال أخرى ، قد تكون تقديرات المعلمات متحيزة ، على سبيل المثال ؛ يُستخدم انحدار التلال أحيانًا لتقليل تباين التقديرات عند وجود علاقة خطية متداخلة في البيانات. ومع ذلك ، فإن مناقشة التحيز والتباين ليست في نطاق هذه المقالة (يرجى الرجوع إلى هذه المقالة الرائعة المتعلقة بالتحيز والتباين).

معادلة مغلقة

لنفترض أن لدينا مدخلات بحجم X n ومتغير مستهدف ، يمكننا كتابة المعادلة التالية لتمثيل نموذج الانحدار الخطي.

يفترض أن المعادلة لدينا تقاطع X0 = 1. يوجد أيضًا نموذج بدون تقاطع ، حيث B0 = 0 ، ولكن هذا يعتمد على بعض الفرضيات التي ستخضع دائمًا من خلال الأصل (هناك الكثير من النقاش حول هذا الموضوع والذي يمكنك قراءة المزيد هنا وهنا).

من المعادلة أعلاه ، يمكننا حساب معلمات الانحدار بناءً على الحساب أدناه.

الآن ، دعنا ننفذ هذا في بايثون ، هناك ثلاث طرق يمكننا القيام بذلك ؛ الضرب اليدوي للمصفوفة مكتبة و مكتبة.

يمكنك أن ترى أن جميع الحلول الثلاثة تعطي نفس النتائج ، يمكننا بعد ذلك استخدام الناتج لكتابة معادلة النموذج (Y = 0.7914715 + 1.38594198X).

يقدم هذا النهج حلاً أفضل للبيانات الأصغر ، ونموذج سهل وسريع التفسير.

نزول متدرج

لماذا نحتاج إلى نزول التدرج اللوني إذا كانت المعادلة المغلقة يمكن أن تحل مشكلة الانحدار. ستكون هناك بعض المواقف

  • لا يوجد حل مغلق الشكل لمعظم مشاكل الانحدار غير الخطي.
  • حتى في الانحدار الخطي ، قد تكون هناك بعض الحالات التي يكون فيها استخدام الصيغة غير عملي. مثال على ذلك عندما تكون X مصفوفة كبيرة جدًا ومتفرقة. سيكون الحل مكلفًا جدًا للحساب.

النزول المتدرج هو خيار أرخص (أسرع) حسابيًا لإيجاد الحل.

نزول التدرج هو خوارزمية تحسين تستخدم لتقليل بعض وظائف التكلفة عن طريق التحرك بشكل متكرر في اتجاه أكثر انحدارًا. ومن ثم ، يتم تحديث أوزان النموذج بعد كل حقبة.

هناك ثلاثة أنواع أساسية من النسب المتدرجة المستخدمة في خوارزمية التعلم الآلي ؛

  1. نزول دفعة متدرجة
  2. نزول التدرج العشوائي
  3. نزول متدرج دفعة صغيرة

دعونا نتناول كل نوع بمزيد من التفصيل والتنفيذ.

نزول دفعة متدرجة

هذا النهج هو الأكثر مباشرة. يقوم بحساب الخطأ لكل ملاحظة داخل مجموعة التدريب. سيتم تحديث معلمات النموذج بعد تقييم جميع ملاحظات التدريب. يمكن أن تسمى هذه العملية أ.

تتمثل المزايا الرئيسية لهذا النهج في الكفاءة الحسابية وتنتج تدرج خطأ ثابت وتقارب مستقر ، ومع ذلك ، فإنه يتطلب مجموعة التدريب بالكامل في الذاكرة ، كما يمكن أن يؤدي تدرج الخطأ المستقر في بعض الأحيان إلى النموذج غير الأفضل (التقارب مع المحلي الحد الأدنى من المصيدة ، بدلاً من ذلك حاول العثور على أفضل حد أدنى عالمي).

دعونا نلاحظ تنفيذ بيثون لمشكلة الانحدار.

كما نرى ، فإن التكلفة تنخفض بثبات وتصل إلى ما لا يقل عن 150-200 عصر.

أثناء الحساب ، نستخدم أيضًا التوجيه لأداء أفضل. ومع ذلك ، إذا كانت مجموعة التدريب كبيرة جدًا ، فسيكون الأداء أبطأ.

الانحدار العشوائي

في النسب المتدرج العشوائي ، SGD (أو يشار إليها أحيانًا باسم أو GD). يأتي الاسم “العشوائي” و “GD عبر الإنترنت” من حقيقة أن التدرج المستند إلى التدرج اللوني هو “تقريب عشوائي” لتدرج التكلفة الحقيقي. ومع ذلك ، وبسبب هذا ، فإن المسار نحو الحد الأدنى من التكلفة العالمية ليس مباشرًا وقد يتجه صعودًا وهبوطًا قبل التقارب إلى الحد الأدنى للتكلفة العالمية.

لذلك؛

  • هذا يجعل SGD أسرع من GD دفعة (في معظم الحالات).
  • يمكننا عرض البصيرة ومعدل تحسين النموذج في الوقت الفعلي.
  • يمكن أن يؤدي تكرار تحديث النموذج المتزايد إلى تعلم أسرع.
  • يمكن أن يساعد التحديث الصاخب للطبيعة العشوائية في تجنب الحد الأدنى المحلي.

ومع ذلك ، فإن بعض العيوب هي ؛

  • نظرًا لتكرار التحديث ، قد يكون هذا أكثر تكلفة من الحساب ، والذي قد يستغرق وقتًا أطول لإكماله من نهج آخر.
  • ستؤدي التحديثات المتكررة إلى إشارة تدرج صاخبة ، مما يؤدي إلى تقفز معلمات النموذج والخطأ ، وتباين أعلى على فترات التدريب.

لنلق نظرة على كيفية تنفيذ ذلك في بايثون.

نزول متدرج دفعة صغيرة

يعد هبوط التدرج اللوني الصغير (MB-GD) طريقة أكثر تفضيلاً لأنه يفسد بين نزول التدرج الدُفعي ونسب التدرج العشوائي. إنه يفصل مجموعة التدريب إلى دفعات صغيرة ويغذي الخوارزمية. سيحصل النموذج على تحديثات بناءً على هذه الدُفعات. سوف يتقارب النموذج بسرعة أكبر من GD دفعة لأن الأوزان يتم تحديثها بشكل متكرر.

تجمع هذه الطريقة بين كفاءة الدُفعة GD وقوة GD العشوائية. أحد الجوانب السلبية (الصغيرة) هو أن هذه الطريقة تقدم معلمة جديدة “حجم الدُفعة” ، والتي قد تتطلب ضبطًا دقيقًا كجزء من ضبط / تحسين النموذج.

يمكننا تخيل حجم الدُفعة على أنه شريط تمرير في عملية التعلم.

  • تعطي القيمة الصغيرة عملية التعلم تتقارب بسرعة على حساب الضوضاء في عملية التدريب
  • تعطي القيمة الكبيرة عملية تعلم تتقارب ببطء مع تقديرات دقيقة لتدرج الخطأ

يمكننا إعادة استخدام الوظيفة المذكورة أعلاه ولكننا بحاجة إلى تحديد حجم الدُفعة المطلوب

ثيتا، _، mse_ = _sgd_regressor (X_، y، Learning_rate = Learning_rate، n_epochs = n_epochs، batch_size = 50)

يمكننا أن نرى أنه في الحقبة القليلة الأولى فقط ، يمكن للنموذج أن يتقارب على الفور.

برنامج SGD Regressor (scikit-Learn)

في بايثون ، يمكننا تنفيذ نهج نزول متدرج على مشكلة الانحدار باستخدام sklearn.linear_model.SGDRegressor. يرجى الرجوع إلى الوثائق لمزيد من التفاصيل.

فيما يلي كيفية تنفيذ طريقة نزول التدرج العشوائي والدُفعات الصغيرة.

ملاحظة ختامية

في هذا المنشور ، قدمت شرحًا للانحدار الخطي في كل من المعادلة المغلقة وخوارزمية التحسين ، نزول التدرج ، من خلال تنفيذها من البداية واستخدام مكتبة مدمجة.

قراءة إضافية ومستودع جيثب:


نُشر الانحدار الانحداري المغلق والمتدرج الموضح باستخدام Python في الأصل في Towards AI – مجلة العلوم متعددة التخصصات على المتوسط ​​، حيث يواصل الأشخاص المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

تم النشر عبر نحو الذكاء الاصطناعي