أساسيات الذكاء الاصطناعي

ما هو انحدار التدرج؟

mm
أضف Unite.AI إلى مصادرك المفضلة على Google

ما هو انحدار التدرج؟

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

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

ما هي التدرجات؟

افترض أن هناك مخططًا ي представляет مقدار الخطأ الذي تقترفه الشبكة العصبية. ي представляет الجزء السفلي من المخطط النقاط التي تتمتع بأقل خطأ، بينما ي представляет الجزء العلوي من المخطط النقاط التي تتمتع بأعلى خطأ. نريد الانتقال من الجزء العلوي من المخطط إلى الجزء السفلي. التدرج هو مجرد طريقة لتحديد العلاقة بين الخطأ ومعاملات الشبكة العصبية. يمكن تمثيل العلاقة بين هذين الأمرين كمنحني، مع معاملات غير صحيحة تنتج أكثر خطأ. تمثل حدة المنحني/التدرج مدى سرعة تعلم النموذج.

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

دعونا نغير المجاز قليلا ونفترض سلسلة من التلال والوادي. نريد الوصول إلى الجزء السفلي من التل والfinding الجزء من الوادي الذي يمثل أقل خسارة. عندما نبدأ في الجزء العلوي من التل، يمكننا اتخاذ خطوات كبيرة xuống التل ونتأكد من أننا ننتقل نحو النقطة الأقل خسارة في الوادي.

ومع ذلك، عندما نقترب من النقطة الأقل خسارة في الوادي، يجب أن تصبح خطواتنا أصغر، أو قد نخطئ النقطة الحقيقية الأقل خسارة، وبالتالي يجب أن تصبح التغييرات أصغر مع مرور الوقت. في سياق النزول xuống التل نحو نقطة أقل خسارة، التدرج هو متجه/تعليمات تفصيل المسار الذي يجب أن نتخذه ومقدار خطواتنا.

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

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

يبدأ انحدار التدرج من مكان يمتلك خسارة عالية ومن خلال العديد من التكرارات، يأخذ خطوات في اتجاه أقل خسارة، ويهدف إلى العثور على تكوين معاملات مثالي. الصورة: Роман Сузи via Wikimedia Commons, CCY BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Gradient_descent_method.png)

为了 thực hiện انحدار التدرج، يجب حساب التدرجات أولاً. Чтобы حساب التدرج، нам нужно معرفة دالة الخسارة/التكلفة. سنستخدم دالة التكلفة لتحديد المشتقة. في التفاضل والتكامل، المشتقة هي مجرد منحني دالة في نقطة معينة، لذلك نحن بصدد حساب منحني التل بناءً على دالة الخسارة. نحسب الخسارة عن طريق تشغيل المعاملات عبر دالة الخسارة. إذا представили دالة الخسارة باسم “f”، يمكننا أن نقول إن معادلة حساب الخسارة هي كما يلي (نحن مجرد تشغيل المعاملات عبر دالة التكلفة المختارة):

الخسارة = f(معامل)

ثم نحسب المشتقة، أو نحدد المنحني. الحصول على مشتقة الخسارة سيخبرنا بأي اتجاه هوลง أو لأعلى المنحني، من خلال إعطائنا العلامة المناسبة لتعديل معاملاتنا. سن представляем الاتجاه المناسب باسم “delta”.

delta = دالة_المشتقة(الخسارة)

لقد حددنا الآن الاتجاه الذي هوลง المنحني نحو نقطة أقل خسارة. هذا يعني أننا يمكننا تحديث معاملات الشبكة العصبية وتقليل الخسارة. سنحديث المعاملات بناءً على المعاملات السابقة ناقص التغيير المناسب في القيمة كما هو محدد بواسطة الاتجاه (delta) وحجة تتحكم في حجم التغيير (حجم خطوتنا). الحجة التي تتحكم في حجم التحديث تسمى “معدل التعلم” وسن представляемها باسم “alpha”.

معامل = معامل – (alpha * delta)

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

من المهم جداً اختيار القيمة الصحيحة لمعدل التعلم (alpha). يجب أن تكون القيمة المختارة لمعدل التعلم لا تكون صغيرة جداً ولا كبيرة جداً. تذكر أننا عندما ن接近 نقطة أقل خسارة، يجب أن تصبح خطواتنا أصغر، أو قد نخطئ النقطة الحقيقية الأقل خسارة، وبالتالي يجب أن تصبح التغييرات أصغر مع مرور الوقت. في سياق النزول xuống التل نحو نقطة أقل خسارة، التدرج هو متجه/تعليمات تفصيل المسار الذي يجب أن نتخذه ومقدار خطواتنا.

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

أنواع انحدار التدرج

الآن بعد أن فهمنا كيف يعمل انحدار التدرج بشكل عام، دعونا ننظر إلى بعض أنواع انحدار التدرج المختلفة.

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

انحدار التدرج العشوائي: في انحدار التدرج العشوائي، يتم معالجة مثال تدريبي واحد فقط في كل تكرار لانحدار التدرج وتحديث المعاملات. هذا يحدث لكل مثال تدريبي. نظراً لأن فقط مثال تدريبي واحد يتم معالجته قبل تحديث المعاملات،,所以 يتقارب بشكل أسرع من انحدار التدرج الكلي، حيث يتم إجراء التحديثات في وقت أقرب. ومع ذلك، نظراً لأن العملية يجب أن تتم على كل عنصر في مجموعة التدريب، قد يستغرق وقتاً طويلاً لإكمالها إذا كانت مجموعة البيانات كبيرة، وبالتالي قد تفضل استخدام أحد أنواع انحدار التدرج الأخرى.

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

مدون وبرمجي متخصص في مواضيع Machine Learning و Deep Learning. يأمل دانيال في مساعدة الآخرين على استخدام قوة الذكاء الاصطناعي من أجل الخير الاجتماعي.