باختصار
الـ Optimizer هو خوارزمية مسؤولة عن تعديل أوزان النموذج أثناء التدريب عشان يقلل الخطأ. كل Optimizer ليه طريقته الخاصة في إنه يوصل لأحسن نتيجة، وأشهرهم Adam وSGD.
بالتفصيل
تخيل إنك تايه في صحرا وعايز توصل لأوطى واحة فيها مية. عندك كذا استراتيجية: ممكن تمشي دايماً في اتجاه الانحدار بس بنفس السرعة (SGD)، أو ممكن تكون أذكى وتسرّع في الأماكن المستوية وتبطّئ لما الطريق يبقى وعر (Adam). الـ Optimizer هو الاستراتيجية اللي بتختارها عشان توصل لأحسن مكان.
في تدريب نماذج الـ Deep Learning، النموذج بيبدأ بأوزان عشوائية وبيحتاج يعدّلها عشان يقلل الـ Loss Function (دالة الخطأ). الـ Optimizer هو اللي بيقرر إزاي يعدّل الأوزان دي في كل خطوة. أبسط نوع هو Stochastic Gradient Descent (SGD) اللي بيعدّل الأوزان في اتجاه تقليل الخطأ بخطوة ثابتة.
بس في الواقع، SGD العادي بطيء وممكن يتعلّق في أماكن مش مثالية. عشان كده ظهرت أنواع أذكى:
- SGD with Momentum: بيضيف “زخم” — زي كورة بتتدحرج، بتسرّع في اتجاه واحد
- Adam: من أشهر الأنواع، بيجمع بين الزخم وتعديل معدل التعلم لكل وزن على حدة
- AdaGrad وRMSProp: بيعدّلوا معدل التعلم بناءً على تاريخ التدرجات
اختيار الـ Optimizer المناسب بيعتمد على نوع المشكلة وحجم البيانات. Adam بيكون اختيار كويس في أغلب الحالات لأنه بيتكيّف تلقائياً، بس في بعض المهام زي تدريب نماذج اللغة الكبيرة، SGD with Momentum ممكن يدي نتايج أحسن.
مثال عملي
لو بتدرّب شبكة عصبية تتعرف على الأرقام المكتوبة بخط اليد، وجرّبت SGD العادي، ممكن تحتاج 50 Epoch عشان توصل لدقة 95%. بس لو استخدمت Adam، ممكن توصل لنفس الدقة في 10-15 Epoch بس، لأنه أذكى في تعديل الأوزان. وده بيوفّر وقت وموارد حسابية كبيرة.
مصطلحات مرتبطة
- الانحدار التدريجي (Gradient Descent)
- معدل التعلم (Learning Rate)
- دالة الخسارة (Loss Function)
- الوزن (Weight)
قرمصيص للأخبار أخبار الذكاء الاصطناعي بالعربي