دليل شامل لتعزيز خوارزميات التعلم الآلي



تركز هذه المدونة بالكامل على كيفية عمل Boosting Machine Learning وكيف يمكن تنفيذه لزيادة كفاءة نماذج التعلم الآلي.

مع العديد من التطورات في مجال الرعاية الصحية والتسويق والأعمال وما إلى ذلك ، أصبحت هناك حاجة إلى تطوير أكثر تقدمًا وتعقيدًا . يعد تعزيز التعلم الآلي أحد الأساليب التي يمكن استخدامها لحل مشكلات العالم الواقعي المعقدة والقائمة على البيانات. تركز هذه المدونة بالكامل على كيفية عمل Boosting Machine Learning وكيف يمكن تنفيذه لزيادة كفاءة نماذج التعلم الآلي.

للحصول على معرفة متعمقة بالذكاء الاصطناعي والتعلم الآلي ، يمكنك التسجيل في البث المباشر بواسطة Edureka مع دعم على مدار الساعة طوال أيام الأسبوع وإمكانية الوصول مدى الحياة.





إليك قائمة بالموضوعات التي سيتم تناولها في هذه المدونة:

  1. لماذا يتم استخدام التعزيز؟
  2. ما هو التعزيز؟
  3. كيف تعمل خوارزمية التعزيز؟
  4. أنواع التعزيز
  5. تجريبي

لماذا يتم استخدام التعزيز؟

لحل المشكلات المعقدة ، نحتاج إلى تقنيات أكثر تقدمًا. لنفترض أنه بناءً على مجموعة بيانات من الصور التي تحتوي على صور القطط والكلاب ، طُلب منك إنشاء نموذج يمكنه تصنيف هذه الصور إلى فئتين منفصلتين. مثل أي شخص آخر ، ستبدأ بتحديد الصور باستخدام بعض القواعد ، كما هو موضح أدناه:



  1. الصورة لها آذان مدببة: القط

  2. الصورة لها عيون على شكل قطة: القط

  3. الصورة لها أطراف أكبر: الكلب



  4. الصورة قد شحذت المخالب: القط

  5. الصورة لها هيكل فم أوسع: الكلب

تساعدنا كل هذه القواعد في تحديد ما إذا كانت الصورة هي كلب أم قطة ، ومع ذلك ، إذا أردنا تصنيف صورة بناءً على قاعدة فردية (فردية) ، فسيكون التنبؤ معيبًا. تسمى كل من هذه القواعد ، بشكل فردي ، المتعلمين الضعفاء لأن هذه القواعد ليست قوية بما يكفي لتصنيف صورة على أنها قطة أو كلب.

لذلك ، للتأكد من أن تنبؤنا أكثر دقة ، يمكننا الجمع بين التنبؤ من كل من هؤلاء المتعلمين الضعفاء باستخدام قاعدة الأغلبية أو المتوسط ​​المرجح. هذا يجعل نموذج متعلم قوي.

في المثال أعلاه ، حددنا 5 متعلمين ضعفاء وأغلب هذه القواعد (أي 3 من أصل 5 متعلمين يتنبأون بالصورة كقط) تعطينا التنبؤ أن الصورة قطة. لذلك ، الناتج النهائي لدينا هو قطة.

هذا يقودنا إلى السؤال ،

ما هو التعزيز؟

التعزيز هو أسلوب تعلم جماعي يستخدم مجموعة من خوارزميات التعلم الآلي لتحويل المتعلم الضعيف إلى متعلمين أقوياء من أجل زيادة دقة النموذج.

What-Is-Boosting-Boosting-Machine-Learning-Edureka

ما هو التعزيز - تعزيز التعلم الآلي - Edureka

كما ذكرت ، يعتبر Boosting طريقة تعلم جماعية ، ولكن ما هو التعلم الجماعي بالضبط؟

جافا تغيير مزدوج إلى كثافة العمليات

ما هي الفرقة في التعلم الآلي؟

تعلم المجموعة هي طريقة تُستخدم لتحسين أداء نموذج التعلم الآلي من خلال الجمع بين العديد من المتعلمين. عند مقارنته بنموذج واحد ، فإن هذا النوع من التعلم يبني نماذج ذات كفاءة ودقة محسنتين. هذا هو سبب استخدام طرق التجميع للفوز بالمسابقات الرائدة في السوق مثل مسابقة توصيات Netflix ومسابقات Kaggle وما إلى ذلك.

ما هو التعلم الجماعي - تعزيز التعلم الآلي - Edureka

أدناه ناقشت أيضًا الفرق بين التعزيز والتعبئة.

التعزيز مقابل التعبئة

يمكن إجراء التعلم الجماعي بطريقتين:

  1. فرقة متسلسلة المعروف شعبيا باسم التعزيز ، هنا يتم إنتاج المتعلمين الضعفاء بالتسلسل خلال مرحلة التدريب. تم تحسين أداء النموذج من خلال تعيين وزن أعلى للعينات السابقة المصنفة بشكل غير صحيح. مثال على التعزيز هو خوارزمية AdaBoost.

  2. مجموعة موازية ، المعروف شعبيا باسم التعبئة ، هنا يتم إنتاج المتعلمين الضعفاء بشكل متوازي أثناء مرحلة التدريب. يمكن زيادة أداء النموذج من خلال التدريب المتوازي لعدد من المتعلمين الضعفاء على مجموعات بيانات تمهيدية. مثال على التعبئة هو Random Forest الخوارزمية.

في هذه المدونة ، سأركز على طريقة التعزيز ، لذلك في القسم أدناه سوف نفهم كيفية عمل خوارزمية التعزيز.

كيف تعمل خوارزمية التعزيز؟

يتمثل المبدأ الأساسي وراء عمل خوارزمية التعزيز في توليد العديد من المتعلمين الضعفاء والجمع بين تنبؤاتهم لتشكيل قاعدة واحدة قوية. يتم إنشاء هذه القواعد الضعيفة من خلال تطبيق خوارزميات التعلم الآلي الأساسية على توزيعات مختلفة لمجموعة البيانات. هذه الخوارزميات تولد قواعد ضعيفة لكل تكرار. بعد عمليات التكرار المتعددة ، يتم الجمع بين المتعلمين الضعفاء لتشكيل متعلم قوي يتنبأ بنتيجة أكثر دقة.

كيف تعمل خوارزمية التعزيز - تعزيز التعلم الآلي - Edureka

إليك كيفية عمل الخوارزمية:

الخطوة 1: تقرأ الخوارزمية الأساسية البيانات وتخصص وزناً متساوياً لكل عينة ملاحظة.

الخطوة 2: يتم تحديد التنبؤات الخاطئة التي أدلى بها المتعلم الأساسي. في التكرار التالي ، يتم تعيين هذه التنبؤات الخاطئة للمتعلم الأساسي التالي مع وزن أعلى لهذه التوقعات غير الصحيحة.

الخطوه 3: كرر الخطوة 2 حتى تتمكن الخوارزمية من تصنيف الإخراج بشكل صحيح.

لذلك ، فإن الهدف الرئيسي من التعزيز هو للتركيز أكثر على التنبؤات الخاطئة.

الآن بعد أن عرفنا كيفية عمل خوارزمية التعزيز ، دعنا نفهم الأنواع المختلفة لتقنيات التعزيز.

أنواع التعزيز

هناك ثلاث طرق رئيسية يمكن من خلالها تنفيذ التعزيز:

  1. تعزيز التكيف أو AdaBoost

  2. تعزيز التدرج

  3. XGBoost

سأناقش الأساسيات وراء كل نوع من هذه الأنواع.

التعزيز التكيفي

  • يتم تنفيذ AdaBoost من خلال الجمع بين العديد من المتعلمين الضعفاء في متعلم واحد قوي.

  • يأخذ المتعلمون الضعفاء في AdaBoost في الحسبان ميزة إدخال واحدة ويقومون برسم شجرة قرار منقسم واحدة تسمى جدعة القرار. يتم وزن كل ملاحظة بالتساوي أثناء رسم جذع القرار الأول.

  • يتم تحليل النتائج من جذع القرار الأول وإذا تم تصنيف أي ملاحظات بشكل خاطئ ، فسيتم تخصيص أوزان أعلى لها.

  • بعد ذلك ، يتم رسم جدعة قرار جديدة من خلال اعتبار الملاحظات ذات الأوزان الأعلى أكثر أهمية.

  • مرة أخرى ، إذا تم تصنيف أي ملاحظات بشكل خاطئ ، فسيتم إعطاؤها وزنًا أكبر وتستمر هذه العملية حتى تقع جميع الملاحظات في الفئة الصحيحة.

  • يمكن استخدام Adaboost لكلٍ من التصنيف والمشكلات القائمة على الانحدار ، ومع ذلك ، فهو أكثر شيوعًا لأغراض التصنيف.

تعزيز التدرج

يعتمد تعزيز التدرج أيضًا على التعلم الجماعي المتسلسل. هنا يتم إنشاء المتعلمين الأساسيين بالتتابع بطريقة تجعل المتعلم الأساسي الحالي دائمًا أكثر فعالية من المتعلم السابق ، أي أن النموذج العام يتحسن بالتتابع مع كل تكرار.

يتمثل الاختلاف في هذا النوع من التعزيز في أن أوزان النتائج التي تم تصنيفها بشكل خاطئ لا تتم زيادتها ، وبدلاً من ذلك ، تحاول طريقة تعزيز التدرج تحسين وظيفة الخسارة للمتعلم السابق عن طريق إضافة نموذج جديد يضيف المتعلمين الضعفاء من أجل تقليل وظيفة الخسارة.

الفكرة الرئيسية هنا هي التغلب على الأخطاء في توقعات المتعلم السابقة. يتكون هذا النوع من التعزيز من ثلاثة مكونات رئيسية:

  1. فقدان وظيفة التي تحتاج إلى تحسين.

  2. متعلم ضعيف لحساب التنبؤات وتكوين متعلمين أقوياء.

  3. ان نموذج مضاف من شأنها أن تنظم وظيفة الخسارة.

مثل AdaBoost ، يمكن أيضًا استخدام Gradient Boosting لكل من مشاكل التصنيف والانحدار.

XGBoost

XGBoost هو نسخة متقدمة من طريقة تعزيز التدرج ، وهذا يعني حرفياً تعزيز التدرج الأقصى. يندرج XGBoost الذي طورته Tianqi Chen ضمن فئة مجتمع التعلم الآلي الموزع (DMLC).

الهدف الرئيسي من هذه الخوارزمية هو زيادة سرعة وكفاءة الحساب. تحسب خوارزمية Gradient Descent Boosting الإخراج بمعدل أبطأ نظرًا لأنها تحلل مجموعة البيانات بشكل متسلسل ، وبالتالي يتم استخدام XGBoost لتعزيز أداء النموذج أو تعزيزه بشكل كبير.

XGBoost - تعزيز التعلم الآلي - Edureka

تم تصميم XGBoost للتركيز على السرعة الحسابية وكفاءة النموذج. الميزات الرئيسية التي يوفرها XGBoost هي:

  • Parallelly يخلق أشجار القرار.

  • تطبيق طرق الحوسبة الموزعة لتقييم النماذج الكبيرة والمعقدة.

  • استخدام الحوسبة خارج النواة لتحليل مجموعات البيانات الضخمة.

  • تنفيذ تحسين ذاكرة التخزين المؤقت لتحقيق أفضل استخدام للموارد.

لذلك كان هؤلاءالأنواع المختلفة من خوارزميات تعزيز التعلم الآلي. لجعل الأمور مثيرة للاهتمام ، سنقوم في القسم أدناه بتشغيل عرض توضيحي لمعرفة كيفية تنفيذ خوارزميات التعزيز في Python.

تعزيز التعلم الآلي في بايثون

إخلاء مسؤولية قصير: سأستخدم Python لتشغيل هذا العرض التوضيحي ، لذلك إذا كنت لا تعرف لغة Python ، فيمكنك تصفح المدونات التالية:

  1. كيف تتعلم Python 3 من Scratch - دليل المبتدئين

حان الوقت الآن لكي تتسخ يديك وتبدأ في البرمجة.

عرض المشكلة: لدراسة مجموعة بيانات الفطر وبناء نموذج التعلم الآلي الذي يمكنه تصنيف الفطر على أنه إما سام أو غير سام ، من خلال تحليل ميزاته.

وصف مجموعة البيانات: توفر مجموعة البيانات هذه وصفًا تفصيليًا للعينات الافتراضية وفقًا لـ 23 نوعًا من الفطر الخيشومي. يتم تصنيف كل نوع على أنه إما فطر صالح للأكل أو غير صالح للأكل (سام).

منطق: لبناء نموذج تعلم الآلة باستخدام إحدى خوارزميات التعزيز للتنبؤ بما إذا كان الفطر صالحًا للأكل أم لا.

الخطوة الأولى: استيراد الحزم المطلوبة

من sklearn.

الخطوة 2: استيراد مجموعة البيانات

# تحميل في مجموعة بيانات البيانات = pd.read_csv ('C: //Users//NeelTemp//Desktop//mushroomsdataset.csv')

الخطوة 3: معالجة البيانات

# حدد أسماء الأعمدة dataset.columns = ['target'، 'cap-shape'، 'cap-surface'، 'cap-color'، 'bruises'، 'odor'، 'gill-attachment'، 'gill-spacing '،' gill-size '،' gill-color '،' stalk-shape '،' stalk-root '،' stalk-surface-over-ring '،' stalk-surface-below-ring '،' stalk-color -أعلى-حلقة '،' لون ساق-لون أسفل-حلقة '،' نوع حجاب '،' لون حجاب '،' رقم حلقة '،' نوع حلقة '،' لون سبور-طباعة-لون '،' سكان '،' موطن '] للتسمية في dataset.columns: مجموعة البيانات [التسمية] = LabelEncoder (). fit (مجموعة البيانات [التسمية]). التحويل (مجموعة البيانات [التسمية]) # عرض معلومات حول مجموعة البيانات المطبوعة (dataset.info ( )) Int64Index: 8124 إدخالات ، 6074 إلى 686 عمود بيانات (إجمالي 23 عمودًا): الهدف 8124 غير فارغ int32 شكل غطاء 8124 غير فارغ int32 غطاء السطح 8124 غير فارغ int32 غطاء اللون 8124 non-null int32 كدمات 8124 non-null int32 الرائحة 8124 non-null int32 gill-attachment 8124 non-null int32 gill-spacing 8124 non-null int32 gill-size 8124 non-null int32 gill-color 8124 non-null int32 stalk-shape 8124 non-null int32 ساق الجذر 8124 int32 غير خالية ساق السطح فوق الحلقة 8124 non-null int32 ساق السطح أدناه الحلقة 8124 non-null int32 stalk-color-over-ring 8124 non-null int32 stalk-color-below-ring 8124 non-null int32 veil- النوع 8124 non-null int32 لون الحجاب 8124 non-null int32 رقم الحلقة 8124 non-null int32 نوع الحلقة 8124 non-null int32 spore-print-color 8124 non-null int32 السكان 8124 non-null int32 الموائل 8124 non- null int32 dtypes: int32 (23) استخدام الذاكرة: 793.4 كيلوبايت

الخطوة 4: ربط البيانات

X = dataset.drop (['target']، axis = 1) Y = مجموعة البيانات ['target'] X_train، X_test، Y_train، Y_test = train_test_split (X، Y، test_size = 0.3)

الخطوة 5: بناء النموذج

النموذج = DecisionTreeClassifier (المعيار = 'إنتروبيا' ، max_depth = 1) AdaBoost = AdaBoostClassifier (base_estimator = نموذج ، n_estimators = 400 ، معدل التعلم = 1)

في مقتطف الشفرة أعلاه ، قمنا بتنفيذ خوارزمية AdaBoost. تأخذ وظيفة 'AdaBoostClassifier' ثلاث معاملات مهمة:

جافا سي ++ بيثون
  • base_estimator: المقدر الأساسي (المتعلم الضعيف) هو أشجار القرار افتراضيًا
  • n_estimator: يحدد هذا الحقل عدد المتعلمين الأساسيين لاستخدامهم.
  • Learning_rate: يحدد هذا الحقل معدل التعلم ، والذي قمنا بتعيينه على القيمة الافتراضية ، أي 1.
# تناسب النموذج مع بيانات التدريب boostmodel = AdaBoost.fit (X_train، Y_train)

الخطوة 6: نموذج التقييم

# تقييم دقة النموذج y_pred = boostmodel.predict (X_test) التوقعات = metrics.accuracy_score (Y_test، y_pred) # حساب الدقة في النسبة المئوية للطباعة ('الدقة هي:' ، التنبؤات * 100 ، '٪') الدقة هو: 100.0٪

لقد تلقينا دقة تصل إلى 100٪ وهي مثالية!

وبهذا ، نصل إلى نهاية مدونة Boosting Machine Learning. إذا كنت ترغب في معرفة المزيد عن 'التعلم الآلي' ، يمكنك قراءة هذه المدونات:

إذا كنت ترغب في التسجيل في دورة كاملة حول الذكاء الاصطناعي والتعلم الآلي ، فإن Edureka لديها برنامج منسق خصيصًا سيجعلك بارعًا في تقنيات مثل التعلم الخاضع للإشراف والتعلم غير الخاضع للإشراف ومعالجة اللغة الطبيعية. ويشمل التدريب على أحدث التطورات والأساليب التقنية في الذكاء الاصطناعي والتعلم الآلي مثل التعلم العميق والنماذج الرسومية والتعلم المعزز.