الدرس الأول (٣)
انظر إلى دالة تجميع النموذج model.compile وعندها ثلاثة معاملات رئيسية تجدها في الجدول 4.2. المعامل الأول هو الخسارة loss وتقيس مدى تطابق التنبؤات مع العناوين الحقيقية، وفي حالتنا تستخدم sparse_categorical_crossentropy لأن العناوين أعداد صحيحة كما في y_train_num. المعامل الثاني هو المقاييس metrics وتقيم الأداء أثناء التدريب والاختبار مثل Accuracy مقياس الدقة. المعامل الثالث هو المحسِّن optimizer وهو خوارزمية تضبط أوزان النموذج ومقدار التحيز لتقليل الخسارة لأقصى حد، وخوارزمية adam هي الأكثر شيوعاً. بعد تجميع النموذج، تنتقل إلى تدريب البيانات باستخدام الدالة model.fit وسترى معاملاتها في الصفحة التالية.
يقوم هذا الدرس على تجميع نماذج الذكاء الاصطناعي وإعدادها باستخدام مكتبة Keras عبر دالة model.compile لتحديد الخصائص الأساسية مثل دالة الخسارة loss والمقاييس metrics والمحسن optimizer، ثم تدريب النموذج بدالة fit وتحديد معاملات مثل حجم الدفعات batch_size وعدد الفترات epochs. كما يتناول الدرس الشبكات العصبية الترشيحية CNN التي تستخرج الخصائص تلقائيا من الصور دون الحاجة لهندسة الخصائص اليدوية مثل المخطط التكراري للتدرجات المحولة، وأخيرا مفهوم التعلم المنقول Transfer Learning الذي يعتمد على استخدام شبكة مدربة مسبقا على حل مهمة جديدة عبر إحلال الطبقات النهائية وتدريبها على مجموعة بيانات جديدة بدلا من البدء من الصفر.
الفكرة الأساسية
تدور الفكرة حول تجهيز نماذج الشبكات العصبية وتدريبها برمجيا باستخدام مكتبات بايثون مثل Keras، ثم الانتقال إلى المعماريات الأكثر تقدما مثل الشبكات العصبية الترشيحية التي تتعلم الخصائص من الصور بشكل تلقائي، واستغلال النماذج المدربة مسبقا عبر التعلم المنقول.
الشرح
عند بناء الشبكة العصبية، تجمعها أولا بدالة model.compile لتمرير ثلاثة معاملات رئيسية: دالة الخسارة loss لتقييم الخطأ ومقدار التحيز، والمقاييس metrics لمراقبة دقة التصنيف مثل accuracy، والمحسن optimizer لضبط أوزان النموذج وتقليل الخسارة مثل adam. بعد ذلك تستخدم دالة fit لتدريب النموذج على البيانات عبر معاملات مثل X_train_hog لبيانات الإدخال، و y_train_num للعناوين، و batch_size لعدد العينات في كل دفعة، و epochs لعدد مرات تكرار التدريب على كامل البيانات. في تصنيف الصور، نلجأ إلى الشبكات العصبية الترشيحية Convolutional Neural Network - CNN، وهي شبكات عميقة تتعلم تلقائيا تسلسل الخصائص من البيانات الخام مثل الصور عبر تطبيق سلسلة من الفلاتر الترشيحية، بدلا من هندسة الخصائص اليدوية Manual Feature Engineering التي تتطلب جهدا كبيرا ومتغيرات معقدة. أما إن أردت اختصار الوقت والجهد، فاستخدم التعلم المنقول Transfer Learning، وهو عملية إعادة استخدام شبكة عصبية مدربة مسبقا على حل مهمة جديدة، حيث تأخذ نموذجا مدربا على مجموعة بيانات كبيرة، وتحتفظ بالخصائص التي تعلمها مثل الحواف والأشكال، ثم تضيف طبقات جديدة وتدربها على مجموعتك الخاصة بدلا من البدء من نقطة الصفر.
مثال محلول خطوة بخطوة
لو كانت لديك طبقة مخرجات تحتوي على ست عشرة خلايا عصبية متصلة بالكامل بمائتي خلية عصبية في الطبقة المخفية، فإن مجموع الوصلات الموزونة يحسب بضرب عدد الخلايا في بعضها وصلة. ويضاف إليها ستة عشر متغير تحيز إضافي بواقع متغير واحد لكل خلية عصبية في طبقة المخرجات، ليصبح الناتج الكلي .
أخطاء شائعة
- الخلط بين دور دالة الخسارة loss التي تقيم الخطأ ودور المحسن optimizer الذي يقوم بضبط الأوزان لتقليل هذا الخطأ.
- الاعتقاد بأن الشبكات العصبية الترشيحية تتطلب دائما هندسة خصائص يدوية، والصحيح أنها تستخرج الخصائص تلقائيا من الصور الخام.
- نسيان اختيار عدد الفترات epochs بعناية، مما قد يؤثر على قدرة النموذج على التعلم أو يؤدي إلى استقرار غير مناسب.
سؤالان للتدريب مع الإجابة
- سؤال 1: ما الميزة الأساسية للشبكات العصبية الترشيحية مقارنة بهندسة الخصائص اليدوية؟ الإجابة: قدرتها على تعلم تسلسل الخصائص من البيانات الخام مثل الصور بشكل تلقائي دون الحاجة لهندسة الخصائص اليدوية.
- سؤال 2: ماذا يقصد بمفهوم التعلم المنقول Transfer Learning في سياق الشبكات العصبية الترشيحية؟ الإجابة: هو استخدام نموذج عصبى مدرب مسبقا على مجموعة بيانات كبيرة، وتكييفه على مجموعة بيانات جديدة بحل مهمة جديدة، عبر إحلال الطبقات النهائية وتدريبها بدلا من البدء من نقطة الصفر.