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

درس ۳۱ از ۹۹، هوش مصنوعی، حدود ۷ دقیقه خواندن

نرخ یادگیری: اندازه‌ی قدم

جواب کوتاه

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

سه نفر، سه کاسه

سه نفر می‌خوان برسن ته سه تا کاسه‌ی بزرگ. همه از یه جا شروع می‌کنن و همه شیب رو درست حس می‌کنن. فرقشون فقط اندازه‌ی قدمه:

اولی مورچه‌وار قدم برمی‌داره و بعد از چند قدم هنوز وسط راهه. دومی با چند قدم معمولی به ته می‌رسه. سومی آنقدر بلند می‌پره که از ته کاسه رد می‌شه و می‌افته اون طرف؛ دوباره می‌پره و برمی‌گرده این طرف.

توی درس گرادیان کاهشی گفتیم هر قدم «یه کم» برعکس گرادیان می‌ریم. به همین «یه کم» می‌گن نرخ یادگیری.

یه عدد ضرب در شیب

قاعده‌ی هر قدم ساده‌ست: اندازه‌ی قدم = نرخ یادگیری ضرب در شیب. جهت رو گرادیان می‌گه، اندازه رو نرخ یادگیری.

مثلا اگه شیب ۱۰ باشه و نرخ یادگیری ۰٫۱، پیچ یه واحد جابه‌جا می‌شه. با نرخ ۰٫۰۱ فقط یه دهم واحد؛ با نرخ ۱، ده واحد. یه چیز قشنگ هم هست: چون شیب نزدیک ته دره کوچیک می‌شه، قدم‌ها خودبه‌خود کوتاه می‌شن، حتی با یه نرخ ثابت.

اسمش هم بی‌دلیل نیست: یه جورایی سرعت یاد گرفتن مدله؛ می‌گه هر مثال تازه، چقدر حرف قبلی مدل رو عوض کنه.

خیلی کوچیک

نرخ یادگیری خیلی کوچیک امن به نظر میاد، ولی دو تا گرفتاری داره. اول، آموزش خیلی طول می‌کشه؛ برای مدل‌های بزرگ، یعنی روزها برق و کارت گرافیک بیشتر. دوم، قدم‌های ریز نمی‌تونن از یه گودی کم‌عمق بیرون بیان؛ مدل توی همون دریاچه‌ی کوهستانی گیر می‌کنه.

خیلی بزرگ

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

یه نشونه‌ی ساده: اگه نمودار خطا حین آموزش به جای پایین اومدن، دندونه‌دندونه یا رو به بالا شد، احتمالا نرخ یادگیری زیاده.

عوض کردنش وسط راه

چرا یه نرخ ثابت؟ اول راه که از ته دره دوریم، قدم بلند خوبه؛ نزدیک ته، قدم کوتاه. برای همین خیلی وقت‌ها نرخ رو حین آموزش عوض می‌کنن:

به این می‌گن «برنامه‌ی نرخ یادگیری»: مثلا هر چند وقت یه بار نصفش کن. یه راه دیگه هم هست که خود روش آموزش، نرخ رو برای هر پیچ جدا و خودکار تنظیم کنه؛ این‌ها رو توی درس بهینه‌سازها می‌بینیم.

چطور انتخابش کنیم

نرخ یادگیری از داده یاد گرفته نمی‌شه؛ یه ابرپارامتره و پیش از آموزش انتخاب می‌شه. راهش امتحان کردنه:

  1. چند تا عدد رو انتخاب کنید، از کوچیک تا بزرگ.
  2. با هر کدوم مدل رو آموزش بدید.
  3. خطا رو روی داده‌ی اعتبارسنجی ببینید و بهترینش رو بردارید.

با این درس ایستگاه «اولین مدل» تموم شد: مدل، خط، تابع هزینه، MSE، گرادیان کاهشی و نرخ یادگیری. یعنی شما الان می‌دونید یه مدل از صفر تا آخر چطور یاد می‌گیره. ایستگاه بعد، دسته‌بندی: وقتی جواب «این یا اون»ه، نه یه عدد.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • نرخ یادگیری: اندازه‌ی قدم.
  • قدم = نرخ ضرب در شیب.
  • خیلی کوچیک: دیر می‌رسه.
  • خیلی بزرگ: از روی جواب می‌پره.
  • اول بزرگ، بعد کوچیک؛ با امتحان انتخاب کن.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد