البحث عن أحسن المعاملات الداخلية لخوازمية التدريب

Hyper-parameter Optimization

المعاملات الداخلية (hyper-parameter )  هي المعاملات التى يحددها المطور و لا يمكن تغيرها أثناء عملية التدريب و لا تتأثر بنوع و لا شكل الداتا. مثل عدد (layers) في الشبكة العصبية أو المعاملات (C, gamma, kernel ) في خوارزمية (SVM). هذه المعاملات تؤثر على النتائج طبعا لأنها تؤثر على شكل و مبدأ عمل الخوارزمية و للبحث عن أحسن القيم الخاصة بها التي تناسب نوع الداتا التي نعمل عليها فأبسط فكرة تبادر لأذهاننا هي أننا في كل مرة نعيد تدريب الخوارزمية بمعاملات جديدة ثم نحتفظ بأحسن شكل ممكن لهذه المعاملات.

لكن في مكتبة (Scikit-Learn ) تم تسهيل الأمر كثيرا بتوفير أدوات جاهزة للعمل في هذه النقطة بالتحديد.

 أولا: (GridSearchCV)، و هو أداة جاهزة للبحث عن أحسن المعاملات لخوازمية محددة بتجريب جميع التركبيات الممكنة لهذه المعاملات. في السطر 19 من الصورة 1، حددنا مجموعة من قيم المعاملات الخاصة بخوارزمية (SVM ) في شكلين مختلفين، كل شكل موجود بين حاضنتين. في الشكل 1 حددنا قيم المتغير (C) التي تأخد القيم 1 أو 10 أو 100 أو 1000 و (kernel = linear) أثناء عملية التدريب سيجرب كل التركيبات الممكنة بين قيم (C with kernel ) و نفس الشيء بالنسبة للشكل 2 و في النهاية يحتفظ بأحسن نتيجة حصل عليها بين مختلف أشكال التدريب المحددة و نحن كان لنا في هذا المثال شكلان فقط. في الصورة 2 نشاهد النتائج التي تحصلنا عليها، حيث لما قمنا بطبع أحسن المعاملات التي تحصلنا عليها بعد نهاية عملية التدريب و جدنا (C = 10, kernel = linear). كما يمكن مشاهدة تنفيذ مختلف التركيبات أثناء عملية التدريب.

الصورة 1

الصورة 2


ثانيا : (RandomizedSearchCV) تختلف عن الأولى كونها لا تقوم بتنفيذ جميع التركيبات الممكنة و تمنح إمكانية توقيفها عند عدد محدد من التركيبات أو عند عدد محدد من (iterations). كما تشاهدون في الصورة 3، لدينا شكل واحد فقط نضع فيه جميع قيم المعاملات التي نرغب في تجريبها (الصورة 3، السطر 34) و في السطر 36 و من بين المدخلات حددنا (n_iter = 100) حتى تتوقف عند هذا العدد لأن قيم المعامل (C and gamma) كثيرة و هكذا حتى نسرع عملية التدريب عند التعامل مع بيانات ضخمة. في الصورة 4، نشاهد النتائج التي تحصلنا عليها و هي (accuracy = 0.923077) و (C = 27.055  gamma = 0.000135  kernel = rbf).

الصورة 3

الصورة 4

رابط الكود هنا

#الذكاء_الإصطناعي #تعلم_الألة #التعلم_العميق
#artificial_intelligence #machine_learning #deep_learning
الكاتب : هشام فلواط - hichem felouat
تابعوا مقالاتي على الهاشتاج : #هشام_فلواط

Comments

Popular posts from this blog

مقدمة

تحسين أداء خوارزميات تعلم الألة

أنواع الطرق المستخدمة في مجال تعلم الألة The type of machine learning