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

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

#batch-normalizationالتعلّم العميق

تطبيع الحُزَم: إبقاء التفعيلات في المدى الصحيح.

ما ستُجرّبه

  1. مرحبًا بك في #batch-normalization. على الشاشة، أربعة أعمدة زرقاء: عمود لكل طبقة مخفيّة في شبكة صغيرة (4 طبقات من 16 عصبونًا، تفعيل tanh). كل عمود هو مدرَّج تكراري لتفعيلات الطبقة حين تعبر حُزمة من 64 نقطة: 16 عمودًا بين −1 و+1، عمود أصفر للمتوسط، وظلّ للانحراف المعياري ±. تأمّل من اليسار إلى اليمين: المدرَّج يضيق بالفعل (σ من 0.64 إلى 0.29) رغم أن التهيئة «صحيحة». الأمر كسلسلة نسّاخات ضبط كلٌّ منها ساطعًا قليلًا: عند النسخة السادسة، تصير الصفحة بيضاء. كل طبقة تتلقّى توزيعًا شوّهته الطبقة السابقة — هذا هو الانزياح المشترك الداخلي (internal covariate shift). تطبيع الحُزَم (batch normalization) يعيد توسيط كل طبقة ويقلّص انتشارها آنيًا، ثم يتيح لها إعادة الضبط بمعاملين مُتعلَّمَين: γ وβ.
  2. لنبالغ في تصوير الانزياح. اضرب الأوزان الأوّلية في 6: اكتب /init large.
  3. هل تنفع شبكة أعمق؟ أضف طبقتين: /layers 6.
  4. شغّل تطبيع الحُزَم: /bn on. لكل عصبون، نحسب المتوسط μ والانحراف المعياري σ لتفعيله القَبْلي على الحُزمة، ثم نستبدل z بـ (z − μ) / σ قبل تطبيق tanh.
  5. BN لا يُجمّد كل شيء: بعد التطبيع، تضرب الطبقة في γ وتُزيح بـ β، وهما معاملان تتعلّمهما. جرّب /gamma 2.
  6. أطفئ BN تحضيرًا للخطوة التالية: /bn off.
  7. الاعتلال الآخر: أوزان صغيرة جدًا. اكتب /init small (أوزان × 0.25).
  8. لنرَ ثمن ذلك على التدريب. سيتدرّب النموذج نفسه (بالأوزان الأوّلية ذاتها) مرّتين على مجموعة «moons»، مرّة بدون BN وأخرى بـ BN: /train 40.
  9. حان دورك: /activation relu ثم /bn on و/beta -2 لإماتة معظم عصبونات ReLU؛ /batch 8 لرؤية إحصاءات حُزمة مضجوجة؛ /propagate لسحبة جديدة من الأوزان والنقاط؛ /init normal ثم /train 60 للمقارنة مع تهيئة جيدة؛ /reset للبدء من جديد. التالي: قناة #rnn-lstm، حيث لا تعبر الإشارة الطبقاتِ بل الزمن — وتنزاح بالطريقة نفسها.

أوامر القناة

  • /layers <2..6>عدد الطبقات المخفيّة (16 عصبونًا لكل منها).
  • /activation <tanh|relu|sigmoid>دالة تفعيل الطبقات المخفيّة.
  • /init <small|normal|large>مقياس الأوزان الأوّلية: small (× 0.25)، normal (Xavier / He)، large (× 6).
  • /bn <on|off>تشغيل تطبيع الحُزَم أو إطفاؤه على كل طبقة مخفيّة.
  • /gamma <0.1..3>معامل القياس γ المطبَّق بعد التطبيع (انحراف معياري للتفعيل القَبْلي).
  • /beta <-2..2>الإزاحة β المطبَّقة بعد التطبيع (متوسط التفعيل القَبْلي).
  • /batch <8..128>حجم الحُزمة التي تعبر الشبكة وتُستخدم لحساب μ وσ.
  • /propagateسحبة جديدة (أوزان أوّلية وحُزمة)، تُعاد حساب كل مدرَّج.
  • /train <5..60>يدرّب الشبكة نفسها مع BN وبدونه على «moons» ويرسم منحنيَي الخسارة.
  • /resetالعودة إلى 4 طبقات tanh، تهيئة normal، BN مُطفأ، γ = 1، β = 0، حُزمة 64.

المسرد

تطبيع الحُزَم (batch normalization)
طبقة تعيد توسيط كل تفعيل قَبْلي وتُقلّص انتشاره على الحُزمة الحالية، ẑ = (z − μ) / σ، ثم تُعيد قياسه بمعاملين مُتعلَّمَين، y = γ·ẑ + β. تُثبِّت التوزيع الذي تتلقّاه كل طبقة، وتسمح بمعدّلات تعلّم أكبر، وتجعل الشبكة أقلّ حساسية للتهيئة.
الانزياح المشترك الداخلي (internal covariate shift)
حقيقة أن توزيع مدخلات طبقةٍ ما يتغيّر على مدى التدريب ومع العمق، لأن الطبقات السابقة تظلّ تتحرّك. تُضطر كل طبقة عندئذٍ إلى إعادة التعلّم على هدف متحرّك؛ هذه هي المشكلة التي صُمّم تطبيع الحُزَم للتخفيف منها.
متوسط الحُزمة وانحرافها المعياري
الإحصاءات μ وσ المحسوبة، لكل عصبون، على أمثلة الحُزمة الحالية. هما ما يُطبّع بهما BN أثناء التدريب: كلما صغرت الحُزمة، ازداد ضجيجهما، وقلّت موثوقية BN.
gamma وbeta
المعاملان المُتعلَّمان لتطبيع الحُزَم: γ يضرب القيمة المُطبَّعة (انحرافها المعياري)، β يُزيحها (متوسّطها). يمنحان الطبقة حرّية اختيار مجالها — بما في ذلك إبطال التطبيع إن كان ذلك مفيدًا.
التشبّع (saturation)
منطقة في التفعيل يكون فيها الميل شبه صفري: حافّتا tanh (±1) أو sigmoid (0 و1). التفعيل المُشبَع لا يمرّر إلا القليل من التدرّج: هذا هو مصدر تلاشي التدرّج.
العصبونات الميتة (dead neurons)
عصبونات ReLU يكون تفعيلها القَبْلي سالبًا لكل الأمثلة (تقريبًا): خرجها 0، وتدرّجها كذلك، ولا تعود تتعلّم. متوسط شديد السلب (β ≪ 0) أو أوزان سيّئة قد تُميت طبقات بأكملها.
تطبيع الطبقة (layer normalization)
صيغة تُطبّع كل مثال على عصبوناته الخاصّة (متوسط واحد وانحراف معياري واحد لكل مثال، لا لكل عصبون) بدلًا من التطبيع على الحُزمة. مستقلّ عن حجم الحُزمة، وهو المعيار في نماذج transformers والشبكات المتكرّرة.
المتوسطات الجارية (running averages)
وقت الاستدلال، لا توجد حُزمة بعدُ: يستخدم تطبيع الحُزَم متوسطات وتباينات مُتراكمة أثناء التدريب (متوسطات متحرّكة أُسّية لإحصاءات الحُزَم). تسلك الشبكة عندئذٍ سلوك دالة ثابتة، مثالًا بمثال.
تهيئة الأوزان (weight initialization)
اختيار الانحراف المعياري الأوّلي للأوزان. Xavier / Glorot (1/√n، لـ tanh وsigmoid) وHe (√(2/n)، لـ ReLU) معايَران للحفاظ على التباين من طبقة إلى أخرى. كبير جدًا: تشبّع؛ صغير جدًا: تنهار الإشارة.
حُزمة (batch)
مجموعة فرعية من الأمثلة تُعالَج معًا عند كل خطوة من خطوات نزول التدرّج (من 8 إلى 128 هنا). يحسب تطبيع الحُزَم إحصاءاته عليها: حجمها إذن مُعامل فوقي يغيّر سلوك الشبكة، لا سرعتها فقط.

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

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