تخطّي إلى المحتوى
Kudos AI

الانتشار العكسي

الخوارزمية التي تحسب تدرّج خسارة الشبكة العصبية بالنسبة إلى كل وزن، بتطبيق قاعدة السلسلة إلى الوراء عبر الشبكة.

يُعرف أيضاً باسم: Backprop, انتشار الخطأ العكسي

خطأ واحد يُدفع إلى الوراء عبر الشبكة، ونصيب كل طبقة من اللوم يصل بقاعدة السلسلة.

فهم الانتشار العكسي

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

والآلية هي قاعدة السلسلة مطبَّقةً بانتظام. فالمرور الأمامي يمرّر المدخل عبر الشبكة ويسجّل القيم الوسيطة لكل طبقة. ثم يبدأ المرور الخلفي من الخسارة ويعمل نحو الدخل: إذ يتلقّى عند كل طبقة مشتقّة الخسارة بالنسبة إلى خرج تلك الطبقة، ويستخدمها لحساب أمرين، المشتقّة بالنسبة إلى أوزان الطبقة (وهو ما يحتاجه المحسِّن) والمشتقّة بالنسبة إلى دخلها (التي تُمرَّر إلى الطبقة السابقة).

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

والنسبة متعدّدة الطبقات فعلاً. فعمل رملهارت وهينتون وويليامز عام 1986 هو ما لفت انتباه المجال إلى الطريقة وأشعل عودة الاتّصالية، لكن التقنية الكامنة، أي الاشتقاق التلقائي بالنمط العكسي مطبَّقاً على شبكات طبقية، كانت قد اشتُقّت استقلالياً على يد عدة مؤلفين أسبق. والأنصف وصف 1986 بأنها لحظة ذيوع الانتشار العكسي لا لحظة اختراعه.

كيفية الحساب

∂L/∂w⁽ˡ⁾ = δ⁽ˡ⁾ · (a⁽ˡ⁻¹⁾)ᵀ, where δ⁽ˡ⁾ = (W⁽ˡ⁺¹⁾)ᵀ δ⁽ˡ⁺¹⁾ ⊙ σ′(z⁽ˡ⁾)

حيث

L
الخسارة المراد تصغيرها
w⁽ˡ⁾, W⁽ˡ⁾
أوزان الطبقة l
a⁽ˡ⁻¹⁾
التنشيط الذي أخرجته الطبقة السابقة
z⁽ˡ⁾
التنشيط القبلي الداخل إلى الطبقة l
δ⁽ˡ⁾
إشارة الخطأ عند الطبقة l، منتشرةً إلى الوراء
σ′
مشتقّة دالة التنشيط
⊙
الضرب عنصراً عنصراً (هادامارد)

مثال على الانتشار العكسي

انظر في سلسلة بسيطة من طبقتين تعتمد فيها الخسارة على b، ويعتمد b على a، ويعتمد a على الوزن w. تعطي قاعدة السلسلة ∂L/∂w = (∂L/∂b)(∂b/∂a)(∂a/∂w): فالتدرّج جداء مشتقّات محلية على طول المسار.

ويحسب الانتشار العكسي ذلك من اليمين إلى اليسار. فيقيّم أولاً ∂L/∂b عند الخرج، ثم يضرب في ∂b/∂a ليحصل على ∂L/∂a، ثم في ∂a/∂w ليحصل على تدرّج w. ويُعاد استخدام كل نتيجة وسيطة بدل إعادة حسابها، وفي شبكة حقيقية تلتقي فيها مسارات كثيرة عند عقدة، تُجمع المساهمات الواصلة من كل المسارات اللاحقة.

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

الأسئلة الشائعة

هل الانتشار العكسي هو النزول التدرّجي نفسه؟

لا، والتمييز مهم. فالانتشار العكسي يحسب التدرّجات؛ والنزول التدرّجي يقرّر ما يفعل بها. ويمكنك تغذية خرج الانتشار العكسي إلى أي محسِّن قائم على التدرّج، مثل Adam أو الزخم، وسيظلّ الانتشار العكسي هو من يوفّر المشتقّات.

لماذا يحتاج الانتشار العكسي إلى قيم المرور الأمامي؟

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

ما مشكلة تلاشي التدرّج؟

لأن الانتشار العكسي يضرب المشتقّات المحلية عبر الطبقات، تتراكم العوامل الصغيرة. وفي الشبكات العميقة ذات التنشيطات المشبِعة يدفع ذلك تدرّجات الطبقات الأولى نحو الصفر، فلا تكاد تتعلّم. وتنشيطات ReLU والتهيئة الدقيقة وطبقات التسوية والوصلات المتبقّية هي المعالجات المعيارية.

الخلاصة

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