الانحدار التدرّجي العشوائي (SGD) هو خوارزمية تحسين يتم استخدامها عادةً لتحسين أداء نماذج التعلم الآلي. وهي نوع مختلف من خوارزمية الانحدار التدرّجي التقليدية، مع تعديل رئيسي: بدلًا من الاعتماد على مجموعة البيانات بأكملها لحساب التدرّج في كل خطوة، تستخدم SGD عيّنة بيانات واحدة في كل مرة.
الانحدار التدرّجي (GD) هو خوارزمية تحسين تعمل على تقليل دالة الهدف بشكل تكراري. في سياق التعلم الآلي (ML)، يُعَد الانحدار التدرّجي أساسيًا لتحسين أداء نماذج التعلم الخاضع للإشراف خلال مرحلة التدريب. نماذج التعلم الآلي، مثل الشبكات العصبية، معقدة وغير خطية وذات أبعاد عالية. لذلك، لا توجد معادلة عادية لهذه النماذج لحساب الأوزان المثالية، على عكس الانحدار الخطي. بدلًا من ذلك، يمكن استخدام طرق تقريبية مثل أشكال الانحدار التدرّجي المختلفة، طرق نيوتن وخوارزمية زيادة التوقع، من بين أساليب أخرى.
لكل نموذج دالة خسارة، يُطلق عليها أحيانًا اسم دالة تكلفة. تقيس هذه الوظيفة مدى بُعد تنبؤات النموذج عن نقاط البيانات الحقيقية. فكِّر في هذا كمقياس لمدى "خطأ" تنبؤات النموذج. على سبيل المثال، غالبًا ما يعمل خطأ المتوسط التربيعي كدالة خسارة في مشكلات الانحدار. تم تصميم مرحلة تدريب النموذج للعثور على قيم المَعلمات التي تقلِّل من هذه الخسارة. غالبًا ما يكون الانحدار التدرّجي هو تقنية التحسين المستخدمة في التدريب لهذا السبب. تحسب الخوارزمية التدرّج، أو المنحدر، للخسارة فيما يتعلق بمَعلمات النموذج. اعتمادًا على هذا التدرّج، يتم التحرك في الاتجاه المعاكس بهدف خفض قيمة الخسارة. معدل التعلُّم (المعروف أيضًا بحجم الخطوة أو أو ألفا) هو حجم الخطوات، ويظل ثابتًا لجميع مَعلمات النموذج. تتكرر هذه العملية حتى يصل النموذج إلى التقارب بالقرب من الحد الأدنى.
يحدث التقارب في أفضل الأحوال عند الحد الأدنى العالمي. في التصوُّر التالي، يمكنك ملاحظة أن قيمة الخسارة أقل عند الحد الأدنى المحلي مقارنةً بالمناطق المحيطة به مباشرة، لكنها ليست بالضرورة أقل قيمة بشكل عام. الحد الأدنى العالمي هو أدنى قيمة مطلقة لدالة الخسارة عبر كامل مجالها، ويمثّل أفضل حل ممكن للمشكلة.
إذا لم يكن معدل التعلم صغيرًا بما يكفي، غالبًا ما تتقارب الخوارزمية عند حد أدنى محلي. يُعَد اختيار معدل تعلُّم مناسب أمرًا ضروريًا لتقليل دالة الخسارة وتحقيق التقارب عند الحد الأدنى العالمي.
يوضِّح هذا التمثيل البياني تأثير معدل التعلم في عملية التقارب. يؤدي معدل التعلم الصغير إلى تقارب بطيء لكنه مستقر (على اليسار)، بينما قد يسبب معدل التعلم الكبير تجاوز الهدف وعدم الاستقرار (على اليمين).
الفارق الرئيسي بين الانحدار التدرّجي التقليدي والانحدار التدرّجي العشوائي هو أن الانحدار التدرّجي العشوائي يحدِّث أوزان النموذج باستخدام مثال تدريبي واحد في كل مرة. يتم اختيار المثال بشكل عشوائي في كل تكرار.1 يستخدم الانحدار التدرّجي مجموعة البيانات بأكملها لحساب التدرّج قبل كل تحديث للمَعلمات. وهذا الاختلاف في استخدام البيانات هو ما يجعل SGD أقل تكلفة من الناحية الحسابية وأسهل في توسيع النطاق لمجموعات البيانات الكبيرة. بالمقابل، يكون سلوك التقارب في SGD أكثر ضوضاءً من GD، لأن المثال الواحد قد لا يمثّل مجموعة البيانات تمثيلًا جيدًا. يؤدي هذا التمثيل غير الدقيق إلى تحديث النقاط في اتجاه "خطأ" قليلًا. ومع ذلك، فإن هذه العشوائية هي ما يجعل SGD أسرع وأحيانًا أفضل في مسائل التحسين غير المحدبة، لأنها تمكِّنه من الهروب من الحد الأدنى المحلي الضحل أو نقاط السرج.
من الناحية الدقيقة، تم تعريف SGD في الأصل لتحديث المَعلمات باستخدام عينة تدريب واحدة بالضبط في كل مرة. في الاستخدام الحديث، يُستخدَم مصطلح "SGD" بشكل واسع للدلالة على "الانحدار التدرّجي على دفعات صغيرة"، وهو شكل من أشكال الانحدار التدرّجي يتم فيه استخدام دفعات صغيرة من بيانات التدريب في كل مرة. الميزة الرئيسية لاستخدام مجموعات فرعية من البيانات بدلًا من عينة واحدة هي انخفاض مستوى الضوضاء، لأن التدرّج يساوي متوسط الخسائر في الدفعة الصغيرة. لهذا السبب، يُعَد الانحدار التدرجي على دفعات صغيرة هو الإعداد الافتراضي في التعلم العميق. على العكس من ذلك، نادرًا ما يتم استخدام SGD الصارم في الممارسة العملية. غالبًا ما يتم خلط هذه المصطلحات في معظم مكتبات التعلم الآلي مثل PyTorch وTensorFlow؛ فالمحسِّنات يُطلق عليها غالبًا اسم "SGD"، رغم أنها عادةً تستخدم الدفعات الصغيرة.
يوضِّح الرسم التوضيحي التالي بشكل أكبر كيف تؤدي زيادة حجم عينة بيانات التدريب إلى تقليل التذبذبات و"الضوضاء".
هناك العديد من المتغيّرات الأخرى للانحدار التدرّجي، مبنية على الانحدار التدرّجي الأساسي من خلال إضافة آليات لتحسين السرعة والاستقرار والتقارب.
من خلال تراكم الزخم في الأبعاد التي تتميز بتدرّجات ثابتة وتخفيف التحديثات في الأبعاد التي تتغير فيها التدرّجات، يساعد الزخم SGD على التقارب بشكل أسرع ومع تذبذب أقل.2
تتميز طرق معدل التعلم التكيفي، مثل AdaGrad وRMSProp، بقدرتها على تعديل معدل التعلم لكل مَعلمة بشكل فردي. هذا الأسلوب يختلف عن طرق SGD، التي تستخدم معدل تعلُّم ثابتًا لجميع المَعلمات.
AdaGrad (خوارزمية التدرّج التكيفي): تعدِّل معدل التعلم لكل مَعلمة بناءً على التدرّجات السابقة الخاصة به. تتلقى الميزات التي تظهر بشكل أقل في كثير من الأحيان معدلات تعلُّم أعلى، وتتلقى الميزات المتكررة معدلات أقل. هذا النهج يعني أن الميزات النادرة يتم تعلمها بشكل أسرع من SGD. يعني معدل التعلم التكيفي هذا أنه طريقة رائعة لمعالجة اللغة الطبيعية (NLP) وأنظمة التوصية ذات البيانات المتفرقة، والتي يوجد فيها تباين كبير في تواتر الميزات.2
RMSProp (انتشار الجذر التربيعي للمتوسط): تقنية تحسين بمعدل تعلُّم متكيف تعمل على تعديل معدل التعلم لكل مَعلمة باستخدام المتوسط المتحرك للتدرّجات المربعة الأخيرة. يتم تجاهل معلومات التدرّجات السابقة ويتم الاحتفاظ فقط بمعلومات التدرّجات الحالية.4يصبح معدل التعلم أكبر للمَعلمات ذات التدرّجات الصغيرة وأصغر للمَعلمات التي لديها تدرّجات كبيرة. تقضي هذه الطريقة على مشكلة تناقص معدل التعلم مع AdaGrad. يساعد RMSProp في الحفاظ على استقرار التدريب في التعلم العميق، وخاصةً بالنسبة إلى النماذج مثل الشبكات العصبية المتكررة (RNNs)، ويعمل بشكل جيد على المشكلات التي يتغير فيها الهدف باستمرار، كما هو الحال في التعلم المعزز.
يكون الانحدار التدرّجي العشوائي وأنواع الانحدار التدرّجي الأخرى مفيدة عندما يكون وقت التدريب هو العائق.5
| المتغيّر | البيانات المستخدمة لكل خطوة | الميزة الرئيسية | الاستخدام الشائع |
|---|---|---|---|
| الانحدار التدرّجي | جميع البيانات | مستقر ولكن بطيء | مجموعات البيانات الصغيرة |
| الانحدار التدرّجي العشوائي | مثال واحد على الانحدار التدرّجي العشوائي التقليدي | ذو ضوضاء لكنه سريع | التعلم عبر الإنترنت |
| الانحدار التدرّجي على دفعات صغيرة | عينات قليلة | متوازن وقابل للتوسع | التعلم العميق |
| الزخم | دفعة كاملة/دفعات صغيرة | يتسارع في الاتجاه الصحيح | الشبكات العصبية |
| NAG | دفعة كاملة/دفعات صغيرة | الزخم المتقدم | تقارب أسرع |
| AdaGrad | دفعات صغيرة | معدل التعلم التكيفي | بيانات متفرقة |
| RMSProp | دفعات صغيرة | يعالج انخفاض معدل التعلم في AdaGrad | الشبكات العصبية المتكررة (RNNs) والشبكات العميقة |
| Adam | دفعات صغيرة | الزخم + RMSProp | الخيار الافتراضي حاليًا |
الهدف من SGD هو العثور على المَعلمات التي تجعل تنبؤات النموذج قريبة قدر الإمكان من القيم الحقيقية . بمعنى آخر، نريد تقليل دالة الخسارة، .
في حال الانحدار الخطي، تكون هذه المَعلمات (الوزن) و(التحيز). لذلك في هذه الحالة، تقليل هو نفسه تقليل .
من التشبيهات الشائعة الاستخدام عند شرح الانحدار التدرّجي هو أن GD يشبه المشي أسفل الجبل حتى الوصول إلى الوادي (أدنى قيمة للخسارة). تخيّل تدرّج دالة الخسارة، ، النقاط تتجه صعودًا، وللنزول يجب أن نخطو في الاتجاه المعاكس.
قاعدة التحديث العامة للمَعلمة هي:
عندما تكون هي معدل التعلُّم و هي تدرّج الخسارة بالنسبة إلى .
يستخدم الانحدار التدرّجي العشوائي عينة واحدة مختارة عشوائيًا فقط. لتقريب التدرّج:
ملاحظة، الأحرف الصغيرة تمثّل فقدان مثال تدريب واحد. في حين أن الأحرف الكبيرة هي دالة الخسارة الإجمالية (متوسط جميع الخسائر الفردية عبر مجموعة البيانات). هذا الخطأ العالمي هو ما نحاول حقًا تقليله في التدريب.
لنكمل استعراض مثال الانحدار الخطي مع SGD.
لعيّنة واحدة ، التنبؤ هو:
الخسارة المحلية هي الخطأ التربيعي لعيّنة واحدة:
الآن، أثناء الانتشار الخلفي، يتم تحديث مَعلمات النموذج باستخدام قاعدة السلسلة التي تحسب تدرّجات دالة الخسارة بالنسبة لكل مَعلمة.5 التدرّجات (المشتقات) هي:
مع SGD، نحدِّث كلًا من هذه المَعلمات، و ، باستخدام القواعد التالية:
بدلًا من حساب متوسط التدرّج الثقيل عبر مجموعة البيانات بأكملها، يستخدم SGD تقديرًا عشوائيًا خفيف الوزن.
عند العمل مع أطر التعلم الآلي، توجد فئات جاهزة لمحسِّن SGD يمكن استخدامها مباشرةً. على سبيل المثال،
لأغراض التعلم، دعنا نستعرض تطبيقًا بسيطًا لتقنية SGD بلغة Python من الصفر.
للتوضيح مرة أخرى، هدفنا هو إيجاد أفضل المَعلمات (أوزان النموذج) التي تقلل دالة الخسارة (التي تقيس مدى خطأ توقعاتنا). سنحدِّث عيّنة واحدة في كل مرة أو باستخدام حجم دفعة صغير جدًا.
للبدء، يمكننا تهيئة قيم المَعلمات (الأوزان) بشكل عشوائي. بعد ذلك، يمكننا اختيار نقطة بيانات عشوائية . من هناك، نحسب التنبؤ والخطأ. في هذا العرض التوضيحي البسيط، نحاول ملاءمة خط بسيط: . الخطوة التالية في هذه العملية هي الانتشار الخلفي، حيث يتم حساب تدرّجات دالة الخسارة بالنسبة للمَعلمات. ثم يتم استخدام هذه التدرّجات (المشتقات) لتحديث المَعلمات أثناء عملية تحسين SGD. نظرًا لأن التدرّج يشير إلى اتجاه زيادة دالة الخسارة، فإن SGD يطرح كل تدرّج من قيمة المَعلمة الحالية الخاصة به. يمكننا اعتبار هذا على أنه التحرك في الاتجاه المعاكس للتدرّج من أجل تقليل دالة الخسارة. ومن هنا جاءت تسمية "الانحدار" في الانحدار التدرّجي العشوائي. نكرر هذه الخطوات حتى الوصول إلى عدد محدَّد من العصور التدريبية أو حتى تصبح قيمة الخسارة أقل من حد التحمُّل. الأخير يعني أن الخسارة بالكاد تتغير ولم تَعُد نحسِّن دالة الهدف. بمعنى آخر، نتوقف بمجرد تقارب الخوارزمية.
يُعَد SGD أكثر طرق التحسين شيوعًا لتدريب الشبكات العصبية العميقة. في التعلم العميق، وهو مجموعة فرعية من التعلم الآلي في المجال الأوسع علم البيانات، فإن الهدف هو أن تحاكي أجهزة الكمبيوتر قوة اتخاذ القرار المعقدة للدماغ البشري. تستخدم نماذج التعلم الآلي (ML) التقليدية شبكات عصبية بسيطة تتكون من طبقة واحدة أو طبقتين. في حين أن نماذج التعلم العميق تستخدم ثلاث طبقات أو أكثر. عادةً ما تكون هناك حاجة لمئات أو آلاف الطبقات لتدريب النماذج. نظرًا لسهولة استخدام SGD مع مجموعات التدريب الكبيرة، غالبًا ما يكون الخيار الأول لتدريب الشبكات العصبية العميقة. تتضمن التطبيقات الأخرى لتدريب SGD انحدار ريدج والانحدار اللوجستي المنتظم وتحسين دالة الخسارة المفصلية المستخدمة في آلات المتجهات الداعمة (SVMs) ذات النواة الخطية.
يُعَد SGD نسخة من الانحدار التدرّجي (GD) تعمل على تقليل دالة الخسارة لنموذج التعلم الآلي باستخدام عيّنة بيانات واحدة في كل مرة. يختلف هذا النهج عن GD، والذي يعتمد على مجموعة البيانات بأكملها في كل خطوة لحساب التدرّج. هناك العديد من متغيّرات GD الأخرى التي يمكن تجميعها كطرق تعلُّم قائمة على الزخم أو تكيفية. يُعَد نزول تدرّج الزخم وتدرّج Nesterov المتسارع أمثلة على الأول. تستفيد هذه الطرق من الزخم المتراكم في الأبعاد مع التدرّجات المتسقة وتخفِّف التحديثات في الأبعاد مع التدرّجات المتغيرة. وبالتالي، تساعد SGD على التقارب بشكل أسرع وبذبذبة أقل. تعمل طرق معدل التعلم التكيفي مثل AdaGrad وRMSProp على تكييف معدل التعلم لكل مَعلمة على حدة، على عكس SGD التقليدي، الذي يستخدم معدل تعلُّم ثابتًا. بالإضافة إلى ذلك، تقدِّم الأساليب الهجينة مثل Adam بديلًا قويًا من خلال الجمع بين نقاط القوة في GD وRMSProp القائمَين على الزخم.
تدريب الذكاء الاصطناعي التوليدي والتحقق من صحته وضبطه ونشره، وكذلك قدرات نماذج الأساس والتعلم الآلي باستخدام IBM watsonx.ai، وهو استوديو الجيل التالي من المؤسسات لمنشئي الذكاء الاصطناعي. أنشئ تطبيقات الذكاء الاصطناعي بسرعة أكبر وببيانات أقل.
استفد من الذكاء الاصطناعي في عملك بالاستعانة بخبرة IBM الرائدة في مجال الذكاء الاصطناعي ومحفظة حلولها المتوفرة لك.
أعدّ ابتكار عمليات ومهام سير العمل الحساسة بإضافة الذكاء الاصطناعي لتعزيز التجارب وصنع القرارات في الوقت الفعلي والقيمة التجارية.
1 Bottou, L. (2010). Large-Scale Machine Learning with Stochastic Gradient Descent. Lechevallier, Y., Saporta, G. (eds) Proceedings of COMPSTAT’2010. Physica-Verlag HD.
2 Ruder, S. (2016). An overview of gradient descent optimization algorithms.
3 Tian, Y., Zhang, Y., & Zhang, H. (2023). Recent Advances in Stochastic Gradient Descent in Deep Learning. Mathematics, 11(3), 682.
4 Haji, S. H., & Abdulazeez, A. M. (2021). Comparison of optimization techniques based on gradient descent algorithm: A review. PalArch’s Journal of Archaeology of Egypt/Egyptology, 18(4), 2715-2743.
5 Bottou, L. (2012). Stochastic Gradient Descent Tricks. Montavon, G., Orr, G.B., Müller, KR. (eds) Neural Networks: Tricks of the Trade. Lecture Notes in Computer Science, vol 7700. Springer, Berlin, Heidelberg.