اذهب إلى المحتوى

Abdulrahman Muhammad

الأعضاء
  • المساهمات

    5
  • تاريخ الانضمام

  • تاريخ آخر زيارة

آخر الزوار

40 زيارة للملف الشخصي

إنجازات Abdulrahman Muhammad

عضو مبتدئ

عضو مبتدئ (1/3)

5

السمعة بالموقع

  1. متى يتم تقسيم البيانات إلى (تدريب - تطوير - اختبار) ومتى يكون (تدريب - اختبار) كافيًا؟ أولًا: فهم الفرق بين الأقسام الثلاثة عند العمل على تدريب نموذج في التعلم الآلي، يمكن تقسيم البيانات إلى: مجموعة التدريب (Training Set) → تُستخدم لتدريب النموذج. مجموعة التطوير/التحقق (Validation Set) → تُستخدم لضبط المعلمات وتحسين الأداء وتجنب overfitting. مجموعة الاختبار (Test Set) → تُستخدم لتقييم أداء النموذج النهائي على بيانات جديدة لم تُستخدم أثناء التدريب. إذا كان لديك مجموعة بيانات صغيرة، فمن الأفضل الاكتفاء بتقسيم البيانات إلى: 80% تدريب (Train) 20% اختبار (Test) لكن! في هذه الحالة، قد لا يكون لديك وسيلة لضبط المعلمات بشكل دقيق، مما قد يؤدي إلى Overfitting. لذلك، هذه الطريقة تناسب النماذج البسيطة أو عندما يكون لديك بيانات محدودة جدًا. إذا كان لديك مجموعة بيانات كبيرة وترغب في ضبط أداء النموذج، فمن الأفضل التقسيم إلى ثلاث مجموعات: 70% تدريب (Train) → لتعليم النموذج. 15% تطوير/تحقق (Validation) → لضبط المعلمات وتقليل Overfitting. 15% اختبار (Test) → لتقييم النموذج النهائي. هذه الطريقة مناسبة عند العمل مع نماذج معقدة مثل الشبكات العصبية العميقة (Deep Learning) أو عند الحاجة إلى ضبط الهايبر باراميترز (Hyperparameters). إذا كان لديك بيانات صغيرة: استخدم تدريب - اختبار فقط. إذا كان لديك بيانات كبيرة وتحتاج لضبط المعلمات: استخدم تدريب - تطوير - اختبار. إذا كان لديك بيانات قليلة لكن تريد تقييمًا أكثر دقة: استخدم K-Fold Cross Validation. الاختيار يعتمد على حجم البيانات وتعقيد النموذج! ======================================================== ما هي مجموعة التحقق؟ هي مجموعة بيانات منفصلة عن بيانات التدريب والاختبار، تُستخدم أثناء التدريب لتقييم أداء النموذج وضبط المعلمات دون التأثير على التقييم النهائي. لماذا نستخدم مجموعة التحقق؟ 1.ضبط الهايبر باراميترز (Hyperparameters Tuning): تساعد في اختيار المعلمات المثلى مثل معدل التعلم، عدد الطبقات في الشبكة العصبية، وغيرها. 2. تجنب Overfitting: إذا كان الأداء على التدريب جيدًا لكن سيئًا على التحقق، فهذا يعني أن النموذج قد حفظ البيانات بدلاً من تعميمها. 3. وقف التدريب المبكر (Early Stopping): عندما نلاحظ أن الأداء على التحقق بدأ في التراجع رغم تحسن التدريب، فهذا مؤشر على ضرورة التوقف لتجنب Overfitting. لديك بيانات وتصمم شبكة عصبية لتصنيف الصور، يمكنك تقسيمها كالتالي: 70% تدريب → لتعليم النموذج 15% تحقق → لضبط المعلمات والتحقق من التحسين 15% اختبار → للتقييم النهائي إذا وجدت أن دقة التحقق لا تتحسن أو تتراجع بينما دقة التدريب تزيد، فهذا يعني Overfitting ويجب تعديل المعلمات. عند استخدام K-Fold Cross Validation، حيث نقسم البيانات إلى K أجزاء ويتم التحقق مع كل تكرار. عندما يكون لديك بيانات قليلة جدًا، فتقسمها إلى تدريب واختبار فقط لتوفير أكبر كمية ممكنة من البيانات للتدريب. الخلاصة: مجموعة التحقق ضرورية لضبط المعلمات وتجنب Overfitting. تُستخدم لاختيار النموذج الأفضل قبل تقييمه على بيانات الاختبار. بدونها، قد يكون النموذج غير عامّ ويعمل جيدًا فقط على البيانات التي تدرب عليها.
  2. ImageNet ليس مسابقة ولا خوارزمية، بل هو مجموعة بيانات ضخمة (Dataset) تُستخدم في تدريب نماذج التعلم العميق، خاصة في رؤية الحاسوب (Computer Vision). ImageNet هو مشروع بدأه البروفيسورة Fei-Fei Li في جامعة ستانفورد عام 2009. يحتوي على أكثر من 14 مليون صورة مصنفة إلى أكثر من 20,000 فئة (Category). كل صورة تكون مرتبطة بتسمية (Label) مأخوذة من قاعدة بيانات WordNet. يتم استخدامه بشكل شائع في تدريب وتقييم نماذج تصنيف الصور.
  3. لقد واجهت هذه المشكلة من قبل، وكانت معقدة بعض الشيء. الحل الذي نجح معي هو التواصل مباشرة مع دعم كورسيرا عبر الرابط التالي: https://www.coursera.support/s/learner-help-center-contact-us وضحت لهم المشكلة بالتفصيل، وذكرت سبب تغيير الاسم، وأرفقت مستندًا رسميًا يثبت الاسم الصحيح. استغرق الأمر حوالي 7-10 أيام حتى تم حل المشكلة وتغيير الاسم بنجاح.
  4. نعم، حذف الصفوف التي تحتوي على بيانات مفقودة (Missing Data) قد يؤدي إلى تحيز (Bias) أثناء تدريب النموذج، كما يمكن أن يؤثر على تحليل البيانات بطرق مختلفة. إليك التفاصيل: 1. تأثير حذف الصفوف على تحيز النموذج عند حذف عدد كبير من الصفوف، قد تصبح العينة المستخدمة في التدريب غير ممثلة بشكل جيد للبيانات الأصلية. إذا كانت البيانات المفقودة غير موزعة عشوائيًا (أي أن هناك نمط معين لفقدانها)، فقد يؤدي الحذف إلى تحيز في التنبؤات، مما يجعل النموذج غير قادر على التعميم على البيانات الحقيقية. 2. تأثير حذف الصفوف على تحليل البيانات يمكن أن يؤدي حذف البيانات إلى تقليل حجم العينة، مما يجعل الإحصائيات المستخرجة أقل دقة وأقل تمثيلًا للبيانات الأصلية. قد تفقد بعض العلاقات المهمة بين المتغيرات، مما قد يؤدي إلى استنتاجات خاطئة أثناء تحليل البيانات. 3. متى يكون الحذف خيارًا مناسبًا؟ إذا كانت نسبة البيانات المفقودة صغيرة جدًا (أقل من 5%)، فقد لا يكون للحذف تأثير كبير. إذا كانت القيم المفقودة موزعة بشكل عشوائي ، فقد يكون الحذف آمنًا نسبيًا. 4. ما البدائل الأفضل للحذف؟ إذا كان لديك عدد كبير من القيم المفقودة، يمكنك تجربة أحد الحلول التالية بدلًا من الحذف: تعويض القيم المفقودة استخدام المتوسط أو الوسيط: استخدام النماذج لتوقع القيم المفقودة: يمكن استخدام خوارزميات مثل KNNImputer أو Random Forest Regressor لملء القيم المفقودة. الحذف العشوائي للصفوف قد يسبب تحيزًا في النموذج ويؤثر على دقة التحليل. من الأفضل استخدام طرق تعويض القيم المفقودة مثل التعبئة بالمتوسط أو النماذج التنبؤية لتجنب فقدان المعلومات.
  5. عندما تكون قيمة val_accuracy ثابتة ولا تتغير في كل مرة أثناء تدريب النموذج، فهذا قد يشير إلى واحد أو أكثر من الأسباب التالية: 1. عدم تحسن النموذج إذا كانت val_accuracy لا تتحسن مع كل Epoch دوره، فقد يعني ذلك أن النموذج لم يتعلم أي شيء جديد من البيانات التدريبية، وبالتالي لا يستطيع تحسين أدائه على بيانات التحقق (Validation Set). 2. النموذج يعاني من Underfitting إذا كانت val_accuracy منخفضة وثابتة، فقد يكون النموذج غير معقد بما يكفي لالتقاط الأنماط في البيانات، مما يؤدي إلى أداء ضعيف على كل من بيانات التدريب والاختبار. 3. النموذج قد يكون قد وصل إلى حالة التشبّع (Plateau) أحيانًا، بعد عدة Epochs دورات، يصل النموذج إلى حد أقصى في الأداء ولا يستطيع تحسين دقته أكثر من ذلك، مما يؤدي إلى استقرار val_accuracy. الحلول الممكنة؟ تجربة نموذج أكثر تعقيدًا (زيادة الطبقات أو عدد الخصائص) ضبط Hyperparameters مثل learning rate أو batch size. التأكد من صحة تقسيم البيانات بحيث تكون بيانات التدريب (traingin) والاختبار (test) متنوعة. مراقبة Overfitting أو Underfitting باستخدام training_accuracy و val_accuracy.
×
×
  • أضف...