HyperAI

تعزيز

في التعلم الآلي،التعزيز هو خوارزمية متكاملة تستخدم بشكل أساسي لتقليل التحيز والتباين في التعلم الخاضع للإشراف، بالإضافة إلى سلسلة من خوارزميات التعلم الآلي التي تعمل على تحويل المتعلمين الضعفاء إلى متعلمين أقوياء. يعتمد التعزيز على السؤال الذي طرحه كيرنز وفاليانت (1988، 1989): "هل يمكن لمجموعة من المتعلمين الضعفاء أن تخلق متعلمًا قويًا؟" يتم تعريف المتعلم الضعيف على أنه مصنف يرتبط بشكل طفيف فقط بالتصنيف الحقيقي (يمكنه تصنيف الأمثلة بشكل أفضل من التخمين العشوائي). على النقيض من ذلك، فإن المتعلم القوي هو المصنف الذي يرتبط بشكل جيد مع التصنيف الحقيقي. في عملية التعزيز، يتم اختيار عينات عشوائية من البيانات، وتركيبها في النماذج، ثم تدريبها بشكل متسلسل - أي أن كل نموذج يحاول التعويض عن نقاط الضعف في سابقه. في كل تكرار، يتم دمج القواعد الضعيفة من كل مصنف فردي في قاعدة تنبؤ قوية. 

ثلاث طرق للتعزيز

قد تختلف خوارزميات التعزيز المختلفة في الطريقة التي تنشئ بها المتعلمين الضعفاء وتجميعهم في عملية متسلسلة. تتضمن ثلاث طرق رفع شائعة ما يلي: 

  • التعزيز التكيفي، المعروف أيضًا باسم AdaBoost:تم إنشاء خوارزمية AdaBoost بواسطة Yoav Freund و Robert Schapire. يتم تنفيذ هذا النهج بطريقة تكرارية، واكتشاف نقاط البيانات المصنفة بشكل خاطئ وضبط أوزانها لتقليل خطأ التدريب. يتم تحسين هذا النموذج بشكل مستمر بطريقة متسلسلة حتى يتم إنتاج أقوى متنبئ.  
  • تعزيز التدرج:بناءً على عمل ليو بريمان، قام جيروم إتش فريدمان بتطوير التعزيز المتدرج، والذي يعمل عن طريق إضافة متنبئين بشكل تسلسلي إلى مجموعة، حيث يقوم كل متنبئ بتصحيح أخطاء سابقه. ومع ذلك، فإن Gradient Boosting يتدرب على بقايا المتنبئ السابق بدلاً من تغيير أوزان نقاط البيانات مثلما يفعل AdaBoost. يتم استخدام اسم تعزيز التدرج لأنه يجمع بين خوارزمية الانحدار المتدرج وطريقة التعزيز.  
  • تعزيز التدرج الشديد، أو XGBoost: XGBoost هو تنفيذ لتعزيز التدرج المصمم للسرعة الحسابية والحجم. يستفيد XGBoost من العديد من أنوية وحدة المعالجة المركزية لتوازي التعلم أثناء التدريب. 

تعزيز المزايا

  • سهلة التنفيذ:يمكن استخدام التعزيز مع العديد من خيارات ضبط المعلمات الفائقة لتحسين الملاءمة. تحتوي خوارزمية التعزيز على روتينات مدمجة للتعامل مع البيانات المفقودة، وبالتالي لا يلزم إجراء معالجة مسبقة للبيانات. في Python، تجعل مكتبة scikit-learn لأساليب المجموعة (المعروفة أيضًا باسم sklearn.ensemble) من السهل تنفيذ أساليب التعزيز الشائعة بما في ذلك AdaBoost وXGBoost وغيرها.  
  • تقليل التحيز:تقوم خوارزمية التعزيز بدمج العديد من المتعلمين الضعفاء بالتسلسل لتحسين الملاحظات بشكل متكرر. يساعد هذا النهج على تقليل التحيز العالي الذي يُرى عادةً في نماذج شجرة القرار الضحلة والانحدار اللوجستي. 
  • الكفاءة الحسابية:نظرًا لأن خوارزمية التعزيز تختار فقط الميزات التي تعمل على تحسين قدرتها التنبؤية أثناء التدريب، فإنها تساعد في تقليل الأبعاد وتحسين الكفاءة الحسابية.  

تحديات التعزيز  

  • الإفراط في التجهيز:هناك بعض الجدل بين العديد من الدراسات (رابط خارج ibm.com) حول ما إذا كان التعزيز يساعد في تقليل الإفراط في التجهيز أو تفاقمه. لقد قمنا بإدراج هذا في التحدي لأنه يحدث أن تفشل التوقعات في التعميم على مجموعات البيانات الجديدة.  
  • الحساب المكثف:  من الصعب توسيع نطاق التدريب المتسلسل بطريقة التعزيز. نظرًا لأن كل متغير مفترض يعتمد على سابقه، فإن نماذج التعزيز مكلفة حسابيًا، على الرغم من أن XGBoost يحاول معالجة مشكلات قابلية التوسع التي تنشأ في أنواع أخرى من التعزيز. بالمقارنة مع التعبئة، يمكن أن تكون خوارزميات التعزيز أبطأ في التدريب بسبب العدد الكبير من المعلمات التي تؤثر أيضًا على سلوك النموذج. 

مراجع

【1】https://www.ibm.com/cn-zh/topics/boosting