تعلم الآلةمترجم

كيف تصمم الشبكة العصبية الخاصة بك؟

المقال: Lavanya Shukla   ترجمة: ليلى باشمال   مراجعة: أحمد النفيسة

[المقال الأصلي باللغة الإنجليزية اضغط هنا]

يُعد تصميم الشبكة العصبية من أكثر الأمور المحيّرة في مجال التعلم العميق، عند تصميم الشبكة عادة ما تواجهنا العديد من الأسئلة مثل: ماهي أفضل قيمة لمعدل التعلم؟ كم عدد الطبقات المخفية (الوسطى) التي يجب أن تحتويها الشبكة؟ هل إسقاط الخلايا العصبية (dropout) مفيد للشبكة؟ لماذا تتلاشى مشتقة الخطأ عبر الشبكة (Vanishing Gradient)؟
هذا المقال سيزيح الستار عن هذه الأسئلة المحيرة التي قد تواجهك عند تصميم الشبكة العصبية، وسيقوم بإرشادك خطوة بخطوة في كيفية اتخاذ قرارات ذكية بشأن بُنية الشبكة العصبية الخاصة بك.

١. البُنية الأساسية للشبكة العصبية

١.١ مُدخَلات الشبكة العصبية

  • يُقصد بعدد مُدخلات الشبكة العصبية عدد الخصائص/السمات (Features) التي تستخدمها الشبكة العصبية لاستنتاج المُخرجات.
  • سنحتاج لخلية عصبية واحدة لكل خاصية موجودة في المُدخلات، إذا كانت البيانات على شكل جدول فإن عدد الخلايا العصبية المطلوب يمثل عدد الخصائص (الأعمدة) في مجموعة البيانات الخاصة بك، لابد من تحديد هذه الخصائص بعناية و إزالة أي خصائص قد تحتوي على أنماط لا يمكن تعميمها خارج مجموعة التدريب (حتى لا تتسبب في الوصول لحالة فرط التخصيص (overfitting))، إذا كانت البيانات عبارة عن صور فعدد الخلايا العصبية المطلوب في طبقة الإدخال يمثل أبعاد الصورة، فمثلاً في مجموعة بيانات MNIST أبعاد الصور هو 28 * 28 = 784 ، إذن سنحتاج إلى 784 خلية عصبية في طبقة الإدخال.

مثال على عدد الخلايا العصبية في طبقة الإدخال لمجموعة بيانات MNIST

٢.١ مُخرَجَات الشبكة العصبية

  • عدد المُخرجات يُمثل عدد النتائج أو التنبؤات التي تود الحصول عليها من الشبكة.
  • الانحدار (Regression): في مشاكل الانحدار التي يكون فيه مُخرَج الشبكة قيمة واحدة (مثل: سعر المنزل) سنحتاج إلى خلية عصبية واحدة، أما في حالات الانحدار متعدد المُخرجات سنحتاج لخلية عصبية واحدة لكل قيمة متوقعة (مثلاً في مشكلة تحديد موقع كائن في صورة ما سنحتاج إلى ٤ خلايا عصبية في طبقة الإخراج لتحديد مكان المستطيل الذي يحيط بالكائن في الصورة، خلية عصبية لكل من (الإحداثي س، الإحداثي ص، عرض المستطيل، طول المستطيل).
  • التصنيف (Classification): في حالة التصنيف الثنائي (مثل: تصنيف البريد إلى مزعج وغير مزعج) سنحتاج لخلية عصبية واحدة بحيث يُمَثّل الناتج احتمال انتماء المُدخَل للفئة الإيجابية. بالنسبة للتصنيف متعدد الفئات (على سبيل المثال: التعرف على كائنات مختلفة مثل سيارة أو كلب أو منزل وما إلى ذلك)، سنحتاج لخلية عصبية واحدة لكل فئة، سنستخدم دالة التنشيط سوفت ماكس في طبقة الإخراج/النهائية لضمان أن يكون مجموع جميع الخلايا العصبية في طبقة الإخراج يساوي واحد.

٣.١ الطبقات المخفية/الوسطى والخلايا العصبية في كل طبقة

  • يعتمد عدد الطبقات المخفية/الوسطى وعدد الخلايا العصبية في كل طبقة بشكل كبير على المشكلة المُراد حلها وبنية الشبكة العصبية الخاصة بك. الهدف الأساسي هو الوصول إلى الشبكة العصبية المثالية بحيث لا تكون كبيرة جداً ولا صغيرة جداً بل مناسبة تماماً لمشكلتك.
  • بشكل عام فإن استخدام طبقة واحدة إلى خمس طبقات مخفية/وسطى سوف يخدمك بشكل جيد في معظم المشاكل. عند العمل على بيانات على شكل صور أو صوت، قد تحتاج لأن تحتوي شبكتك ما بين عشرات إلى مئات من الطبقات، والتي قد لا تكون جميعها متصلة بشكل كامل. في هذه الحالة يمكنك استخدام نماذج مدربة مسبقاَ مثل: YOLO و ResNet و VGG والتي تسمح لك باستخدام أجزاء كبيرة منها، ووضع النموذج الخاص بك على رأس هذه الشبكات لِيتعلم الخصائص العليا المرتبطة بالمشكلة، في هذه الحالة سيكون عليك تدريب عدد أقل من الطبقات.
  • بشكل عام فإن استخدام نفس العدد من الخلايا العصبية لجميع الطبقات المخفية سيكون كافياً. في بعض مجموعات البيانات وجود طبقة أولى كبيرة بمدخلات كبيرة ثم متابعتها بطبقات أصغر سيؤدي إلى أداء أفضل حيث يمكن للطبقة الأولى أن تتعلم الخصائص البسيطة للبيانات والتي يمكن أن تتجمع لتمثل خصائص ذات مستوى أعلى في الطبقات اللاحقة.

  • في العادة إضافة عدد طبقات أكثر يؤدي إلى تحسين أكبر في الأداء مقارنة بإضافة المزيد من الخلايا العصبية في كل طبقة.
  • يُوصَى بالبدء بعدد من ١إلى ٥ طبقات ومن ١إلى١٠٠ خلية عصبية في كل طبقة، ثم إضافة المزيد من الطبقات والخلايا العصبية بالتدريج حتى تبدأ في الوصول لحالة فرط التخصيص. بعد ذلك يمكنك تتبع دالة الخسارة (Loss function) والدقة لمعرفة أي عدد من الطبقات والخلايا يعطي أفضل النتائج.
  • من الأمور التي يجب مراعاتها عند اختيار عدد قليل من الطبقات أو الخلايا العصبية أنه إذا كان الرقم صغيراً جداً، فلن تتمكن الشبكة من التعرف على الأنماط الأساسية الكامنة في بياناتك وبالتالي لن تكون ذات فائدة. هناك طريقة لمواجهة هذا الأمر وهو البدء بعدد كبير من الطبقات المخفية والخلايا العصبية ثم استخدام تقنية إسقاط الخلايا العصبية (Dropout) والتوقف المبكر للتدريب (early stopping)؛ وذلك للسماح للشبكة العصبية باختيار الحجم المناسب لها بطريقة ذاتية، يُفضّل تجربة إعدادات وأرقام مختلفة وتتبع الأداء لتحديد حجم الشبكة المثالي لمشكلتك.
  • يوصِي أندريه كاباثاي باتباع أسلوب الإفراط ثم المعادلة حاول أولاً الحصول على نموذج كبير بما يكفي ليصل لحالة فرط التخصيص (أي قم بالتركيز فقط على تقليل خطأ النموذج أثناء عملية التدريب)، بعد ذلك قم بضبط النموذج بشكل مناسب (أي تخلى عن بعض الدقة في النموذج مقابل تحسين تعميم النموذج وتحسين أداءه على بيانات التحقق).

٤.١ دالة الخسارة (Loss function)

  • الانحدار (Regression): دالة متوسط الخطأ التربيعي (Mean Squared Error) من أكثر دوال الخسارة استخداماً في خوارزميات التحسين في مشاكل الانحدار، إذا كان هناك عدد كبير من القيم المتطرفة في هذه الحالة يُفضّل استبدالها بدالة متوسط الخطأ المطلق (Mean Absolute Error) أو خطأ هوبر.
  • التصنيف (Classification): دالة الإنتروبيا المتقاطعة (Cross-entropy) هي خيار جيد في معظم الحالات.

٥.١ حجم الحزمة التدريبية (Batch Size)

  • استخدام أحجام كبيرة من الحزم التدريبية قد يكون خياراً جيداً لأنه يتيح استغلال قوة وحدات المعالجة الرسومية (GPUs) كما أنه يتيح معالجة أكبر عدد ممكن من عينات التدريب في كل مرة. OpenAI وجدت أن استخدام حزم تدريبية كبيرة (عشرات الآلاف من العينات في تصنيف الصور ونمذجة اللغة، وملايين العينات في التعليم التعزيزي) يُسهّل من تطوير النموذج والمعالجة المتوازية.
  • هناك حالات يُفضَل فيها استخدام حزم تدريبية أصغر. وفقًا لهذه الورقة العلمية التي أعدها ماسترز ولوستشي فإن المميزات المكتسبة من تكبير حجم العينة مثل زيادة المعالجة المتوازية ومعالجة مجموعة أكبر من البيانات، يقابلها مميزات أخرى عند استخدام حزم أصغر من البيانات مثل زيادة تعميم النموذج واستخدام أقل للذاكرة العشوائية. أظهرت الورقة العلمية أن الأحجام الكبيرة للحزم التدريبية تقلل من نطاق قيم معدل التعلم (learning rate) للحصول على تقارب مستقر (convergence). خلاصة الورقة هي أن استخدام الحزم التدريبية الأصغر أفضل، وأنه يمكن الحصول على أفضل أداء من خلال استخدام أحجام حزم تدريبية صغيرة تتراوح مابين ٢ إلى ٣٢.
  • إذا كنت لا تعمل على مشكلة بحجم ونطاق كبير، فإنه من الأفضل البدء بحزم تدريبية صغيرة وزيادة حجم الدفعات بالتدريج ومراقبة الأداء لتحديد الحجم الأنسب.

٦.١ عدد الدورات التدريبية

  • من الأفضل البدء بعدد كبير من الدورات التدريبية واستخدام التوقف المبكر أثناء التدريب عندما يتوقف الأداء عن التحسن (انظر القسم الرابع تلاشي وانفجار مشتقة الخطأ).

٧.١ تسوية الخصائص

  • قبل استخدام بياناتك كمدخلات للشبكة العصبية تحقق من أن جميع الخصائص على مقياس واحد فهذا يضمن الحصول على تقارب أسرع. عندما يكون لخصائصك مقاييس مختلفة (على سبيل المثال رواتب الموظفين بالآلاف وعدد سنوات الخبرة بالعشرات)، سيكون شكل دالة التكلفة أشبه بشكل الوعاء الممتد (الشكل على اليسار). هذا يعني أن خوارزمية التحسين الخاصة بك ستستغرق وقتًا طويلاً للتقارب مقارنة باستخدام الخصائص بعد التسوية (الشكل على اليمين).

٢. معدل التعلم (Learning Rate)

  • اختيار قيمة معدل التعلم من الأمور المهمة عند تدريب أي شبكة عصبية، لاختيار قيمته بشكل صحيح قم بتغيير القيمة في كل مرة تقوم فيها بتعديل قيم مُدخلات الضبط (hyper-parameters) الأخرى لشبكتك.
  • للوصول لأفضل قيمة لمعدل للتعلم ابدأ بقيمة منخفضة جداً ( -6^10)، واضربها بقيمة ثابتة بشكل تصاعدي حتى تصل قيمة معدل التعلم إلى قيمة عالية (على سبيل المثال 10). قم بقياس أداء النموذج الخاص بك مقابل كل قيمة من قيم معدل التعلم التي جربتها لتحديد معدل التعلم المثالي لمشكلتك، يمكنك بعد ذلك إعادة تدريب نموذجك باستخدام معدل التعلم الأفضل.
  • أفضل قيمة لمعدل التعلم عادة ما تكون نصف قيمة معدل التعلم الذي يبدأ بعدها النموذج في التباعد. حاول تجربة قيم مختلفة لمعدل التعلم ولاحظ كيف تؤثر على أداء النموذج لتطوير حدسك حول معدلات التعلم.
  • يُوصَى أيضًا باستخدام مكتشف معدل التعلم الذي قدمته ليزلي سميث. هذه الطريقة ممتازة للعثور على معدل تعلم جيد لمعظم خوارزميات التحسين (SGD وأشكالها المختلفة) وتعمل مع معظم معماريات الشبكة.
  • أنظر أيضاً القسم الخاص بجدولة معدل التعلم أدناه.

٣. الزخم (Momentum)

 

 

  • تتخذ خوارزمية النزول الاشتقاقي (Gradient Descent) خطوات ثابتة للوصول للحد الأدنى، عندما تكون المشتقة صغيرة قد تستغرق الخطوات الصغيرة الكثير من الوقت للوصول للتقارب (Convergence)، في المقابل يتيح الزخم لخوارزمية النزول الاشتقاقي الأخذ بعين الاعتبار الخطوات السابقة للخطوة الحالية، هذا يتيح للخوارزمية تجاوز النقاط الصغرى المحلية من خلال أخذ خطوات كبيرة والدفع بشكل أسرع عند الوصول إلى هذه النقاط.
  • بشكل عام، من الأفضل أن تكون قيمة الزخم قريبة جداً من الرقم 1، وتعتبر 0.9 قيمة جيدة للبدء لمجموعات البيانات الصغيرة. حاول الاقتراب تدريجياً من القيمة واحد (0.999) كلما زاد حجم مجموعة البيانات التي لديك.

٤. تلاشي وانفجار مشتقة الخطأ

  • طبقات الشبكة العصبية لا تتعلم جميعها بنفس الدرجة، عندما تنشر خوارزمية الانتشار العكسي (Backpropagation) مشتقة الخطأ من طبقة المخرجات إلى الطبقات الأولى في الشبكة، تصبح المشتقات أصغر وأصغر حتى تصبح لا تكاد تذكر عندما تصل للطبقات الأولى. هذا يعني أن أوزان الطبقات الأولى لا يتم تحديثها بشكل ملحوظ مع كل خطوة تدريبية مقارنة بالطبقات الأقرب لنهاية الشبكة.
  • هذه المشكلة تسمى مشكلة تلاشي المشتقة (Vanishing Gradient)، (هناك مشكلة مشابهة لها تُعرف بانفجار المشتقة، تحدث هذه المشكلة عندما تصبح مشتقة الخطأ لبعض الطبقات كبيرة جداً وبشكل تدريجي، مما يؤدي إلى تحديث الأوزان فيها إلى قيم ضخمة مقارنة بالطبقات الأخرى.
  • هناك عدة طرق لمواجهة مشكلة تلاشي مشتقة الخطأ، وهي:

١.٤ دوال التنشيط Activation Functions

  •  بشكل عام يتحسن الأداء عند استخدام دوال التنشيط في الطبقات المخفية/الوسطى وفق الترتيب التالي (أداء أفضل → أداء أدنى):
    logistic→ tanh → ReLU → Leaky ReLU → ELU → SELU
  • دالة ReLU هي دالة التنشيط الأكثر شيوعاً، إذا كنت لا ترغب بتجربة العديد من دوال التنشيط فإن دالة ReLU ستكون خياراً جيداً لك، ولكن ضع في اعتبارك أن ReLU أصبحت أقل فعالية من دوال مثل ELU أو GELU
  • إذا كنت ترغب في تجربة دوال أخرى، فيمكنك تجربة الدوال التالية:
    • لمقاومة مشكلة فرط التخصيص في الشبكة العصبية استخدم RReLU
    • لتقليل التأخير في وقت التشغيل استخدم Leaky ReLU
    • لمجموعات التدريب الضخمة استخدم PReLU
    • للحصول على استدلال سريع استخدم Leaky ReLU
    • إذا كانت شبكتك لا تقوم بتسوية البيانات استخدم ELU
    • للحصول على دالة تنشيط قوية وشاملة استخدم SELU
  • كما هو الحال دائماً لا تخف من تجربة دوال تنشيط مختلفة، وراقب قيم الأوزان والانحياز (Bias) لمساعدتك في اختيار الدالة التي تناسبك بشكل أفضل.
  • هذه الورقة العلمية تقارن بعمق بين دوال التنشيط المختلفة للشبكات العصبية.
  • دوال التنشيط في طبقة المخرج/النهائية
    • الانحدار (Regression): لا تتطلب مشاكل الانحدار دالة تنشيط للخلايا العصبية في طبقة المخرج إذا كان يمكن للناتج أن يأخذ قيمة غير محددة بنطاق معين. في الحالات التي نريد فيها أن تكون القيم ضمن نطاق معين، يمكننا استخدام دالة tanh لتُخرج لنا قيم بين -1 و 1 أو الدالة اللوجستية لتُخرج لنا قيم بين 0 و 1، في الحالات التي نبحث فيها عن نتائج إيجابية فقط، يمكننا استخدام دالة التنشيط softplus.
    • التصنيف (Classification): تستخدم دالة التنشيط Sigmoid للتصنيف الثنائي للتأكد من أن الناتج يقع بين القيمتين 0 و1. وتستخدم دالة softmax للتصنيف متعدد الفئات لضمان أن يكون مجموع كل احتمالات الإخراج يساوي 1.

٢.٤ طريقة تهيئة الأوزان (initialization)

  • من الممكن أن تؤدي التهيئة الصحيحة للقيم الأولية للأوزان إلى تسريع وقت التقارب إلى حد كبير. اختيار طريقة التهيئة تعتمد على دالة التنشيط التي تم اختيارها. هذه بعض الأمور التي يمكنك تجربتها:
  • عند استخدام دالة ReLU أوLeaky RELU ، استخدم تهيئة He
  • عند استخدام دالة SELU أو ELU ، استخدم تهيئة LeCun
  • عند استخدام دالة softmax أو Sigmoid أو tanh ، استخدم تهيئة Glorot
  • أغلب طرق التهيئة هي أشكال مختلفة من دالة التوزيع الطبيعي (normal distribution).

٣.٤ التسوية الحزمية BatchNorm

  • التسوية الحزمية تتعلم القيمة المتوسطة المثلى لكل حزمة تدخل للطبقة وتقوم بتسوية المدخلات بناء عليها. تتم التسوية من خلال طريقة التوسيط الصفري (جعل الصفر هو المتوسط الحسابي للقيم). وتسوية المدخلات بحيث تكون ضمن نفس النطاق. تعمل التسوية الحزمية أيضاً كضابط يمنع فرط التخصيص، مما يعني أنه قد لا نحتاج لاستخدام تقنية إسقاط الخلايا أو ضبط L2 لمنع فرط التخصيص.
  • يتيح استخدام التسوية الحزمية استخدام معدلات تعلم أكبر (والتي بدورها تؤدي إلى تقارب أسرع) كما أن لها دور في تحسين أداء الشبكات العصبية عن طريق الحد من مشكلة تلاشي مشتقة الخطأ. الجانب السلبي الوحيد للتسوية الحزمية هو أنها تزيد من وقت تدريب الشبكة بسبب الحسابات الإضافية المطلوبة في كل طبقة.

٤.٤ اقتصاص مشتقة الخطأ (Gradient Clipping)

  • من الطرق الفعالة لتقليل انفجار مشتقة الخطأ خاصة عند تدريب الشبكات العصبية التكرارية (RNNs) هي ببساطة اقتصاص قيمتها عندما تتجاوز حد معين.
  • جرّب تغيير حد قيم الاقتصاص للعثور على أفضل قيمة مناسبة.

٥.٤ التوقف المبكر

• يسمح التوقف المبكر بتدريب نموذج يحتوي على العديد من الطبقات المخفية والكثير من الخلايا العصبية المخفية
لدورات تدريبية أكثر مما تحتاجه، مع إيقاف التدريب عندما يتوقف الأداء عن التحسن بعد دورة تدريبية معينة، كما أن باستطاعته حفظ النموذج الأفضل أداء بالنسبة لك.

٥. الإسقاط (Dropout)

  • يعتبر الإسقاط طريقة تنظيم رائعة تمنحك تحسيناً كبيراً في الأداء مقارنة بمدى سهولة تطبيق هذه التقنية (يحسّن الأداء بنسبة ~ 2٪ في النماذج الحديثة). تقوم جميع طرق الإسقاط على نفس المبدأ إذ أنها تقوم بإيقاف نسبة من الخلايا العصبية بشكل عشوائي في كل طبقة مع كل خطوة تدريب. هذا يجعل الشبكة أكثر قوة لأنها لا تستطيع الاعتماد على مجموعة معينة من الخلايا العصبية لإخراج النتائج. بالتالي يتم توزيع تعلم المعرفة للشبكة بأكملها. عند استخدام تقنية الإسقاط يتم توليد ما يقارب n^2 شبكة عصبية مختلفة حيث n يمثل عدد الخلايا العصبية الموجودة أثناء عملية التدريب والتي يتم تجميعها لاحقاً لإخراج النتائج.
  • معدل الإسقاط الجيد يتراوح ما بين 0.1 إلى 0.5، استخدم قيمة 0.3 لشبكات العصبية التكرارية (RNN) و 0.5 لشبكات CNN، قم بزيادة القيم كلما زاد عدد الطبقات في الشبكة. زيادة قيمة معدل الإسقاط يقلل من فرط التخصيص، وإنقاص قيمته يساعد في التغلب على نقص التخصيص.
  • من الممكن تجربة معدلات مختلفة لقيم الإسقاط في الطبقات الأولى من شبكتك والتحقق لاختيار أفضل أداء، بالتأكيد لن تحتاج لاستخدام تقنية الإسقاط في طبقات الإخراج.
  • قم بقراءة هذه الورقة إذا أردت استخدام تقنية الإسقاط مع التسوية الحزمية (BatchNorm)

٦. خوارزميات التحسين (Optimizers)

  • خوارزمية النزول الاشتقاقي ليست الخوارزمية الوحيدة الموجودة في الساحة إذ أن هناك خوارزميات أخرى يمكن اختيارها. يقدم هذا المقال وصفاً جيداً لبعض خوارزميات التحسين التي يمكنك الاختيار منها.
  • النصيحة العامة استخدم خوارزمية النزول الاشتقاقي العشوائي (Stochastic Gradient Descent) إذا كانت الأولوية والاهتمام الأكبر هو لجودة الوصول لنقطة التقارب وكان الوقت الذي يستغرقه التقارب ليس بالأهمية القصوى.
  • إذا كانت الأولوية لوقت التقارب وليس لجودة نقطة التقارب أي أن الوصول إلى أي نقطة قريبة من نقطة التقارب المثلى يعتبر كافياً بالنسبة لك، جرب خوارزميات مثل Adam و Nadam و RMSProp و Adamax.
  • Adam و Nadam عادة ما تكون نقاط بداية جيدة وتميل إلى التجاوز عن الاختيارات الخاطئة لقيمة معدل التعلم وغيرها من مُدخلات الضبط (hyperparameters) غير المثالية.
  • وفقاً لأندريه كارباثي أداء SGD الذي يتم ضبطه بشكل جيد أفضل من أداء Adam في حالة الشبكات العصبية الالتفافية ConvNets.

٧. جدولة معدل التعلم (Learning Rate Scheduling)

  • تحدثنا عن أهمية اختيار معدل التعلم الجيد، لا نريد أن تكون قيمته مرتفعة جداً، حتى لا تتأرجح دالة التكلفة حول القيمة المثلى وتتباعد. ولا نريد أن تكون القيمة منخفضة جداً إذ أن ذلك يعني أن التقارب سيستغرق وقتاً طويلاً جداً.
  • اختيار قيمة معدل التعلم مهمة صعبة لأن كل من معدلات التعلم المرتفعة والمنخفضة لها مزاياها. الجيد في الأمر هو أنه ليس علينا الالتزام بمعدل تعلم واحد، فمن خلال جدولة معدل التعلم يمكننا البدء بمعدلات تعلم ذات قيمة عالية تسمح لنا بالتحرك بشكل أسرع خلال منحدرات المشتقة، وإبطائها عندما نصل إلى الوادي الذي يحتوي نقطة التقارب والذي يتطلب اتخاذ خطوات أصغر.
  • هناك العديد من الطرق لجدولة معدلات التعلم بما في ذلك خفض معدل التعلم بشكل أسي (exponentially)، أو باستخدام دالة الخطوة (Step function)، أو تعديلها عندما يبدأ الأداء في الانخفاض أو استخدام جدولة الدورة الواحدة one-cycle.
  • استخدم معدل تعلم ثابت حتى تقوم بتحديد جميع مدخلات الضبط الأخرى (Hyper-parameters)، ثم قم بتنفيذ جدولة معدل التعلم في النهاية.
  • يُوصى بإجراء تجارب مختلفة مع استراتيجيات مختلفة مع جدولة معدل التعلم لاختيار الاستراتيجية التي تؤدي إلى أفضل نموذج.

نصائح إضافية أخرى

  • جرب EfficientNets لتحديد حجم شبكتك بأفضل طريقة.
  • اقرأ هذه الورقة للحصول على معلومات عامة عن معدلات التعلم، وحجم الحزمة التدريبية، والزخم، وتقنيات إنقاص الوزن.
  • اقرأ هذه الورقة عن التوسيط العشوائي للوزن (SWA) والتي توضح أنه يمكن تحقيق تعميم أفضل عن طريق حساب متوسط نقاط متعددة على طول مسار خوارزمية النزول الاشتقاقي العشوائي (SGD)، مع معدل تعلم متغير أو ثابت.
  • اقرأ دليل أندريه كارباثي للحصول على أفضل أداء من شبكتك العصبية.

الخلاصة

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

نأمل أن يكون هذا الدليل نقطة انطلاق جيدة لكم.

اظهر المزيد

Laila Bashmal

طالبة دكتوراه في هندسة الحاسب الآلي، مهتمة بالمواضيع المتعلقة بتعلم الآلة والرؤية باستخدام الحاسب

‫6 تعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى