تقویت گرادیانی
جواب کوتاه
تقویت گرادیانی یعنی درختهای تصمیم کوچیک رو پشت سر هم بسازیم و هر درخت تازه فقط اشتباهی رو یاد بگیره که درختهای قبلی جا گذاشتن. اول یه حدس ساده میزنیم، مثلا میانگین. بعد درخت اول یاد میگیره این حدس کجا چقدر اشتباهه و درستش میکنه، درخت دوم اشتباه باقیمونده رو، و همینطور. مثل تیلهبازی که هر ضربه از جایی که تیله وایساده، فاصلهی مونده تا چاله رو کم میکنه. هر درخت فقط یه کم (به اندازهی نرخ یادگیری) جواب رو جابهجا میکنه، و تعداد درختها رو با دادهی اعتبارسنجی انتخاب میکنن تا بیشبرازش نکنه. با درخت، معمولا از جنگل تصادفی هم بهتر کار میکنه.
تیلهبازی
تیلهبازی کردید؟ تیله رو میزنید که بره توی چاله. ضربهی اول معمولا نزدیکش میکنه، ولی دقیق نمیره تو.
ضربهی دوم رو از همونجایی میزنید که تیله وایساده، و فقط فاصلهی باقیمونده رو درست میکنید. ضربهی سوم کوچیکتر، چهارم کوچیکتر. هیچکدوم کار رو تنها تموم نمیکنه، ولی با هم میرسن.
تقویت گرادیانی همین کار رو با درختهای تصمیم میکنه. هر درخت تازه، فقط اشتباهی رو درست میکنه که قبلیها جا گذاشتن.
حدس، اشتباه، درخت بعدی
فرض کنید میخوایم قیمت سه تا خونه رو حدس بزنیم. قدمها رو با هم ببینیم:
- اول یه حدس خیلی ساده میزنیم: میانگین همه، یعنی ۱۲۰، برای همهی خونهها.
- میبینیم کجا چقدر اشتباه کردیم: خونهی الف باید ۳۰ کمتر باشه، خونهی پ ۳۰ بیشتر.
- درخت اول رو جای قیمت، روی همین اشتباهها آموزش میدیم. کامل نمیگیرتشون، ولی میگه «الف حدود ۲۰ کمتر، پ حدود ۲۰ بیشتر».
- حرفش رو به حدس اضافه میکنیم: حالا ۱۰۰ و ۱۲۰ و ۱۴۰. اشتباه از ۳۰ رسید به ۱۰.
- درخت دوم روی اشتباههای تازه آموزش میبینه، و همینطور ادامه میدیم. بعد از درخت دوم، اشتباه شد ۲.
درختهای کوچیک
آخرش جواب مدل یه جمع سادهست:
جالبش اینه که هر کدوم از این درختها عمدا کوچیکن؛ چند تا سوال بیشتر نمیپرسن. به تنهایی یه مدل ضعیفن. ولی صدها درخت ضعیف که هر کدوم یه کم از اشتباه رو برمیدارن، با هم یه مدل خیلی قوی میسازن. اسم «تقویت» هم از همینجاست: ضعیفها رو کنار هم میذاره تا قوی بشن.
فرقش با جنگل تصادفی همینجاست. توی جنگل، درختها جدا از هم و همزمان ساخته میشن و رأی میدن. اینجا پشت سر هم ساخته میشن و هر کدوم به کار قبلیها نگاه میکنه.
قدمهای کوچیک
توی جدول، حرف هر درخت رو کامل به حدس اضافه کردیم. ولی معمولا فقط یه تیکهش رو اضافه میکنن، مثلا یک دهمش. به این عدد میگن نرخ یادگیری:
با نرخ کوچیک، درختهای خیلی بیشتری لازمه؛ ولی دیدن که نرخهای کوچیک، مثلا کمتر از ۰٫۱، مدل رو روی دادهی تازه خیلی بهتر میکنن. مثل تیله که با چند ضربهی آروم، کمتر از چاله رد میشه.
چرا «گرادیانی»؟
یادتونه گرادیان کاهشی رو؟ هر قدم به سمت سراشیبی تابع خطا میرفتیم. اینجا هم همینه: وقتی خطا رو با میانگین مربع خطا میسنجیم، اون اشتباههایی که درختها یاد میگیرن، دقیقا همون جهت سراشیبیان.
پس هر درخت یه قدم گرادیان کاهشیه. فقط جای اینکه وزنها رو جابهجا کنه، خود جوابها رو جابهجا میکنه. اسمش هم از همین اومده.
کِی بس کنیم؟
هر درخت تازه، خطای آموزش رو یه کم دیگه کم میکنه. ولی اگه بیحساب ادامه بدیم، درختها شروع میکنن به یاد گرفتن نویز:
خطای آموزش همینطور پایین میره، ولی خطای دادهی ندیده از یه جایی به بعد بالا میره؛ یعنی بیشبرازش. برای همین تعداد درختها رو با یه دادهی اعتبارسنجی جدا انتخاب میکنن و همونجا که خطاش کمترینه، بس میکنن. عمق هر درخت هم همینطور: درخت عمیقتر، خطر بیشبرازش بیشتر.
این برخلاف جنگل تصادفیه، که درخت بیشتر معمولا ضرری نداشت. پس اینجا تعداد درخت، نرخ یادگیری و عمق، سه تا ابرپارامتر مهمن.
چند نکته
- معمولا خیلی دقیق: با درخت، معمولا از جنگل تصادفی هم بهتر کار میکنه؛ ولی تنظیم کردنش دقت بیشتری میخواد.
- خوندنش سخته: مثل جنگل، صدها درخت رو نمیشه مثل یه درخت خوند و گفت چرا این جواب رو داد.
- کجاها؟ مثلا برای مرتب کردن نتیجههای موتورهای جستوجو، و حتی برای دادههای فیزیک ذرات.
- از کِی؟ الگوریتمهای اصلیش سال ۱۹۹۹ و ۲۰۰۱ نوشته شدن.
درس بعد یه ایدهی کاملا متفاوت برای جدا کردن دو دستهست: کشیدن مرزی که بیشترین فاصله رو از هر دو دسته داشته باشه؛ ماشین بردار پشتیبان.
جمعبندی. آنچه از این درس با خودتان میبرید.
- اول یه حدس ساده، مثلا میانگین.
- هر درخت، اشتباه باقیمونده رو یاد میگیره.
- درختها پشت سر هم، نه همزمان.
- نرخ یادگیری کوچیک: قدم کوچیک، نتیجهی بهتر.
- تعداد درخت با دادهی اعتبارسنجی.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.