الگوریتم AdaBoost چیست – مدل ، پیش بینی ، آماده سازی داده

AdaBoost

در این قسمت از خودآموز یادگیری ماشین ، الگوریتم تقویت کننده AdaBoost را مطالعه خواهیم کرد. علاوه بر این ، در مورد مدل AdaBoost و تهیه داده ها به بحث خواهیم پرداخت.

خب ، بیایید آموزش الگوریتم AdaBoost را شروع کنیم.

معرفی Adaboost

AdaBoost چیست؟

اول از همه ، AdaBoost مخفف Adaptive Boosting ( تقویت کنندگی وفقی ) است. اساساً ، AdaBoosting اولین الگوریتم تقویت کننده موفقیت آمیز برای کلاسه بندی باینری بود. همچنین ، بهترین نقطه شروع برای درک مفهوم تقویت کنندگی است. علاوه بر این ، روش های تقویت کننده مدرن بر اساس AdaBoost ساخته می شوند، از جمله ماشین های تقویت گرادیان تصادفی.

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

بیشتر بخوانید – دلایل آموزش یادگیری ماشین

یادگیری مدل AdaBoost

مدل AdaBoost را از داده ها یاد بگیرید

  • بهتر است فرآیند AdaBoost برای افزایش عملکرد درختان تصمیم گیری و مبتنی بر مسائل کلاسه بندی باینری مورد استفاده قرار گیرد.
  • AdaBoost در اصل توسط نویسنده اش AdaBoost.M1 نامیده می شود. اخیراً ممکن است از آن به عنوان discrete AdaBoost ( آدابوست گسسته ) یاد شود. زیرا بجای رگرسیون برای کلاسه بندی استفاده می شود.
  • AdaBoost می تواند برای افزایش عملکرد هر الگوریتم یادگیری ماشین استفاده شود. لذا بهتر است با استفاده از یادگیرنده های ضعیف کار کند.

هر نمونه از مجموعه داده های آموزشی دارای وزن است. وزن اولیه بصورت زیر تنظیم می شود :

weight(xi) = 1/n

که xi نمونه آموزش i ام و n تعداد نمونه های آموزشی است.

چگونه یک مدل را آموزش دهیم؟

با استفاده از نمونه های وزن دار ، یک کلاسه بند ضعیف بر روی داده های آموزشی ایجاد می شود. این مدل فقط از مسائل کلاسه بندی باینری پشتیبانی می کند. بنابراین هر درخت تصمیم گیری کوچک در مورد یک متغیر ورودی ، یک تصمیم می گیرد و مقدار ۱+ یا ۱- را برای مقدار کلاس اول یا دوم خروجی می دهد.

در نهایت، نرخ کلاسه بندی نادرست برای مدل آموزش دیده، به طور سنتی بصورت زیر محاسبه می شود :

error = (correct – N) / N

که error ، نرخ کلاسه بندی نادرست است. در حالی که correct ، تعداد نمونه های آموزشی است که توسط مدل ، درست پیش بینی شده اند و N تعداد کل نمونه های آموزشی است.

بیایید در مورد الگوریتم XGBoost بطور مفصل بحث کنیم

مثال ۱

اگر یک مدل ، ۷۸ مورد از ۱۰۰ نمونه آموزشی را نادرست پیش بینی کرده باشد.

از این مدل برای اصلاح وزن دهی نمونه های آموزشی استفاده می شود :

error = sum(w(i) * terror(i)) / sum(w)

که برابر مجموع وزن دار نرخ کلاسه بندی نادرست است و در آن w ، وزن نمونه آموزشی i ام و terror خطای پیش بینی برای نمونه آموزشی i ام است. همچنین اگر کلاسه بندی نادرست باشد برابر ۱ و در صورت صحیح بودن کلاسه بندی برابر ۰ است.

مثال ۲

اگر ۳ نمونه آموزش با وزن های ۰٫۰۱ ، ۰٫۵ و ۰٫۲ داشته باشیم.

مقادیر پیش بینی شده ۱- ، ۱- و ۱- و متغیرهای خروجی واقعی در نمونه ها ۱- ، ۱ و ۱- بوده باشند ، پس terror ها ۰ ، ۱ و ۰ خواهند بود.

نرخ کلاسه بندی نادرست به صورت زیر محاسبه می شود:

error = (0.01*0 + 0.5*1 + 0.2*0) / (0.01 + 0.5 + 0.2)

یا

error = 0.704

یک مقدار stage برای مدل آموزش دیده محاسبه می شود. که برای هر پیش بینی که مدل ایجاد می کند، وزنی را ارائه می دهد. مقدار stage برای یک مدل آموزش دیده به صورت زیر قابل محاسبه است :

stage = ln((1-error) / error)

که مقدار stage برای پیش بینی وزن از مدل بکار می رود. همچنین، ()ln لگاریتم طبیعی و error خطای کلاسه بندی نادرست برای مدل است. تأثیر وزن stage این است که مدل های دقیق تر ، وزن بیشتری دارند.

وزن های آموزشی بروزرسانی شده ، به نمونه های پیش بینی نشده وزن بیشتری می دهند و به نمونه های پیش بینی شده وزن کمتری می دهند.

بیشتر بخوانید – جزئیات کاهش ابعاد

مثال ۳

وزن یک نمونه آموزشی (w) با استفاده از رابطه زیر بروزرسانی می شود :

w = w * exp (stage * terror)

که w وزن یک نمونه آموزش خاص است ، ()exp ثابت عددی e یا عدد اویلر است که به توان رسیده است ،

یک stage ، نرخ کلاسه بندی نادرست برای کلاسه بندی ضعیف است و terror خطایی است که کلاسه بند ضعیف در پیش بینی خروجی انجام داده و به صورت زیر ارزیابی می شود:

terror = 0    if(y == p),    otherwise 1

که y متغیر خروجی برای نمونه آموزش و p پیش بینی یادگیرنده ضعیف است.

در صورت کلاسه بندی نمونه آموزشی ، terror وزن را تغییر نمی دهد اما اگر یادگیرنده ضعیف ، نمونه را اشتباه کلاسه بندی کند، وزن را کمی بزرگتر می کند.

مطالعه بیشتر – یادگیری کاربرد های یادگیری ماشین

مدل گروهی AdaBoost

  • اساساً ، مدل های ضعیف به صورت متوالی اضافه می شوند ، و با استفاده از نمونه های آموزشی وزن دار آموزش داده می شوند.
  • به طور کلی ، این روند ادامه می یابد تا زمانی که یک تعداد از پیش تعیین شده یادگیرنده ضعیف ایجاد شود.
  • پس از تکمیل کار ، مجموعه ای از یادگیرنده های ضعیف که هر یک دارای یک stage هستند باقی می مانند.

پیش بینی با AdaBoost

پیش بینی ها با محاسبه میانگین وزن دار کلاسه بند های ضعیف انجام می گیرد.

برای یک نمونه ورودی جدید ، هر یادگیرنده ضعیف یک مقدار پیش بینی شده را بصورت ۱+ یا ۱- محاسبه می کند. مقادیر پیش بینی شده، توسط هر مقدار stage یادگیرنده های ضعیف ، وزن دهی می شوند. پیش بینی برای مدل گروهی به عنوان مجموع پیش بینی های وزن دار در نظر گرفته شده است. اگر مجموع مثبت باشد، کلاس اول پیش بینی می شود و اگر منفی، کلاس دوم پیش بینی شود.

بیایید مزایا و معایب یادگیری ماشین را مرور کنیم

بطور مثال

۵ کلاسه بند ضعیف ممکن است مقادیر ۱ ، ۱ ، ۱- ، ۱ ، ۱- را پیش بینی کند. به نظر می رسد با توجه به اکثریت آرا ، مدل مقدار ۱ یا کلاس اول را پیش بینی کند. همین ۵ کلاسه بند ضعیف ممکن است به ترتیب مقادیر stage برابر ۰٫۲ ، ۰٫۵ ، ۰٫۸ ، ۰٫۲ و ۰٫۹ داشته باشند.

محاسبه مجموع وزن دار این پیش بینی ها منجر به خروجی ۰٫۸- می شود که معادل یک پیش بینی گروهی ۱- یا کلاس دوم خواهد بود.

آماده سازی داده ها برای AdaBoost

در این بخش ، برخی از شیوه های اکتشافی برای تهیه بهترین داده ها برای AdaBoost ذکر شده است.

کیفیت داده ها :

به دلیل استفاده از روش گروهی برای تصحیح کلاسه بندی های اشتباه در داده های آموزشی ، باید مراقب باشید که داده های آموزشی از کیفیت بالایی برخوردار باشند.

داده های پرت :

به طور کلی داده های پرت ، گروه را در یک وضعیت پیچیده قرار می دهد. اگر چه تصحیح موارد غیرواقعی بسیار دشوار است اما می توان این موارد را از مجموعه داده های آموزشی حذف کرد.

داده های نویزی :

اساساً ، داده های نویزی و نویزهای خاص در متغیر خروجی می توانند مشکل ساز شوند. اما اگر ممکن است ، سعی کنید این موارد را از مجموعه آموزشی خود جدا و پالایش کنید.

 

بدین ترتیب ، این ها مباحثی در مورد الگوریتم AdaBoost در یادگیری ماشین بود. امیدوارم توضیحات ما را بپسندید.

در مورد بهترین نرم افزار یادگیری ماشین با جزئیات بیشتر بخوانید

نتیجه گیری

بدین ترتیب ، ما الگوریتم تقویت کننده AdaBoost را مطالعه کردیم و همچنین مثال هایی از AdaBoost را با هم دیدیم و کاربرد های فرآیند Adaboos را یاد گرفتیم. امیدوارم این مطلب آموزشی به درک شما از مفهوم Adaboost کمک کند. علاوه بر این ، اگر سوالی دارید ، در قسمت نظرات بپرسید.

بیشتر بخوانید :

درباره‌ی امیر اقتدائی

همچنین ببینید

بهترین ابزار های هوش مصنوعی 2021

بهترین ابزارهای هوش مصنوعی در سال ۲۰۲۱

به دنبال بهترین ابزارهای هوش مصنوعی سال ۲۰۲۱ هستید ؟ این حوزه یک بخش عظیم …

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

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