كيفية فهم Gradient Descent ، أشهر خوارزمية تعلم الآلة

يعد Gradient Descent أحد الخوارزميات الأكثر شيوعًا والأكثر استخدامًا لتدريب نماذج التعلم الآلي.

عادةً ما تحتوي نماذج التعلم الآلي على معلمات (أوزان وتحيزات) ووظيفة تكلفة لتقييم مدى جودة مجموعة معينة من المعلمات. تقلل العديد من مشكلات التعلم الآلي من العثور على مجموعة من الأوزان للنموذج مما يقلل من دالة التكلفة.

على سبيل المثال، إذا كان التوقع هو ص ، والهدف هو ر ، وقياس الخطأ لدينا هو الخطأ التربيعية، ثم وظيفة تكلفة J (W) = (ص - ر) ² .

علما بأن القيمة المتوقعة ص يعتمد على مدخلات X فضلا عن نموذج التعلم الآلي والقيم (الحالية) من المعلمات W . أثناء التدريب ، هدفنا هو إيجاد مجموعة من القيم لـ W بحيث تكون (p - t) ² صغيرة. هذا يعني أن توقعنا p سيكون قريبًا من الهدف t .

النزول المتدرج هو طريقة تكرارية. نبدأ بمجموعة من القيم لمعلمات نموذجنا (الأوزان والتحيزات) ، ونعمل على تحسينها ببطء.

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

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

الكود الكاذب للنسب المتدرج

يستخدم أصل التدرج لتقليل التكلفة وظيفة J (W) معلمات من قبل المعلمات نموذج W .

يخبرنا التدرج اللوني (أو المشتق) بميل أو انحدار دالة التكلفة. ومن ثم ، لتقليل دالة التكلفة ، نتحرك في الاتجاه المعاكس للتدرج.

  1. تهيئة الأوزان W عشوائيا.
  2. احسب التدرجات G لمعلمات Wrt الخاصة بوظيفة التكلفة. يتم ذلك باستخدام التفاضل الجزئي: G = ∂J (W) / ∂W. تعتمد قيمة التدرج اللوني G على المدخلات والقيم الحالية لمعلمات النموذج ووظيفة التكلفة. قد تحتاج إلى إعادة النظر في موضوع التفاضل إذا كنت تحسب التدرج يدويًا.
  3. قم بتحديث الأوزان بمقدار يتناسب مع G ، أي W = W - ηG
  4. كرر حتى تتوقف التكلفة J ( w ) عن التقليل ، أو يتم استيفاء بعض معايير الإنهاء المحددة مسبقًا .

في الخطوة 3 ، η هو معدل التعلم الذي يحدد حجم الخطوات التي نتخذها للوصول إلى الحد الأدنى. نحن بحاجة إلى توخي الحذر الشديد بشأن هذه المعلمة. قيم عالية من η قد تخطى الحد الأدنى، والقيم المنخفضة جدا ستصل إلى الحد الأدنى ببطء شديد.

الخيار الشائع لمعايير الإنهاء هو أن التكلفة J ( w ) تتوقف عن تقليل مجموعة بيانات التحقق من الصحة.

الحدس للنسب المتدرج

تخيل أنك معصوب العينينفي التضاريس الوعرة ، وهدفك هو الوصول إلى أدنى ارتفاع.

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

إذا واصلت تكرار هذه العملية ، فقد ينتهي بك الأمر في البحيرة ، أو حتى أفضل ، في مكان ما في الوادي الضخم.

التضاريس الوعرة مماثلة لدالة التكلفة ، والتقليل من دالة التكلفة يماثل محاولة الوصول إلى ارتفاعات منخفضة.

أنت مطوي ، لأننا لا نمتلك رفاهية تقييم (أو "رؤية") قيمة الوظيفة لكل مجموعة ممكنة من المعلمات.

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

بالمناسبة - كجانب صغير - هذا البرنامج التعليمي هو جزء من دورة علوم البيانات المجانية ودورة التعلم الآلي المجانية على Commonlounge. تتضمن الدورات العديد من المهام العملية والمشاريع. إذا كنت مهتمًا بتعلم علوم البيانات / تعلم الآلة ، فنوصيك بالتأكيد بمراجعتها.

المتغيرات من التدرج النسب

هناك العديد من المتغيرات من النسب المتدرجة ، اعتمادًا على مقدار البيانات المستخدمة لحساب التدرج اللوني.

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

  • دفعة التدرج أصل يحسب التدرج من WRT دالة التكاليف إلى المعلمة W لل بيانات التدريب بالكامل . نظرًا لأننا نحتاج إلى حساب التدرجات اللونية لمجموعة البيانات بأكملها لإجراء تحديث لمعلمة واحدة ، فقد يكون نزول التدرج اللوني للدفعة بطيئًا للغاية.
  • يحسب هبوط التدرج العشوائي (SGD) التدرج اللوني لكل تحديث باستخدام نقطة بيانات تدريب واحدة x_i (يتم اختيارها عشوائيًا). الفكرة هي أن التدرج المحسوب بهذه الطريقة هو تقريب عشوائي للتدرج المحسوب باستخدام بيانات التدريب بأكملها. أصبح حساب كل تحديث الآن أسرع بكثير مما هو عليه في نزول التدرج اللوني للدفعة ، وعلى مدار العديد من التحديثات ، سنتجه في نفس الاتجاه العام.
  • في النسب المتدرجة للدفعة الصغيرة ، نحسب التدرج لكل دفعة صغيرة من بيانات التدريب. أي أننا نقسم أولاً بيانات التدريب إلى دفعات صغيرة (لنقل عينات M لكل دفعة). نقوم بإجراء تحديث واحد لكل دفعة صغيرة. عادة ما يكون M في النطاق 30-500 ، حسب المشكلة. عادةً ما يتم استخدام GD ذات الدفعة المصغرة لأن البنية التحتية للحوسبة - المجمعات ووحدات المعالجة المركزية ووحدات معالجة الرسومات - غالبًا ما تكون مُحسَّنة لإجراء إضافات المتجهات ومضاعفات المتجهات.

من بين هؤلاء ، SGD و mini-batch GD هي الأكثر شيوعًا.

في سيناريو نموذجي ، نقوم بعدة تمريرات على بيانات التدريب قبل استيفاء معايير الإنهاء. كل تمريرة تسمى حقبة . لاحظ أيضًا أنه نظرًا لأن خطوة التحديث أكثر فاعلية من الناحية الحسابية في SGD و mini-batch GD ، فإننا نقوم عادةً بإجراء 100s-1000s من التحديثات بين عمليات التحقق من استيفاء معايير الإنهاء.

اختيار معدل التعلم

عادةً ما يتم اختيار قيمة معدل التعلم يدويًا. نبدأ عادةً بقيمة صغيرة مثل 0.1 أو 0.01 أو 0.001 ونكيفها بناءً على ما إذا كانت دالة التكلفة تنخفض ببطء شديد (زيادة معدل التعلم) أو تنفجر / تصبح غير منتظمة (انخفاض معدل التعلم).

على الرغم من أن اختيار معدل التعلم يدويًا لا يزال هو الممارسة الأكثر شيوعًا ، فقد تم اقتراح عدة طرق مثل محسن آدم و AdaGrad و RMSProp لاختيار معدل التعلم المناسب تلقائيًا.

كاتب مُشارك: Keshav Dhandhania و Savan Visalpara.

نُشر في الأصل كجزء من دورة تعلم الآلة المجانية ودورة علوم البيانات المجانية على www.commonlounge.com.