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