بگینگ (Bagging) در یادگیری ماشینی چیست و چگونه کار میکند؟
اگر نگوییم مهمترین، یکی از جنبههای مهم یادگیری ماشین دستیابی به پیش بینیهای دقیق و قابل اعتماد است. یکی از رویکردهای نوآورانه برای این هدف که شهرت پیدا کرده است، Bootstrap Aggregating است که بیشتر به عنوان بگینگ (Bagging) در یادگیری ماشین شناخته میشود. این مطلب به بحث بگینگ در یادگیری ماشینی، مقایسه bagging و boosting در یادگیری ماشینی، ارائه نمونهای از یک طبقهبندی کننده بگینگ، نحوه کارکرد بگینگ و بررسی مزایا و معایب آن در یادگیری ماشینی میپردازد.
بگینگ در یادگیری ماشین چیست؟
این دو تنها تصاویر مرتبطی هستند که در مقالات پرطرفدار استفاده میشوند، اگر نسخههای ابری طراحی را داشته باشیم، میتوان از یکی یا هر دو استفاده کرد.
بگینگ (Bagging) چیست؟
تصور کنید که در حال تلاش برای حدس زدن وزن یک شی با پرسیدن تخمین از چند نفر هستید. به طور جداگانه، حدسهای آنها ممکن است بسیار متفاوت باشد، اما با میانگینگیری همه تخمینها، میتوانید به رقم قابل اعتمادتری برسید. این جوهر بگینگ است؛ ترکیب خروجیهای چندین مدل برای تولید پیشبینی دقیقتر و قویتر.
این فرآیند با ایجاد زیرمجموعههای متعدد از مجموعه داده اصلی از طریق بوتاسترپینگ که نمونه برداری تصادفی با جایگزینی است آغاز میشود. هر زیر مجموعه برای آموزش یک مدل جداگانه به طور مستقل استفاده میشود.
این مدلهای فردی که اغلب به آنها یادگیرنده ضعیف (weak learners) گفته میشود، ممکن است به تنهایی به دلیل واریانس بالا، عملکرد فوقالعادهای نداشته باشند. با این حال، زمانی که پیشبینیهای آنها معمولا با میانگینگیری برای وظایف رگرسیون (regression) یا رای اکثریت برای وظایف طبقهبندی جمع میشوند، نتیجه ترکیبی اغلب از عملکرد هر مدل واحدی پیشی میگیرد.
یک مثال شناخته شده طبقه بندی کننده بگینگ، الگوریتم جنگل تصادفی (Random Forest) است که مجموعه ای از درختان تصمیم را برای بهبود عملکرد پیش بینی میسازد. با این اوصاف، بگینگ نباید با تقویت یادگیری ماشین اشتباه گرفته شود، که رویکرد متفاوتی را با آموزش مدلها بهطور متوالی برای کاهش تعصب انجام میدهد، bagging توسط مدلهای آموزشی بهطور موازی برای کاهش واریانس کار میکند.
هدف بگینگ (bagging) و تقویت (boosting) در یادگیری ماشین بهبود عملکرد مدل است، اما جنبههای مختلف رفتار مدل را هدف قرار میدهند.
چرا بگینگ مفید است؟
یکی از مزایای کلیدی بگینگ در یادگیری ماشین، توانایی آن در کاهش واریانس است که به مدلها کمک میکند تا دادههای دیده نشده را بهتر تعمیم دهند. بگینگ به ویژه هنگام برخورد با الگوریتمهایی که به نوسانات دادههای آموزشی حساس هستند، مانند درختهای تصمیم (decision trees)، سودمند است.
با جلوگیری از نصب بیش از حد، مدل پایدارتر و قابل اعتمادتری را تضمین میکند. هنگام مقایسه بگینگ و بوستینگ در یادگیری ماشینی، bagging بر کاهش واریانس با آموزش چندین مدل به صورت موازی تمرکز می کند، در حالی که هدف boosting، کاهش تعصب با آموزش مدلهای متوالی است.
نمونهای از بگینگ در یادگیری ماشینی را میتوان در پیشبینی ریسک مالی مشاهده کرد، جایی که درختهای تصمیمگیری متعدد بر روی زیر مجموعههای مختلف دادههای تاریخی بازار آموزش داده میشوند. با تجمیع پیشبینیهای آنها، bagging یک مدل پیشبینی قویتر ایجاد میکند و تاثیر خطاهای مدل فردی را کاهش میدهد.
در اصل، استفاده از یادگیری ماشینی از خرد جمعی مدلهای متعدد برای ارائه پیشبینیهایی که دقیقتر و قابل اعتمادتر از پیشبینیهایی است که از مدلهای فردی به دست میآیند، استفاده میکند.
نحوه عملکرد بگینگ در یادگیری ماشینی
برای درک کامل اینکه چگونه bagging عملکرد مدل را افزایش میدهد، بیایید این فرآیند را گام به گام بررسی کنیم.
چندین نمونه بوت استرپ را از مجموعه داده بگیرید
اولین گام bagging در یادگیری ماشین، ایجاد چندین زیرمجموعه جدید از مجموعه داده اصلی با استفاده از bootstrapping است. این تکنیک شامل نمونهبرداری تصادفی از دادهها با جایگزینی است، بنابراین برخی از نقاط داده ممکن است چندین بار در یک زیر مجموعه ظاهر شوند، در حالی که برخی دیگر ممکن است اصلا ظاهر نشوند. این فرآیند برای اطمینان از اینکه هر مدل بر روی یک نسخه کمی متفاوت از داده ها آموزش داده شده است انجام میشود.
در هر نمونه یک مدل جداگانه آموزش دهید
سپس هر نمونه بوت استرپ برای آموزش یک مدل جداگانه، معمولا از همان نوع، مانند درختان تصمیم استفاده میشود. این مدلها که اغلب یادگیرندگان پایه (base learners) یا یادگیرندگان ضعیف (weak learners) نامیده میشوند، بهطور مستقل در زیر مجموعههای مربوطه آموزش داده میشوند. یک مثال bagging classifier، درخت تصمیم مورد استفاده در الگوریتم جنگل تصادفی است که ستون فقرات بسیاری از مدلهای مبتنی بر بگینگ را تشکیل میدهد. در حالی که هر مدل فردی ممکن است به تنهایی عملکرد خوبی نداشته باشد، هر کدام بر اساس داده های آموزشی خاص خود بینش های منحصر به فردی را ارائه می دهند.
پیش بینیها را جمع کنید
پس از آموزش مدلها، پیشبینیهای آنها برای تشکیل خروجی نهایی تجمیع میشود.
- برای وظایف رگرسیون، پیشبینیها میانگین میشوند و واریانس مدل را کاهش میدهند.
- برای کارهای طبقه بندی، پیش بینی نهایی از طریق رای اکثریت تعیین میشود، جایی که کلاس پیش بینی شده توسط اکثر مدلها انتخاب می شود. این روش در مقایسه با خروجی یک مدل، پیشبینی پایدارتری را ارائه میکند.
پیش بینی نهایی
با ترکیب پیشبینیهای چند مدل، بگینگ تاثیر خطاهای هر مدل را کاهش داده و دقت کلی را بهبود میبخشد. این فرآیند تجمیع چیزی است که بگینگ را به تکنیک قدرتمندی تبدیل میکند، بهویژه در وظایف یادگیری ماشینی که در آن از مدلهای با واریانس بالا مانند درختهای تصمیم استفاده میشود. این به طور موثر ناسازگاریها را در پیشبینیهای مدل فردی برطرف میکند و در نتیجه یک مدل نهایی قویتر ایجاد میکند.
در حالی که bagging برای تثبیت پیشبینیها موثر است، چند نکته که باید در نظر داشت شامل خطر بیش برازش (Overfitting) در صورتی که مدلهای پایه بیش از حد پیچیده باشند، علیرغم هدف کلی بگینگ برای کاهش آن، است.
همچنین از نظر محاسباتی گران است، بنابراین تنظیم تعداد یادگیرندگان پایه یا در نظر گرفتن روشهای مجموعه کارآمدتر میتواند کمک کند، و انتخاب GPU مناسب برای ML و DL همیشه مهم است.
اطمینان حاصل کنید که برای نتایج بهتر، تنوع مدلی در بین یادگیرندگان پایه وجود دارد و اگر با داده های نامتعادل کار می کنید، تکنیک هایی مانند SMOTE می توانند قبل از اعمال بگینگ برای جلوگیری از عملکرد ضعیف در کلاسهای اقلیت مفید باشند.
سرور مجازی یک ماشین مجازی کامل است که امکان انتخاب سیستم عامل و منابع را فراهم میکند.
خرید سرور مجازی در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
کاربردهای بگینگ
اکنون که نحوه عملکرد بگینگ را بررسی کردیم، زمان آن رسیده است که ببینیم واقعا کجا در دنیای واقعی از آن استفاده میشود. بگینگ راه خود را در صنایع مختلف پیدا کرده است و به بهبود دقت و ثبات پیش بینیها در سناریوهای پیچیده کمک میکند. بیایید نگاهی دقیق تر به برخی از تاثیرگذارترین برنامهها بیندازیم:
- طبقه بندی و رگرسیون: بگینگ به طور گستردهای برای بهبود عملکرد طبقه بندی کنندهها و رگرسیورها از طریق کاهش واریانس و جلوگیری از overfitting استفاده میشود. به عنوان مثال، جنگلهای تصادفی، که از بگینگ استفاده میکنند، در کارهایی مانند طبقهبندی تصویر و مدلسازی پیشبینی موثر هستند.
- تشخیص ناهنجاری: در زمینههایی مانند تشخیص تقلب و تشخیص نفوذ شبکه، الگوریتمهای بگینگ با شناسایی موثر نقاط پرت و ناهنجاری در دادهها، عملکرد برتری را ارائه میدهند.
- ارزیابی ریسک مالی: تکنیکهای بگینگ در بانکداری برای بهبود مدلهای امتیازدهی اعتبار، بهبود دقت فرآیندهای تایید وام و ارزیابی ریسک مالی استفاده میشوند.
- تشخیص پزشکی: در مراقبتهای بهداشتی، Bagging برای تشخیص اختلالات عصبی-شناختی مانند بیماری آلزایمر با تجزیه و تحلیل مجموعه دادههای MRI، کمک به تشخیص زودهنگام و برنامهریزی درمان استفاده شده است.
- پردازش زبان طبیعی (NLP): با جمعآوری پیشبینیها از مدلهای متعدد به وظایفی مانند طبقهبندی متن و تحلیل احساسات کمک میکند و منجر به درک قویتر زبان میشود.
مزایا و معایب بگینگ
مانند هر تکنیک یادگیری ماشینی، بگینگ مزایا و معایب خاص خود را دارد. درک این موارد می تواند به تعیین زمان و نحوه استفاده از bagging در مدل های خود کمک کند.
مزایای بگینگ:
- کاهش واریانس و overfitting: یکی از مهم ترین مزایای بگینگ در یادگیری ماشینی، توانایی آن در کاهش واریانس است که به جلوگیری از overfitting کمک میکند. با آموزش مدلهای متعدد بر روی زیر مجموعههای مختلف دادهها، Bagging به شما این آرامش را میدهد که مدل نسبت به نوسانات در دادههای آموزشی خیلی حساس نمیشود و در نتیجه یک مدل قابل تعمیم و پایدارتر ایجاد میشود.
- با مدلهای با واریانس بالا خوب کار میکند: Bagging بهویژه زمانی موثر است که با مدلهای با واریانس بالا مانند درختهای تصمیمگیری استفاده شود. این مدلها تمایل دارند بیش از حد دادهها را overfitting کنند و واریانس بالایی دارند، اما Bagging با میانگینگیری یا رأی دادن به مدلهای متعدد، این امر را کاهش میدهد. این کمک میکند تا پیشبینیها قابل اعتمادتر باشند و کمتر تحت تاثیر نویز در دادهها قرار بگیرند.
- ثبات و عملکرد مدل را بهبود میبخشد: با ترکیب چندین مدل آموزش دیده بر روی زیر مجموعه های مختلف دادهها، Bagging اغلب به عملکرد کلی بهتر منجر میشود. این به بهبود دقت پیشبینی کمک نموده و در عین حال حساسیت مدل را به تغییرات کوچک در مجموعه داده کاهش میدهد، که در نهایت مدل را قابل اعتمادتر میکند.
معایب بگینگ:
- هزینه محاسباتی را افزایش میدهد: از آنجایی که Bagging نیاز به آموزش چندین مدل دارد، طبیعتا هزینه محاسباتی را افزایش میدهد. آموزش و تجمیع پیشبینیهای بسیاری از مدلها میتواند زمانبر باشد، بهویژه زمانی که از مجموعه دادههای بزرگ یا مدلهای پیچیده مانند درختهای تصمیم استفاده میشود.
- برای مدلهای با واریانس پایین موثر نیست: در حالی که Bagging برای مدلهای با واریانس بالا بسیار موثر است، وقتی برای مدلهای با واریانس پایین مانند رگرسیون خطی اعمال میشود، فایده چندانی ندارد. در این موارد، مدلهای منفرد از قبل دارای نرخ خطای پایینی هستند، بنابراین پیشبینیهای جمعآوری شده چندان به بهبود نتایج کمک نمیکند.
- از دست دادن قابلیت تفسیر: با ترکیب چندین مدل، بگینگ میتواند تفسیرپذیری مدل نهایی را کاهش دهد. برای مثال، در Random Forest، فرآیند تصمیمگیری بر اساس درختهای تصمیمگیری چندگانه است و ردیابی استدلال پشت یک پیشبینی خاص را دشوارتر میکند.
جمعبندی
بگینگ (Bagging) در یادگیری ماشین یک تکنیک قدرتمند است که عملکرد مدل را با کاهش واریانس و بهبود پایداری افزایش میدهد. با جمعآوری پیشبینیهای مدلهای متعدد آموزشدیده بر روی زیرمجموعههای مختلف داده، بگینگ به ایجاد نتایج دقیقتر و قابل اعتمادتر کمک میکند. این به ویژه برای مدلهای با واریانس بالا مانند درختهای تصمیم موثر است، جایی که به جلوگیری از overfitting کمک کرده و اطمینان میدهد که مدل بهتر به دادههای دیده نشده تعمیم مییابد.
در حالی که Bagging مزایای قابل توجهی دارد، مانند کاهش overfitting و بهبود دقت، اما با چند عیب هم همراه است. به دلیل آموزش چندین مدل، هزینه محاسباتی را افزایش داده و ممکن است تفسیرپذیری را کاهش دهد. علیرغم این اشکالات، توانایی آن در افزایش عملکرد، آن را به یک تکنیک ارزشمند در یادگیری گروهی، در کنار روشهای دیگر مانند تقویت و انباشتن تبدیل میکند.