عملية Hyperparameter Tuning هي عملية إيجاد أفضل القيم للمعاملات وبالتالي الحصول على أفضل أداء لخوارزمية التعلم, ويتم ذلك بثلاثة طرق وهي البحث الشبكي والعشوائي والبايزي, اقرأ المقال للمزيد.
من المراحل المهمة في عملية بناء نموذج التعلم الآلي هي اتخاذ بعض القرارات حول هندسة النموذج لضمان أداء النموذج بشكل سليم في المستقبل, وهذه القرارات تشمل ضبط المعاملات الفائقة أو Hyperparameter Tuning وهي قيم المعاملات التي يجب ضبطها يدويا ولا يمكن للنموذج أن يتعلمها بشكل تلقائي.
وهي أيضا تتحكم في خوارزمية التعلم للنموذج وتأثر على سرعته ودقته وأدائه, في هذا المقال سنتعرف على أبرز أنواع هذه المعاملات طرق البحث عنها وإيجادها.
في البداية لفهم تعريف عملية Hyperparameter Tuning لابد أن نعرف الفرق بين المعاملات العادية Parameters والمعاملات الفائقة Hyperparameter.
المعاملات الفائقة أو Hyperparameters هي مجموعة من المتغيرات في خوارزمية التعلم التي تتحكم في سلوكها بأكمله, كما تؤثر على سرعتها ووضوحها وهيكل النموذج أي بشكل عام أدائها ككل.
وهذه ال Hyperparameters لا يمكن حساب قيمها من البيانات بل يجب ضبطها يدويا, بل أيضا تستخدم لحساب معاملات النموذج Parameters, حيث باختلاف قيم Hyperparameters نحصل على قيم مختلفة من Parameters لمجموعة البيانات للنموذج.
أما بالنسبة لل Parameters فإن الخوارزمية تقدر هذه المعاملات لمجموعة البيانات ومع استمرار عملية التعلم تقوم بتحديثها باستمرار, وبعد اكتمال مرحلة التعلم تصبح هذه المعاملات جزء من النموذج.
كما أنها تحدد كيفية تحويل البيانات المدخلة الى مخرجات ذات قيمة, من الأمثلة عليها: الأوزان Weights والانحراف Biases.
إذا عملية Hyperparameters Tuning هي البحث عن وإيجاد قيم Hyperparameters المثالية لخوارزمية تعلم النموذج التي تجعل أداء الخوارزمية أفضل ما يمكن عند تطبيقها على أية مجموعة بيانات. [1]
تكمن أهمية هذه العملية في تحسين أداء النموذج في عملية التعلم الآلي من خلال زيادة فعاليته وزيادة دقته في التنبؤ, بالإضافة الى تقليل دالة الفقدان Loss Function ( وهي تقيس مدى الاختلاف بين النتائج المتوقعة والنتائج الفعلية للنموذج ) فبتقليلها يمكن الحصول على نتائج أفضل مع عدد أقل من الأخطاء.
فيما يلي أهم أنواع Hyperparameters اللازمة في الشبكات العصبية [2] :
تتكون الشبكات العصبية من طبقات خفية بين طبقات المدخلات والمخرجات و لتحقيق التوازن بين أداء الشبكة بحيث تكون سريعة ودقيقة وبين تصنيف البيانات المدخلة بشكل صحيح لابد من تحديد عدد الطبقات الخفية, يمكن البدء باستخدام قيم تتراوح بين أربعة إلى ستة من ثم التحقق من دقة التنبؤ بالبيانات عند زيادة أو تقليل هذا المعامل.
ليس بالضرورة أن يكون عدد الخلايا التي يجب استخدامها في كل طبقة كبيرا؛ حيث أن زيادة عدد الخلايا يمكن أن يكون مفيدا حتى نقطة معينة، فمع زيادة عددها تصبح الطبقات واسعة جدا وبالتالي قد تقوم بحفظ مجموعة البيانات التدريبية بالكامل بدلا من فهمها، مما يجعل الشبكة أقل دقة عند التعامل مع بيانات جديدة.
يتم ضبط معاملات Parameters النموذج بشكل متكرر، ومعدل التعلم يتحكم في حجم التعديل أو الضبط في كل دورة من دورات التدريب؛ إذا كان معدل التعلم منخفضًا، يعني ذلك أن التغييرات التي يمكن أن تحدث في قيم المعاملات Parameters (مثل الوزن والانحراف) خلال كل تحديث قليلة. مما يعني أن النموذج سيتعلم ببطء وبحذر، حيث لن يتم التعديل على المعاملات Parameters بمقدار كبير في كل مرة.
الزخم يساعد في تجنب الوقوع في أقل القيم المحلية ( القيم الصغيرة التي يمكن للنموذج الوصول إليها) لدى مقاومته للتغيرات السريعة في قيم Parameters. يشجع الزخم المعاملات Parameters على الاستمرار في التغيير في نفس الاتجاه الذي كانوا يتحركون فيه، مما يمنع التذبذب السريع أثناء عمليات التدريب. من المستحسن بدء التدريب بقيم زخم منخفضة وزيادتها تدريجياً حسب الحاجة لتحقيق أفضل النتائج.
هناك ثلاثة طرق رئيسية للبحث عن Hyperparameters أو المعاملات: [3]
في هذه الطريقة يتم إنشاء شبكة من القيم الممكنة لل Hyperparameters ثم نجرب النموذج بكل تركيب ممكن. يتم تسجيل أداء النموذج لكل مجموعة ثم نختار التركيب الذي أنتج أفضل أداء. هذه الطريقة تكون شاملة ولكنها تكون مكلفة من حيث الوقت والموارد، خاصةً إذا كانت هناك العديد من المعاملات والقيم لكل منها.
هذه الطريقة كما يشير اسمها تختار القيم بشكل عشوائي بدلاً من استخدام مجموعة محددة مسبقًا من القيم كما هو الحال في طريقة البحث الشبكي. تقوم الطريقة على تجربة مجموعة عشوائية من Hyperparameters في كل تكرار وتسجيل أداء النموذج. بعد عدة تكرارات، يرجح المزيج الذي أعطى أفضل نتيجة. تمتاز هذه الطريقة بأنها أقل تكلفة من حيث الوقت والموارد مقارنة بالبحث الشبكي
ويمكن أن تكون فعالة خاصة عندما يكون لديك موارد محدودة وتريد استكشاف الفضاء الواسع للمعاملات بسرعة.
الفرق الرئيسي بين البحث البايزي والطرق الأخرى يكمن في أن خوارزمية ضبط المعاملات تحسّن اختيار معاملاتها في كل دورة وفقًا للنتائج التي تم الحصول عليها في الدورة السابقة.
وبالتالي بدلاً من الاختيار العشوائي للمجموعة التالية من المعاملات، تحسن الخوارزمية الاختيار وعادة ما تصل إلى أفضل مجموعة من المعاملات بسرعة أكبر من الطرق السابقة.
يعني ذلك أن هذه الطريقة تختار فقط طريقة البحث ذات الصلة وتتخلص من النطاقات التي من المرجح أنها لا توفر الحل الأمثل. لذلك، يمكن أن تكون مفيدة عندما يكون لديك كمية كبيرة من البيانات، وعندما يكون التعلم بطيئًا، وتريد تقليل وقت ضبط المعاملات.
الخاتمة
إذا, في هذا المقال سلطنا الضوء على مفهوم عملية ضبط المعاملات Hyperparameters Tuning وهي عملية البحث عن أفضل قيم Hyperparameters التي تجعل أداء الخوارزمية أفضل ما يمكن, ووضحنا الفرق بينها وبين المعاملات العادية التي تقوم الخوارزمية بتقديرها, ثم ذكرنا أبرز أنواع Hyperparameters الخاصة بالشبكات العصبية وهي عدد الطبقات الخفية وعدد الخلايا ومعدل التعلم والزخم.
وأخيرا وضحنا طرق البحث عن هذه المعاملات المتمثلة بثلاثة طرق؛ البحث الشبكي والعشوائي والبايزي, ولا ننسى أهميتها في جعل أداء النموذج أفضل وزيادة دقته في التنبؤ مع تقليل عدد الأخطاء.
المصادر