الوحدة 7 — التنظيم: الإسقاط، عقوبة L2، توسيع البيانات
للشبكة العميقة سعة هائلة. وقد أظهرت أعمال شهيرة أنّ شبكة كبيرة تستطيع أن تحفظ عن ظهر قلب صورًا مقرونة بوسوم عشوائية تمامًا: فالحفظ الصرف في متناولها. والتنظيم هو إذن ما يُلزمها بالتعميم بدلًا من الحفظ.
الإسقاط: تعطيل عصبونات عشوائيًا
الإسقاط، المقترَح في 2012، يُعدم كسرًا من العصبونات في كلّ مرور تدريب، يُسحَب عشوائيًا.
فلماذا ينجح هذا؟ ثلاث قراءات متكاملة، والثانية أكثرها إنارة.
أوّلًا، يمنع الإسقاط الاعتماد المتبادل. فبدونه تتخصّص العصبونات في فرق لا تعمل إلّا معًا، ويصحّح كلّ منها أخطاء الآخرين — وهو ترتيب هشّ لا يصمد أمام بيانات جديدة. وبما أنّ أي عصبون قد يزول في أي لحظة، فعلى كلّ واحد أن يصير مفيدًا استقلالًا.
ثانيًا، يعود الإسقاط إلى تدريب مجموعة من الشبكات. فكلّ سحب يُعرّف معمارية مختلفة؛ ومع عصبونًا توجد شبكة فرعية ممكنة، تتشارك كلّها أوزانها. ويُقارب الاستدلال متوسّط هذه المجموعة الهائلة، فنستعيد فائدة طرائق المجموعات في دورة التعلّم المُوجَّه، بثمن نموذج واحد.
ثالثًا، يُدخل الإسقاط ضجيجًا، وهذا يدفع الشبكة نحو حلول أكثر متانة.
النقطة التقنية التي يُخطئها الجميع
يتصرّف الإسقاط تصرّفًا مختلفًا في التدريب وفي الاستدلال، وهذا اللاتناظر أشيع مصادر الخطأ.
في التدريب يُعطَّل كسر من العصبونات. وفي الاستدلال لا يُعطَّل أي عصبون: فنحن نريد توقّعًا حتميًا واستخدام الشبكة كلّها. لكن لو لم نصحّ ح شيئًا لكان المجموع الذي تستقبله الطبقة التالية أكبر في الاستدلال منه في التدريب، بما أنّ عصبونات أكثر تُسهم فيه — فسيتغيّر سلّم التنشيطات بين النظامين.
والحلّ الذي اعتمدته المكتبات هو الإسقاط المعكوس: فأثناء التدريب تُقسَم التنشيطات الباقية على . وبذلك يُحفَظ أمل المجموع، ولم يبقَ للاستدلال ما يعدّله.
modele.train() # الإسقاط نشط، والتطبيع بالحزم في نمط إحصائيات الحزمة
# ... حلقة التدريب ...
modele.eval() # الإسقاط معطل، والتطبيع في نمط المتوسطات الجارية
with torch.no_grad():
predictions = modele(X_test)
ونسيان modele.eval() قبل التقييم أمر كلاسيكي. فتصير التوقّعات مُضجَّجة وغير قابلة للاستنساخ، وتتدهور المقاييس بلا سبب ظاهر، ولا يُرفَع أي خطأ. وستُظهر الوحدة التالية أنّ التطبيع بالحزم يعاني النسيان نفسه، لكن بأسوأ.
وعمليًا، معدّل من 0,2 إلى 0,5 على الطبقات المتّصلة اتّصالًا كاملًا هو الاستخدام الشائع. ولاحظ أنّ الإسقاط أقلّ استخدامًا بكثير في المعماريات الحديثة: فالتطبيع بالطبقات والأحجام الكبيرة من البيانات حلّا محلّه إلى حدّ بعيد.
عقوبة L2
إضافة حدّ إلى الخسارة يتناسب مع مربّع الأوزان يدفعها نحو الصفر:
وهذه هي فكرة انحدار Ridge نفسها: فالأوزان الأصغر تُنتج دالة أكثر نعومة، أي أقلّ عرضة لملاءمة الضجيج. وفي معجم التعلّم العميق يُسمّى هذا تحلّل الأوزان، وقد أشارت الوحدة 5 إلى نقطة الانتباه: فمع Adam يجب تطبيق هذه العقوبة على انفصال، وهو ما يفعله AdamW. والقيم من إلى تشمل معظم الحالات.
التوقّف المبكّر وتوسيع البيانات
التوقّف المبكّر أقلّ التنظيمات كلفة على الإطلاق: نرصد خسارة التحقّق ونقطع التدريب حين تتوقّف عن التحسّن، مع الاحتفاظ بأوزان أفضل مرور. وصبر بضع حقبات يمنع ال توقّف على تقلّب عارض. وستُظهر الوحدة 9 كيف تُقرأ هذه المنحنيات.
أمّا توسيع البيانات فيعمل على أصل المشكلة. فبدلًا من تقييد النموذج، يُضاعف الأمثلة بتحويلات تحفظ الوسم: دورانات، واقتطاعات، وتغيّرات إضاءة للصور؛ واستبدال بمرادفات للنصّ. فالقطّ المُدار عشر درجات يبقى قطًّا، لكنّه مشاهدة جديدة للشبكة.
والقاعدة الواجب حفظها تتلخّص في عبارة واحدة: يجب أن يحفظ التحويل الوسم. فالتناظر الأفقي يناسب صور الحيوانات، لكنّه يُدمّر المعلومة في الأرقام المكتوبة بخطّ اليد أو في النصّ.
أمام إفراط في التعلّم، يكون ترتيب الفاعلية هو نفسه دائمًا تقريبًا. بيانات أكثر أوّلًا، حقيقية أو مُوسَّعة، لأنّها الجواب الوحيد الذي يضيف معلومة. ثم التوقّف المبكّر، مجّاني وفوري. ثم عقوبة أوزان معتدلة. ثم الإسقاط على الطبقات الكثيفة. ولا يأتي تقليص حجم الشبكة إلّا أخيرًا: فالشبكة الكبيرة المُنظَّمة جيّدًا تتفوّق عمومًا على شبكة صغيرة بلا تنظيم.
الخلاصة
- تستطيع شبكة كبيرة أن تحفظ وسومًا عشوائية: والتنظيم هو ما يُلزمها بالتعميم.
- يمنع الإسقاط الاعتماد المتبادل ويكافئ تدريب مجموعة من شبكة فرعية تتشارك الأوزان.
- يقسم الإسقاط المعكوس التنشيطات الباقية على في التدريب؛ ونسيان
eval()عند الاستدلال يُدهور النتائج بصمت. - تُكمل عقوبة L2 والتوقّف المبكّر وتوسيع البيانات العُدّة؛ والتوسيع صحيح فقط إذا كان التحويل يحفظ الوسم.
الوحدة التالية: التطبيع بالحزم وبالطبقات، الذي غيّر استقرار التدريب.