الگوریتم تقویت گرادیان – روند کار و بهبود آن

الگوریتم تقویت گرادیان

در این سری از خودآموز یادگیری ماشین ، به الگوریتم تقویت گرادیان ( Gradient Boosting ) می پردازیم. همچنین ، تاریخچه و هدف آن را مورد مطالعه قرار می دهیم. علاوه بر این ، مروری خواهیم داشت بر روند کار الگوریتم تقویت گرادیان و در نهایت ، در مورد بهبود الگوریتم تقویت گرادیان بحث خواهیم کرد.

الگوریتم تقویت گرادیان

تقویت گرادیان در یادگیری ماشین چیست؟

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

  • الف) با استفاده از مهندسی ویژگی
  • ب) با اعمال مستقیم الگوریتم های تقویت کننده

الگوریتم های تقویت کننده زیادی وجود دارند ، از جمله :

  • Gradient Boosting
  • XGBoost
  • AdaBoost
  • Gentle Boost و…

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

تاریخچه الگوریتم تقویت کننده

الگوریتم تقویت کننده یکی از قدرتمندترین ایده های یادگیری است که در ۲۰ سال گذشته ارائه شده است. این الگوریتم برای مسائل کلاسه بندی طراحی شده است ، اما می توان از آن برای رگرسیون نیز استفاده کرد. هدف از تقویت گرادیان ایجاد روشی بود که خروجی های چند کلاسه بند ” ضعیف ” را ترکیب کند تا به یک ”  کمیسیون” قدرتمند دست یابد. کلاسه بند ضعیف ( به عنوان مثال درخت تصمیم گیری ) کلاسه بندی است که میزان خطای آن ، تنها از یک حدس تصادفی بهتر باشد.

هدف الگوریتم تقویت کننده

هدف از الگوریتم تقویت کننده، اعمال پی در پی الگوریتم کلاسه بندی ضعیف بر روی نسخه های تغییر یافته داده ها ، در نتیجه تولید دنباله ای از کلاسه بند های ضعیف است. Gm (x) ،  m = 1، ۲،…، M

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

مدلسازی جمعی مرحله ای

تقویت کردن ، یک مدل جمعی ایجاد می کند :

F(x) = \sum_{m=1}^M \beta_m b(x; \gamma_m)

که b(x; \gamma_m)  یک درخت است و  \gamma_m پارامترهای تقسیم را تشکیل می دهد. با تقویت کردن ، پارامترها ، (\beta_m, \gamma_m) به صورت مرحله ای متناسب می شوند. این کار، فرآیند را کُند می کند و با سرعت کمتری بیش برازش می شود.

AdaBoost

AdaBoost ، یک مدل رگرسیون لجستیک اضافی را با برازش مرحله ای می‌سازد. در AdaBoost ، ما از یک تابع ضرر نمایی به فرم L(y, F(x)) = exp(-yF(x)) استفاده می کنیم – ، مانند تابع ضرر log-likelihood دوجمله ای منفی.

الگوریتم تقویت گرادیان

الگوریتم تقویت گرادیان Friedman ، برای یک تابع ضرر عمومی L(y_i, \gamma) :

الگوریتم تقویت گرادیان در یادگیری ماشین

توابع ضرر و گرادیان ها

تعداد بهینه تکرار ها T و نرخ یادگیری λ ، به یکدیگر بستگی دارند.

مطالعه درباره کاربرد های یادگیری ماشین در دنیای واقعی

الگوریتم تقویت گرادیان تصادفی

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

الگوریتم تقویت گرادیان چگونه کار می کند؟

الگوریتم تقویت گرادیان شامل سه عنصر است :

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

الف. تابع ضرر

  • تابع ضرر مورد استفاده به نوع مسئله ای که می خواهید حل کنید بستگی دارد.
  • باید مشتق پذیر باشد. با این حال، بسیاری از توابع ضرر استاندارد پشتیبانی می شوند و شما می توانید خودتان تعریف کنید

ب. یادگیرنده ضعیف

  • ما در الگوریتم تقویت گرادیان، از درختان تصمیم گیری به عنوان یادگیرنده ضعیف استفاده می کنیم.
  • به طور خاص ، ما از درخت رگرسیون استفاده می کنیم که برای تقسیم ها، مقادیر واقعی تولید می کند. و خروجی آن را می توان با هم جمع کرد. این اجازه می دهد تا خروجی مدل های بعدی اضافه شده و باقیمانده در پیش بینی ها اصلاح شوند.
  • درختان تصمیم، باید به روشی حریصانه رشد کنند. این کار، به انتخاب بهترین نقاط تقسیم بر اساس امتیازات خلوص مانند جینی ( Gini ) یا کاهش ضرر کمک می کند.
  • در ابتدا ، مانند مورد AdaBoost است. همچنین ، ما از درختان تصمیم بسیار کوتاهی استفاده می کنیم که فقط دارای یک تقسیم واحد هستند و اصطلاحاً آن ها را stump می نامند.
  • به طور کلی ، ما از درختان بزرگتر با ۴ تا ۸ سطح استفاده می کنیم.
  • معمولاً روش های خاصی، قید هایی را برای یادگیرنده های ضعیف درنظر می گیرند. مانند حداکثر تعداد لایه ها ، گره ها ، انشعاب ها یا گره های برگ.
  • این کار، به منظور اطمینان از ضعیف ماندن یادگیرنده هاست ، اما هنوز هم می توانند به شیوه ای حریصانه رشد کنند.

ج. مدل اضافی

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

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

بهبود الگوریتم تقویت گرادیان پایه

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

  • محدودیت های درخت
  • جمع شدگی
  • نمونه برداری تصادفی
  • یادگیری جریمه شده

الف. محدودیت های درخت

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

ب. بروزرسانی های وزن دار

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

ج. الگوریتم تقویت گرادیان تصادفی

  • بینشی بزرگ در مورد Bagging ترکیبی. همچنین ، جنگل تصادفی اجازه می داد تا درختان رشد کنند.
  • از همین مزیت می توان برای کاهش همبستگی بین درختان استفاده کرد.
  • این تغییر در تقویت ، تقویت گرادیان تصادفی نامیده می شود.

د. الگوریتم تقویت گرادیان جریمه شده

ما می توانیم محدودیت های بیشتری را برای درختان پارامتری شده اعمال کنیم.

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

بدین ترتیب ، مقادیر وزن برگ درختان باید منظم شود. برای این منظور ، از توابعی نظیر توابع منظم سازی زیر استفاده می شود:

  • منظم سازی L1 وزن ها.
  • منظم سازی L2 وزن ها.

نتیجه گیری

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

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

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

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

آیا می خواهید در زمینه یادگیری ماشین استخدام شوید؟

آیا می خواهید در زمینه یادگیری ماشین استخدام شوید؟

مسیر های شغلی زیادی در حوزه یادگیری ماشین وجود دارد، اما از کجا بفهمیم که …

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

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