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

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

گرادیان کاهشی: پایین رفتن از دره‌ی خطا

جواب کوتاه

گرادیان کاهشی یعنی برای کم کردن خطای مدل، قدم به قدم برعکس گرادیان بریم. مثل کسی که توی کوه توی مه گیر افتاده: راه رو نمی‌بینه، ولی شیب زیر پاش رو حس می‌کنه و یه قدم به طرف سرازیری برمی‌داره، بعد دوباره. مدل هم همین کار رو با پیچ‌هاش می‌کنه: گرادیان خطا رو حساب می‌کنه، هر پیچ رو یه کم برعکسش می‌چرخونه، و تکرار می‌کنه تا زمین صاف بشه. هر چی به ته دره نزدیک‌تر، قدم‌ها کوتاه‌تر می‌شن. ممکنه توی یه چاله‌ی کم‌عمق گیر کنه، و اندازه‌ی قدم خیلی مهمه. این روش رو کوشی سال ۱۸۴۷ پیشنهاد داد.

گم شدن توی مه

فرض کنید توی کوه هستید و مه غلیظ همه‌جا رو گرفته؛ دو متر جلوتر رو هم نمی‌بینید. می‌خواید برگردید پایین. چه کار می‌کنید؟

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

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

چهار قدم

  1. پیچ‌های مدل رو از یه جایی شروع کنید؛ حتی تصادفی.
  2. خطا رو حساب کنید و گرادیانش رو، یعنی برای هر پیچ، شیب خطا نسبت به اون پیچ.
  3. هر پیچ رو یه کم برعکس شیبش بچرخونید: اگه شیب مثبته کمش کنید، اگه منفیه زیادش.
  4. برگردید سر قدم ۲، تا وقتی که خطا دیگه کمتر نشه.

چرا برعکس؟ چون گرادیان رو به تندترین سربالاییه. اگه هم‌جهتش بریم، به قله می‌رسیم، که اسمش می‌شه «گرادیان افزایشی»؛ ولی ما ته دره رو می‌خوایم.

خط جا میفته

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

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

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

دریاچه‌ی کوهستانی

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

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

اندازه‌ی قدم

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

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

از کوشی تا امروز

این روش خیلی قدیمیه. کوشی، ریاضی‌دان فرانسوی، سال ۱۸۴۷ پیشنهادش داد؛ آدامار سال ۱۹۰۷ جدا یه روش شبیه گفت؛ و کاری سال ۱۹۴۴ بررسی کرد کی واقعا به جواب می‌رسه.

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

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

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

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

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

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

۱۵ پرسش

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

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

درس بعد