إحصاءات BatchNorm ليست وصفًا للقيمة منفردة. في BatchNorm1d تحسب الوحدة متوسط القناة وتباينها في الدفعة أثناء التدريب؛ وعند تتبع الإحصاءات الجارية تستعمل المخزن الجاري في التقييم. [1]
الخلاصة السريعة
حدد محور القناة ووضع الوحدة وخيار تتبع الإحصاءات؛ ثبات قيمة المدخل وحدها لا يضمن ثبات خرجها إذا تغيرت القيم التي تدخل حساب التطبيع.
- في مثال BatchNorm1d ذي قناة واحدة، تشترك حالتا الدفعة في المتوسط والتباين؛ لا نحسب تطبيع كل حالة وحدها. [1]
- اخترنا eps = 1 ومعامل تحجيم 1 وإزاحة صفر؛ قيمة 2 مع رفيق 4 تعطي نحو سالب 0.70711، ومع رفيق 6 تعطي سالب 0.89443.
- في التقييم مع تتبع جارٍ ومتوسط مخزن صفر وتباين مخزن 4، تعطي القيمة 2 نحو 0.89443؛ هذه مخازن اخترناها وليست نتيجة تدريب أجريناه.
- تباين مرور التدريب مقسوم على عدد القيم، بينما إحصاء تحديث التباين الجاري غير منحاز؛ وإذا كان track_running_stats=False، تستعمل الوحدة إحصاءات الدفعة في التقييم أيضًا. [1]
سم القناة والقيم التي تشارك الحساب
يوثق المصدر صيغة طرح متوسط القناة والقسمة على جذر التباين مضافًا إليه eps، ثم التحجيم بمعامل القناة وإزاحتها. [1]
نعلن مدخلًا بسيطًا شكله حالتان وقناة واحدة. لا نحول أسماء الحالتين إلى قناتين؛ كلا الرقمين يدخل إحصاءات القناة نفسها. لو بدلت معنى الأبعاد، تغير ما يدخل الحساب رغم بقاء الأعداد مكتوبة في الملف.
نختار eps = 1 لسهولة الأرقام، وليس القيمة الافتراضية الموثقة 0.00001. ونثبت معامل التحجيم عند 1 والإزاحة عند صفر. لا نحدث أي معامل في تمريننا، ولذلك يخص الفرق اللاحق تغير القيم المشتركة فقط.
ثبت القيمة وغير رفيقها
الدفعة الأولى 2 و 4؛ متوسطها 3، وتباين مرورها من مربعي الفرقين 1 و 1 مقسومين على 2 يساوي 1. نطرح 3 من القيمة 2، ثم نقسم على جذر 1 + 1؛ الخرج سالب 1 ÷ جذر 2، نحو سالب 0.70711.
الدفعة الثانية 2 و 6؛ متوسطها 4 وتباينها 4. للقيمة الأولى نحسب سالب 2 ÷ جذر 5، نحو سالب 0.89443. المدخل 2 لم يتغير، لكن المقام ومركز الطرح تغيرا بسبب رفيقه.
لم تستدع الحسابات وحدة برمجية أو تجر تدريبًا. ولا نستنتج أن الرفيق الأكبر يحسن التنبؤ؛ الجدول يشرح كيف تتحول قيمة واحدة تحت إحصاءات دفعتين محددتين.
| قيم الدفعة | المتوسط والتباين | خرج القيمة 2 |
|---|---|---|
| 2، 4 | 3، 1 | سالب 0.70711 |
| 2، 6 | 4، 4 | سالب 0.89443 |
المخزن الجاري ليس دفعة جديدة
عند تتبع الإحصاءات، يحتفظ التنفيذ بتقديرات جارية ويستعملها في التقييم. [1]
نختار لهذا الجزء متوسطًا مخزنًا صفرًا وتباينًا مخزنًا 4، مع الإعدادين نفسيهما. خرج المدخل 2 يصبح 2 ÷ جذر 5، نحو موجب 0.89443، لأن الطرح والقسمة اعتمدا على المخزن الذي أعلناه.
لا ندعي أن الدفعتين السابقتين أنتجتا هذين المخزنين. استنتاج ذلك يحتاج بداية المخزن وقاعدة تحديثه وسلسلة المرورات. ولا نقول إن وضع التقييم يعطل المشتقات أو يجعل كل جزء آخر في النموذج ثابتًا.
أي تباين تقرأ وأي خيار يغير القاعدة؟
يستعمل المرور التدريبي مقدر التباين المنحاز، بينما الإحصاء الذي يدخل تحديث التباين الجاري يستعمل المقدر غير المنحاز. ومع تعطيل تتبع الإحصاءات، يستعمل التقييم الدفعة أيضًا. [1]
في الدفعة 2 و 4، مجموع مربعي الفرقين 2. القسمة على العدد 2 تعطي 1 الذي استعملناه في المرور، والقسمة على العدد ناقص واحد تعطي 2. هذا الإحصاء الثاني لا يعني أن المخزن أصبح 2 فورًا؛ تحديثه له حالة سابقة وقاعدة.
راجع نوع الوحدة وشكل المدخل وeps والمعاملات والوضع وخيار التتبع قبل مقارنة خرجين. بذلك لا تنسب فرقًا سببه إعداد التطبيع إلى تغير معنى المدخل أو جودة النموذج.
المصادر ومتابعة القراءة
- PyTorch 2.8.0: BatchNorm1d (يفتح في نافذة جديدة)raw.githubusercontent.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
