الدرس الأول (٢)
انظر إلى المقطع البرمجي الأول: أنت تأخذ كل صورة وتمدّها لتصبح متّجهاً أهلي البعد. بما أن الصورة بقياس ولكل صورة ثلاث قنوات لونية، يصبح طول المتجه الناتج قيمة. بعد ذلك، تطبق خوارزمية تصنيف بسيطة وهي مصنّف بايز الساذج على بيانات التدريب المسطحة هذه. بعد تدريب النموذج، تستخدمه للتنبؤ ببيانات الاختبار وتحسب نسبة الدقة باستخدام دالة Accuracy Score، وتجد أن النتيجة تظهر كقيمة كسرية تعبر عن نسبة الصواب. أخيراً، تستخدم دالة رسم مصفوفة الدقة من مكتبة scikit-plot لتصوير النتائج برؤية إضافية عبر رسم مصفوفة توضح توزيع التوقعات الحقيقية مقابل المتوقعة.
يقوم الدرس على توضيح طرق تصنيف الصور وتدريب النماذج الذكية باستخدام خوارزميات التعلم الآلي والشبكات العصبية. يركز على تحسين أداء النماذج عبر هندسة الخصائص، مثل استخدام المخططات التكرارية للتدرجات الموجهة HOG لتحويل الصور إلى متجهات مميزة، بجانب تطبيق التحييد القياسي لضبط البيانات. كما يشرح بناء الشبكات العصبية العميقة باستخدام مكتبتي TensorFlow وKeras عبر إنشاء طبقات متتابعة Dense وتطبيق دالة التنشيط ReLU. مثال سريع: إذا كانت لديك صورة ملونة بأبعاد ، فإن تحويلها إلى تدرج رمادي يجعلها ، ثم استخراج ميزات HOG يحولها إلى متجه أحادي البعد بطول قيمة لتسهيل معالجتها بواسطة المصنف.
الفكرة الأساسية
تعتمد فكرة الدرس على تحسين دقة نماذج الذكاء الاصطناعي في تصنيف الصور من خلال الانتقال من التعامل مع بيانات الصور الخام المسطحة إلى هندسة الخصائص المتقدمة، مثل تقنية المخططات التكرارية للتدرجات الموجهة HOG والتجحييد القياسي، وصولاً إلى بناء الشبكات العصبية العميقة باستخدام مكتبتي TensorFlow وKeras.
الشرح
يبدأ الدرس بتوضيح أن تصنيف الصور الخام مباشرة باستخدام خوارزميات مثل MultinomialNB أو SGDClassifier يمنح دقة منخفضة نسبياً. لتجاوز ذلك، نحول الصور من تنسيق ملون RGB إلى تدرج رمادي باستخدام دالة rgb2gray، مما يغير أبعاد الصورة من إلى . بعد ذلك، نطبق تقنية HOG لاستخراج الخصائص الأساسية وإهمال التفاصيل غير الضرورية، مما ينتج عنه متجه أحادي البعد طوله قيمة.
لتحسين التدريب، نستخدم التحجيم القياسي StandardScalar لجعل متوسط البيانات صفرياً وتباينها أحادياً، مما يرفع دقة المصنف مثل SGDClassifier إلى ما يزيد عن . وفي الجزء الأخير، ننتقل للشبكات العصبية باستخدام مكتبة Keras عبر أداة Sequential، حيث نضيف طبقة مخفية تحتوي على خلية عصبية وتستخدم دالة التنشيط ReLU لتعلم الأنماط المعقدة، ثم طبقة مخرجات تستخدم دالة التنشيط softmax.
مثال محلول خطوة بخطوة
لدينا مجموعة بيانات تدريب تحتوي على صور بأبعاد . نريد بناء شبكة عصبية مخفية بطبقة تحتوي على خلية ومخرجات لـ فئة مختلفة:
- نحسب عدد الأوزان في الطبقة المخفية الأولى بضرب عدد المدخلات في عدد الخلايا العصبية: وصلة موزونة.
- نضيف متغيرات التحيز Bias بعدد يوافق عدد الخلايا، أي متغير تحيز.
- يصبح إجمالي المتغيرات في الطبقة المخفية: .
- بالنسبة لطبقة المخرجات التي تحتوي على خلية (بعدد الفئات)، يكون عدد الأوزان والتحيزات المرتبطة بها: .
- المجموع الكلي لمعلمات النموذج القابلة للتدريب هو: .
أخطاء شائعة
- الاعتقاد بأن استخدام الصور الخام بالألوان الأساسية RGB يعطي أفضل نتائج تصنيف دائماً، والصواب أن استخلاص الخصائص عبر HOG يقلل التشويش ويرفع الدقة بشكل هائل.
- إغفال تطبيق التحجيم القياسي StandardScaler قبل تدريب خوارزميات مثل SGDClassifier، مع أن توحيد الخصائص أساسي لنجاح عملية التدريب.
- الخلط بين دور دالة التنشيط ReLU في الطبقات المخفية لتعلم العلاقات المعقدة، ودور دالة التنشيط softmax في طبقة المخرجات لتصنيف الفئات.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما هو الأبعاد الجديدة لصورة ملونة بعد تطبيق دالة تحويلها إلى تدرج رمادي واستخراج ميزات HOG منها؟ الإجابة: تصبح الصورة أولاً بتدرج رمادي بأبعاد ، وبعد تطبيق دالة HOG تتحول إلى متجه أحادي البعد بطول قيمة.
السؤال الثاني: ما فائدة استخدام التحجيم القياسي StandardScaler على مجموعة البيانات قبل تدريب النموذج؟ الإجابة: يعمل على جعل مجموعة البيانات ذات متوسط حسابي صفري وتباين أحادي البعد، مما يتناسب مع خوارزميات التصنيف ويحسن دقة النموذج بشكل ملحوظ.