انتقل إلى المحتوى الرئيسي

جارٍ تحميل المختبر المرئي…

#transfer-learningالتعلّم العميق

التعلّم بالنقل: انطلق من شبكة مدرَّبة سلفًا.

ما ستُجرّبه

  1. أهلًا بك في #transfer-learning. على الشاشة شبكتان متطابقتان 2-12-12-1 تواجهان المهمّة نفسها: تصنيف 60 نقطة هدفًا زرقاء وورديّة، من هلالَين مُزاحَين قليلًا. على اليسار النقل: شبكة مدرَّبة سلفًا على 400 هلال (المهمّة المصدر) طبقتاها الأوليان مجمَّدتان (بلون أزرق ثلجي) — الرأس الوردي وحده هو من سيتعلّم. على اليمين من الصفر: الشبكة نفسها بأوزان عشوائية، وعليها أن تتعلّم كل شيء. كلا سطحَي القرار لا يزالان رماديَّين: لم تنظر أيّ منهما إلى الهدف بعد. هذا ما يفعله مستشفى حين يعيد استخدام شبكة مدرَّبة على ملايين الصور لقراءة 200 صورة أشعّة: حين يكون لديك أمثلة قليلة، لا تبدأ من الصفر أبدًا.
  2. لنجعل الهدف نادرًا فعلًا: اكتب /data 20. عشرون مثالًا، وهي كل ما ستراه الشبكتان. في الطريق، تُدرَّب الشبكة المصدر مرّة واحدة نهائيًا (400 نقطة، 8 حقب) وتُنسخ إلى اليسار؛ وعلى اليمين أوزان عشوائية.
  3. الميزانية ذاتها لكلتيهما: /train 20. عشرون حقبة على عشرين نقطة، ويُرسَم المنحنيان في الوسط حقبةً حقبة.
  4. ماذا لو رفعنا التجميد عن كل شيء؟ /freeze 0: لم تعد أي طبقة مجمَّدة، وتُعاد جميع معاملات شبكة النقل الـ205 على النقاط العشرين، بميزانية العشرين حقبة نفسها (تُعاد اللعبة).
  5. أعِد تجميد الطبقتين الأوليين: /freeze 2. تعود الخصائص المتعلَّمة على المصدر إلى الحصانة، ولا يتكيّف سوى الرأس (12 وزنًا + انحياز واحد).
  6. لنبعِد الهدف عن المصدر: /rotation 90. تدور أهلّة الهدف ربع دورة — تلاحظ الغيمة تدور أمام عينيك — وتُعاد العشرون حقبة.
  7. ضع أرقامًا على كل هذا: /compare. يلخّص المعلّم دقّة التحقق والفارق والمعاملات المدرَّبة والميزانية، ويظهر الشريط بين المنحنيَين.
  8. الدور دورك: /rotation 0 ثم /data 200 (ببيانات وفيرة تقارب الشبكة الجديدة النقل)، و/freeze 1 (تجميد الطبقة الأولى فقط: المفاضلة الكلاسيكية للضبط الدقيق)، و/lr 0.1، و/target circles (عائلة أشكال مختلفة: خصائص الأهلّة لا تنفع)، و/source circles (الدوائر ثابتة تحت الدوران: أدرها ويصمد النقل)، و/seed 7، و/reset. التالي: #gan، حيث لم تعد الشبكتان تتعاونان بل تتنافسان.

أوامر القناة

  • /source <moons|circles>شكل المهمّة المصدر (400 نقطة) التي تُدرَّب عليها الشبكة مسبقًا.
  • /target <moons|circles>شكل المهمّة الهدف، الفقيرة بالبيانات.
  • /rotation <degrees=0..180>يُدير الهدف: كلّما دار أكثر، ابتعد أكثر عن المصدر.
  • /data <points=10..200>عدد نقاط تدريب الهدف.
  • /freeze <0|1|2>عدد الطبقات الأولى المجمَّدة في شبكة النقل (0 = إعادة تدريب كل شيء).
  • /train <epochs=5..60>يتابع الضبط الدقيق للشبكتين، الميزانية نفسها لكلٍّ منهما.
  • /lr <0.001..0.5>معدّل التعلّم في الضبط الدقيق (لكلتا الشبكتين).
  • /compareملخّص رقمي للنقل مقابل من الصفر؛ يُظهر أو يُخفي شريط الفارق.
  • /seed <1..999>سحب نقاط هدف مختلفة وتهيئة مختلفة للشبكة الجديدة.
  • /resetالعودة إلى moons ← moons، 60 نقطة، طبقتان مجمَّدتان، 0 حقب.

المسرد

التعلّم بالنقل (Transfer learning)
إعادة استخدام شبكة مدرَّبة على مهمّة مصدر وفيرة البيانات نقطةَ انطلاق لمهمّة هدف فقيرة البيانات. الطبقات السفلى، التي تكشف الأنماط العامة، تُؤخذ كما هي؛ ولا يُتعلَّم سوى ما يخصّ الهدف. هو القاعدة في الرؤية واللغة: لا أحد يبدأ تقريبًا من الصفر.
التدريب المسبق (Pre-training)
المرحلة الأولى من التدريب، على المهمّة المصدر، والتي تُنتج الأوزان الابتدائية. مكلفة لكنها تُنجَز مرّة ثم تُشارَك: ImageNet للصور، ومليارات الكلمات لنماذج اللغة. هنا: 400 نقطة، 8 حقب، مخزَّنة.
الضبط الدقيق (Fine-tuning)
متابعة تدريب الشبكة المدرَّبة مسبقًا على المهمّة الهدف بمعدّل تعلّم صغير. يمكنك تحرير كل الطبقات أو الأخيرة فقط: كلّما حرّرت أكثر تكيّفت الشبكة أكثر — وازدادت خطر الإفراط في التعلّم عند شحّ البيانات.
تجميد الطبقات (Layer freezing)
منع تحديث الأوزان على طبقات معيّنة أثناء الضبط الدقيق: تُتجاهَل تدرّجاتها. جمِّد أولًا الطبقات السفلى الأكثر عمومية. معاملات حرّة أقلّ تعني إفراطًا أقلّ في التعلّم وتدريبًا أسرع.
الرأس التصنيفي (Classification head)
الطبقات الأخيرة من الشبكة، التي تحوّل الخصائص المستخرَجة إلى قرار. هذا هو الجزء الذي تستبدله أو تعيد تدريبه دائمًا عند النقل: 12 وزنًا وانحيازًا واحدًا هنا من أصل 205 معاملات.
استخراج الخصائص (Feature extraction)
استخدام الشبكة المدرَّبة مسبقًا، مجمَّدةً، بوصفها دالّة ثابتة تحوّل المدخل إلى متّجه خصائص، ثم تدريب مصنِّف بسيط فوقها. هذه هي حالة /freeze 2: المصدر «يرى»، والرأس يقرّر.
مجال المصدر / الهدف (Source / target domain)
المجال هو توزيع البيانات. المصدر هو مجال التدريب المسبق (وفير)، والهدف هو مجال المهمّة الفعلية (شحيح). يعمل النقل بشكل أفضل كلّما تشابه المجالان: نفس الأهلّة مُزاحة قليلًا، نعم؛ أهلّة ثم دوائر، أقلّ بكثير.
انزياح المجال (Domain shift)
الفارق بين توزيعَي المصدر والهدف: هنا دوران وإزاحة. انزياح صغير يصمد فيه النقل؛ انزياح كبير تفقد فيه الخصائص المجمَّدة ملاءمتها ويمكن أن يصبح النقل أسوأ من الصدفة (نقل سلبي).
النسيان الكارثي (Catastrophic forgetting)
حين تُعاد تدريب شبكة على مهمّة جديدة فتمسح ما كانت تعرفه عن القديمة. تحرير جميع الطبقات بمعدّل تعلّم كبير يستدعيه؛ تجميد الطبقات السفلى أو تصغير الخطوة يحدّ منه.
قليل الأمثلة (Few-shot)
نظام لا تُوفِّر فيه المهمّة الهدف سوى أمثلة قليلة لكل صنف (10 هنا). تعلّم 205 معاملات من الصفر شبه مستحيل؛ إعادة استخدام 192 متعلَّمة مسبقًا وضبط 13 فقط يصبح معقولًا. النقل هو الجواب الأول لشحّ البيانات.

قنوات أخرى في التعلّم العميق

  • #optimizersSGD وMomentum وAdam: سباق إلى الأدنى.
  • #batch-normalizationتطبيع الحُزَم: إبقاء التفعيلات في المدى الصحيح.
  • #rnn-lstmRNN وLSTM: تذكُّر تسلسل.
  • #autoencoderالمرمّز التلقائي: اضغط ثم أعِد البناء.
  • #transfer-learningالتعلّم بالنقل: انطلق من شبكة مدرَّبة سلفًا.
  • #ganGAN: مزوِّر ضدّ مفتِّش