0 تصويتات
منذ في تصنيف الذكاء الاصطناعي بواسطة admin6 (128ألف نقاط)
ما هو Batch Normalization؟

1 إجابة واحدة

0 تصويتات
منذ بواسطة admin6 (128ألف نقاط)

ما هو Batch Normalization؟


Batch Normalization هو تقنية تُستخدم في شبكات التعلم العميق لتحسين وتسريع عملية التدريب وتقليل مشكلة الاختلاف في توزيع البيانات عند كل طبقة من طبقات النموذج.

عند تدريب الشبكات العصبية، تتغير توزيعات مخرجات الطبقات المختلفة مع تحديث الأوزان في كل خطوة، وهو ما يُعرف بمشكلة التوزيع الداخلي المتغير "Internal Covariate Shift". هذه المشكلة يمكن أن تؤدي إلى بطء كبير في عملية التعلم أو حتى صعوبة في الوصول إلى نتائج جيدة. Batch Normalization يأتي لحل هذه المشكلة عن طريق إعادة تعديل مخرجات الطبقات بحيث تكون موزعة بمتوسط وقيمة تباين ثابتين داخل كل دفعة (Batch) من البيانات أثناء التدريب.

كيف يعمل Batch Normalization؟


في كل دفعة من البيانات التي تُمرر عبر الشبكة، يتم حساب المتوسط والانحراف المعياري لمخرجات الطبقة التي سيتم تطبيعها. ثم تُستخدم هذه القيم لتعديل المخرجات بحيث تكون ذات توزيع مستقر وموحد. بشكل محدد، يتم طرح المتوسط من كل قيمة بالمخرجات، ثم تُقسم على الانحراف المعياري، ثم تُضاف إزاحة وقابلية مقياس قابلة للتعلم.

هذا التطبيع يقلل من التغيرات الشديدة في مدخلات الطبقات، مما يساعد على تسريع التدريب ويجعل النموذج أقل حساسية لاختيار معدّل التعلم. كما يسمح باستخدام معدلات تعلم أعلى، ويُسهّل عملية التعميم على بيانات جديدة.

فوائد Batch Normalization


هناك العديد من الفوائد التي تجلبها Batch Normalization إلى عملية بناء النماذج العميقة، منها:


1. تسريع التدريب: حيث تقضي على ضرورة إجراء ضبط دقيق لمعدّل التعلم، وتقلل من عدد الحلقات اللازمة للوصول إلى دقة جيدة.


2. ثبات الأداء: النموذج يصبح أكثر استقرارًا أثناء التدريب وأقل عرضة لانفجار أو اختفاء القيم داخل الشبكة.


3. تقليل الاعتماد على تهيئة الأوزان: مما يجعل الشبكة أقل حساسية لطريقة التهيئة الأولية للأوزان.


4. أحيانًا تساعد في تقليل الحاجة إلى تقنيات أخرى لمنع الإفراط في التعلّم مثل Dropout.

متى يُستخدم Batch Normalization؟


غالبًا ما يُضمّن Batch Normalization بين الطبقات المخفية في الشبكات العصبية، خصوصًا في شبكات CNN وRNN. وعادة ما يُستخدم بعد طبقة الخطية أو الطبقة الالتفافية وقبل دالة التنشيط مثل ReLU. مع ذلك، يجب الانتباه إلى أن Batch Normalization يعتمد على حجم الدفعة في التدريب، فكلما كانت الدفعة أكبر كان الأداء أفضل. في حالات البيانات المتدفقة أو الدُفعات الصغيرة جدا، قد يتطلب الأمر تقنيات أخرى مثل Layer Normalization أو Group Normalization.

...