دوال التفعيل
تُعد دوال التفعيل أساسية في الشبكات العصبية الاصطناعية، حيث تُدخل اللاخطية وتمكن من تعلم الأنماط المعقدة. يستكشف هذا المقال أهدافها وأنواعها وتحدياتها وأهم تطبي...
تسوية الدُفعات تحسن تدريب الشبكات العصبية عبر تثبيت توزيعات المدخلات وتقليل التحول التغايري وتسريع التقارب في التعلم العميق.
تسوية الدُفعات هي تقنية ثورية في مجال التعلم العميق تعزز بشكل كبير عملية تدريب الشبكات العصبية. تم تقديمها من قبل سيرجي إيوفه وكريستيان سيغيدي في عام 2015، حيث تعالج مشكلة التحول التغايري الداخلي، والذي يشير إلى التغيرات في توزيع تنشيطات الشبكة أثناء التدريب. تتناول هذه المقالة تفاصيل تسوية الدُفعات، وآلية عملها، وتطبيقاتها، ومزاياها في نماذج التعلم العميق الحديثة.
تسوية الدُفعات هي طريقة تُستخدم لتثبيت وتسريع تدريب الشبكات العصبية الاصطناعية. حيث تقوم بتطبيع مدخلات كل طبقة في الشبكة عن طريق تعديل وتقييس التنشيطات. تتضمن هذه العملية حساب المتوسط والانحراف المعياري لكل ميزة في كل دُفعة صغيرة واستخدام هذه الإحصائيات لتطبيع التنشيطات. من خلال ذلك، تضمن تسوية الدُفعات أن مدخلات كل طبقة تحافظ على توزيع ثابت، وهو أمر بالغ الأهمية للتدريب الفعّال.
التحول التغايري الداخلي هو ظاهرة يتغير فيها توزيع المدخلات إلى طبقة من طبقات الشبكة العصبية أثناء التدريب. يحدث هذا التحول بسبب تحديث معاملات الطبقات السابقة، مما يغيّر التنشيطات التي تصل إلى الطبقات اللاحقة. تسوية الدُفعات تقلل هذه المشكلة من خلال تطبيع مدخلات كل طبقة، ما يضمن توزيعاً ثابتاً للمدخلات وبالتالي يسهل عملية تدريب أكثر سلاسة وكفاءة.
يتم تنفيذ تسوية الدُفعات كطبقة ضمن الشبكة العصبية، حيث تقوم بعدة عمليات أثناء المرور الأمامي:
رياضياً، لميزة $x_i$، يتم التعبير عن ذلك كالتالي:
$$ \hat{x_i} = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} $$
$$ y_i = \gamma \hat{x_i} + \beta $$
تُستخدم تسوية الدُفعات على نطاق واسع في العديد من مهام وهياكل التعلم العميق، بما في ذلك:
في TensorFlow، يمكن تنفيذ تسوية الدُفعات باستخدام الطبقة tf.keras.layers.BatchNormalization()
:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, input_shape=(784,)),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Activation('relu'),
tf.keras.layers.Dense(10),
tf.keras.layers.Activation('softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32)
في PyTorch، يتم تنفيذ تسوية الدُفعات باستخدام nn.BatchNorm1d
للطبقات الكاملة التوصيل أو nn.BatchNorm2d
للطبقات الالتفافية:
import torch
import torch.nn as nn
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.fc1 = nn.Linear(784, 64)
self.bn = nn.BatchNorm1d(64)
self.relu = nn.ReLU()
self.fc2 = nn.Linear(64, 10)
self.softmax = nn.Softmax(dim=1)
def forward(self, x):
x = self.fc1(x)
x = self.bn(x)
x = self.relu(x)
x = self.fc2(x)
x = self.softmax(x)
return x
model = Model()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
تسوية الدُفعات هي تقنية لا غنى عنها لممارسي التعلم العميق، حيث تعالج التحولات التغايرية الداخلية وتُسهل تدريباً أسرع وأكثر استقراراً للشبكات العصبية. وقد أدى دمجها في أطر العمل الشهيرة مثل TensorFlow وPyTorch إلى جعلها متاحة ومستخدمة على نطاق واسع، مما أدى إلى تحسينات ملحوظة في الأداء عبر مجموعة متنوعة من التطبيقات. ومع تطور الذكاء الاصطناعي، تظل تسوية الدُفعات أداة أساسية لتحسين تدريب الشبكات العصبية.
تسوية الدُفعات هي تقنية تعمل على تثبيت وتسريع تدريب الشبكات العصبية من خلال تطبيع مدخلات كل طبقة، ومعالجة التحول التغايري الداخلي، والسماح بتقارب أسرع واستقرار أفضل.
تسوية الدُفعات تسرع التدريب، وتحسن الاستقرار، وتعمل كشكل من أشكال التنظيم، وتقلل الحساسية لتهيئة الأوزان، وتضيف مرونة من خلال المعاملات القابلة للتعلم.
تسوية الدُفعات تُستخدم على نطاق واسع في مهام التعلم العميق مثل تصنيف الصور، ومعالجة اللغة الطبيعية، والنماذج التوليدية، وتم تنفيذها في إطارات العمل مثل TensorFlow وPyTorch.
تم تقديم تسوية الدُفعات بواسطة سيرجي إيوفه وكريستيان سيغيدي في عام 2015.
ابدأ في بناء روبوتات دردشة ذكية وأدوات ذكاء اصطناعي مع منصة FlowHunt السهلة. وصل بين الكتل وأتمتة أفكارك بسهولة.
تُعد دوال التفعيل أساسية في الشبكات العصبية الاصطناعية، حيث تُدخل اللاخطية وتمكن من تعلم الأنماط المعقدة. يستكشف هذا المقال أهدافها وأنواعها وتحدياتها وأهم تطبي...
الانحدار التدرجي هو خوارزمية تحسين أساسية تُستخدم على نطاق واسع في تعلم الآلة والتعلم العميق لتقليل دوال التكلفة أو الخسارة عن طريق تعديل معلمات النموذج بشكل تك...
الإسقاط هو تقنية تنظيمية في الذكاء الاصطناعي، خاصة في الشبكات العصبية، تكافح الإفراط في التكيّف عن طريق تعطيل بعض العُقد عشوائيًا أثناء التدريب، مما يعزز تعلّم ...