تکنیک bagging در یادگیری جمعی


تکنیک بگینگ-bagging که با نام bootstrap aggregating  هم شناخته می شود، یک تکنیک یادگیری جمعی هست که برای حداقل کردن واریانس مدل استفاده می شود. در تکنیک bagging برای آموزش هر مدل، یک بخشی از داده به صورت تصادفی انتخاب می شود(bootstrap)، و در پروسه تصمیم گیری، نظر مدلها باهم ترکیب می شود(aggregating ). در این پست میخواهیم تکنیک bagging را بررسی کنیم و ببینیم که در چه پروژه هایی میتونیم از این تکنیک بهره ببریم.

تکنیک bagging

تکنیک bagging در سال 1996 توسط Breiman مطرح شد.  Bagging یک تکنیک یادگیری جمعی هست که هدف آن کاهش خطای یادگیری با استفاده از مجموعه ای از مدلهای یادگیری ماشین هم نوع/همگن هست.

منظور از هم‌نوع یعنی اینکه همه مدلهای پایه در این تکنیک جنس یکسانی دارند. برای مثال همه مدلها درخت تصمیم هستند.

در این تکنیک هدف کاهش واریانس است که با اینکار خطای طبقه بندی یا رگرسیون کاهش می یابد.

 

مفهوم واریانس بالا

مدلی که واریانس آن بالا باشد معنیش این است که این مدل خطای آموزش خیلی کم اما خطای تست بالایی دارد. به عبارت دیگر مدلی که overfit شده باشد واریانس بالایی خواهد داشت.

مفهوم overfitting در یادگیری ماشین

تکنیک bagging با هدف کاهش واریانس، مسئله overfitting مدل را حل میکند و باعث افزایش عملکرد نهایی در پروژه می شود.

آموزش مدلها در تکنیک bagging

در این تکنیک در ابتدا نوع و تعداد مدلهای پایه مشخص می‌شود، سپس با کمک رویکرد bootstrap (the random sampling with replacement) برای هر مدل پایه یک داده آموزشی از روی داده آموزشی انتخاب شده و آموزش داده می شود. مفهوم bootstrap این است که داده ها به صورت تصادفی از روی داده آموزشی انتخاب شوند، منتهی در این داده ی انتخاب شده ممکن است یک نمونه ی آموزشی چندین بار انتخاب شود.

آموزش مدلها در تکینک bagging

پروسه آموزش بسیار ساده است، در ابتدا چندین زیرمجموعه از روی داده آموزشی طبق رویکرد bootstrap میسازیم، و سپس مدلهای پایه را با تک تک این مجموعه ها به صورت جداگانه آموزش میدهیم. جنس/نوع مدلهای پایه یکی است، اما از آنجا که هر کدام با یک مجموعه متفاوتی آموزش می بیند، در نتیجه دانش متفاوتی خواهد داشت و در پروسه تصمیم گیری میتوانند نظر متفاوتی نسبت بهم برای یک ورودی خاص داشته باشند.

 

تست مدلها در تکنیک bagging

در پروسه تست، داده جدید به تک تک مدلهای پایه آموزش دیده ارائه می شود، تک تک مدلها براساس دانشی که دارند، یک خروجی ای برای داده جدید تخمین می زنند. در نهایت نظر همه مدلها باهم ترکیب می شوند تا خروجی داده جدید را تخمین بزنند.

آموزش تکنیک bagging

  • اگر مسئله طبقه بندی باشد، یک رای گیری ساده بین مدلها اتفاق می افتد، و داده جدید به کلاسی تعلق دارد که بیشترین رای را نسبت آن کلاس در مقایسه با سایر کلاسها داشته باشد.
  • اگر مسئله رگرسیون باشد، یک میانگین گیری ساده بین نظر مدلها (خروجی مدلهای پایه) اتفاق می افتد.

 



مدل پایه تکنیک bagging باید چه شرایطی داشته باشد؟

از آنجا که تکنیک bagging با هدف کاهش واریانس مدل ارائه شده است، به همین دلیل، مدل پایه باید پتانسیل overfitting بالایی داشته باشد، یعنی مدل پایه واریانس بالایی داشته باشد. در غیراینصورت تکینک bagging کارساز نخواهد بود. چون زمانی این تکنیک خوب عمل خواهد کرد که تنوع بین خروجی ها باشد. اگر مدل ها واریانس بالایی نداشته باشند تنوعی هم بین خروجی مدلها نخواهد بود.

لذا بهتر است مدل پایه را یک مدل غیرخطی انتخاب کنیم. چرا که مدلهای غیرخطی احتمالا overfitting بالایی دارند. مثل شبکه های عصبی چندلایه، درخت تصمیم و ….

 

در چه پروژه هایی میتوانیم از تکنیک bagging استفاده کنیم؟

  • زمانی که مشکل overfitting در پروژه داریم

بهتر است در ابتدا یک شناخت دقیقی از مسئله/پروژه خود داشته باشیم تا بعد بهتر تصمیم بگیریم. باید ببنید که مشکل پایین بودن عملکرد در پروژه شما به چه چیزی ربط دارد؟ واریانس بالای مدل یا بایاس بالای مدل!؟؟ به عبارت دیگر مشکل شما overfitting مدل هست یا underfitting ؟ اگر در پروژه خود مشکل overfitting نداریم، عملا استفاده از تکنیک bagging فایده ای نخواهد داشت. پس با این حساب تکنیک bagging زمانی میتونه باعث افزایش عملکرد بشه که overfitting  اتفاق افتاده باشه.

  • زمانی که پایگاه داده کمی داریم

زمانی که تعداد نمونه های آموزشی کم باشد، خود به خود احتمال overfitting هم بالا میره. در پروسه آموزش تکنیک bagging نحوه انتخاب داده ها این امکان را میدهد که با انتخاب sample های مختلف برای هر مجموعه، تا حدودی مشکل کمبود داده رو حل کنیم. لذا پیشنهاد میکنم که اگه در یک پروژه ای پایگاه داده ی کمی دارید و امکان افزایش آنرا ندارید از این تکنیک کمک بگیرید.

مسئله بعدی اینکه با این تکنیک قابلیت اطمینان به نتایج بالا میره. به همین دلیل اگه میخواهید اطمینان کافی از نتایج بدست آمده در پروژه خود داشته باشید، انتخاب تکنیک بگینگ یک انتخاب عاقلانه ای است.

توجه داشته باشید که در زمانی که تعداد نمونه های شما کم هست اصلا به سمت تکنیک آدابوست نروید! دلیلش رو شما بگید…



اگر علاقه مند به یادگیری تخصصی مباحث یادگیری جمعی هستید پیشنهاد میکنیم که فصل یادگیری جمعی دوره جامع و تخصصی شناسایی الگو-یادگیری ماشین را تهیه کنید. مباحث این فصل براساس چندین مرجع تخصصی آماده شده است. در این دوره تئوری و رویکرد تکنیکهای یادگیری جمعی از پایه آموزش داده شده و سپس مرحله به مرحله پیاده سازی شده و در پروژه های عملی طبقه بندی و رگرسیون استفاده شده اند.


دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code

1 دیدگاه

  1. […] میان روش‌های یادگیری جمعی، از تکنیک‌های bagging و boosting به دلیل کارایی بالایی که دارند بسیار استفاده […]