الوحدة 9 — منحنيات التعلّم: قراءة الإفراط في التعلّم
رسم خسارة التدريب وخسارة التحقّق بدلالة الحقبات هو أكثر حركات التشخيص مردودية في التعلّم العميق. منحنيان، فيصير معظم ما يسير سيّئًا مقروءًا. تُعلّم هذه الوحدة كيف نقرأهما.
الحالات الخمس التي ينبغي تمييزها
| ما تُظهره المنحنيات | التشخيص | ما يجب فعله |
|---|---|---|
| تنخفض الخسارتان وتتلاقيان | تدريب سليم | نُواصل، ثم نرصد |
| تبقى الاثنتان مرتفعتين | نقص في التعلّم | نُكبّر الشبكة، ونُدرّب أطول، ونرفع المعدّل |
| ينخفض التدريب ويرتفع التحقّق | إفراط في التعلّم | ننظّم، توقّف مبكّر، بيانات أكثر |
| تتذبذب الخسارة بعنف | معدّل مرتفع جدًّا أو حزمة صغيرة جدًّا | نُخفّض المعدّل، ونُكبّر الحزمة |
| لا تتحرّك الخسارة إطلاقًا | خطأ تقني | نتحقّق من البيانات والوسوم وzero_grad() |
يستحقّ السطران الأخيران تمييزًا دقيقًا، فكثيرًا ما يُلبَس بينهما. فخسارة تتذبذب تعني أنّ التحسين يتقدّم، لكن بعُنف مفرط. أمّا خسارة مستوية من البداية فهي لا تكون مشكلة تحسين أبدًا تقريبًا: بل هي علّة. تدرّجات لا تنتشر، أو معدّل تعلّم معدوم، أو وسوم غير مُحاذية للمُدخلات، أو optimiseur.zero_grad() منسيّ.
الإفراط في التعلّم ليس العدوّ
مخالف للحدس لكنّه مهمّ: رؤية التحقّق يرتفع ليست فشلًا، بل معلومة. فهي تُثبت أنّ الشبكة تملك سعة تعلّم البيانات. والنقطة التي يتفارق فيها المنحنيان تُشير إلى اللحظة المثلى، التي يلتقطه ا التوقّف المبكّر في الوحدة 7 آليًا.
أمّا الوضع المُقلق حقًّا فهو العكس: منحنيان يبقيان مرتفعين ومُلتصقين. فهناك لا تتعلّم الشبكة شيئًا، والتشخيص أصعب لأنّ الأسباب المحتملة كثيرة — سعة غير كافية، أو معدّل سيّئ الضبط، أو بيانات غير مُفيدة، أو خلل في التحضير.
الاختبار الذي يجب إجراؤه قبل أي تدريب طويل
هذه أنفع عادة في هذه الدورة، وتستغرق دقيقتين: الإفراط المتعمَّد في تعلّم عيّنة صغيرة جدًّا.
خُذ نحو عشر مشاهدات ودرّب الشبكة عليها، بلا أي تنظيم، حتى تصل الخسارة إلى الصفر عمليًا.
petit = torch.utils.data.Subset(donnees_entrainement, range(10))
chargeur = torch.utils.data.DataLoader(petit, batch_size=10)
for epoque in range(300):
for X_lot, y_lot in chargeur:
optimiseur.zero_grad()
perte = critere(modele(X_lot), y_lot)
perte.backward()
optimiseur.step()
if epoque % 50 == 0:
print(f"epoque {epoque} : perte {perte.item():.5f}")
والتفسير ثنائي وقاطع. فإذا سعت الخسارة إلى الصفر، فالسلسلة الكاملة تعمل: البيانات تصل جيّدًا، والتدرّجات تجري، والمُحسِّن يعمل. ويمكنك إطلاق التدريب الكامل بثقة. وإن تجمّدت، فهناك علّة، ولا جدوى من الأمل بأنّ المشكلة ستُحلّ على بيانات أكثر. فابحث في محاذاة الوسوم، وفي أبعاد المُوتّرات، وفي معدّل التعلّم، أو في zero_grad() غائب.
ويُوفّر هذا الاختبار بانتظام ساعات من التد ريب على خطّ معالجة معطوب.
إشارتان يجب أن تُقلقا
خسارة تحقّق أدنى من خسارة التدريب تُفاجئ، لكن لها في الغالب تفسير حميد: فالإسقاط والتطبيع بالحزم يعاقبان التدريب ويُعطَّلان في التحقّق، وخسارة التدريب متوسَّطة على الحقبة بينما تُقاس خسارة التحقّق في نهايتها. أمّا إن كان الفارق كبيرًا ومستمرًّا فاشتبه بمجموعة تحقّق سهلة جدًّا، أو بتسرّب بيانات.
وأداء ممتاز من الحقبة الأولى يجب أن يُطلق ردّ الفعل نفسه من الدورة السابقة بالضبط: البحث عن تسرّب. فالوحدة 8 من دورة هندسة المتغيّرات تصف العائلات الأربع الواجب مراجعتها.
إلى جانب الخسارتين، تتبيّن ثلاث متتاليات نفيسة في التشخيص. معدّل التعلّم الفعلي، للتحقّق من أنّ التخطيط يفعل ما تظنّه. ومعيار التدرّجات، الذي يكشف التلاشي والانفجار كما في الوحدة 6. والمقياس المهني — الدقّة، المساحة تحت منحنى ROC — لأنّ خسارة تنخفض بينما يتجمّد المقياس تُشير غالبًا إلى مشكلة معايرة أو عدم توازن أصناف.
الخلاصة
- يكفي منحنيان للتمييز بين تدريب سليم ونقص في التعلّم وإفراط في التعلّم ومعدّل مرتفع جدًّا وعلّة تقنية.
- خسارة مستوية من البداية علّة، لا مشكلة تحسين؛ وخسارة تتذبذب مشكلة خطوة.
- الإفراط المتعمَّد في تعلّم عيّنة صغيرة يُصادق على السلسلة كلّها في دقيقتين، وينبغي أن يسبق أي تدريب طويل.
- تحقّق أفضل من التدريب يُفسَّر غالبًا بالإسقاط وبلحظة القياس؛ ونتيجة ممتازة من البداية تستدعي البحث عن تسرّب.
الوحدة التالية: التطبيق، بأوّل شبكة مُدرَّبة من طرف إلى طرف.