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

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

دراپ‌اوت

جواب کوتاه

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

تیم بی‌ستاره

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

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

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

چطور کار می‌کنه

هر قدم آموزش، برای هر نورون یه سکه می‌اندازیم: یا می‌مونه، یا خاموش می‌شه. خاموش‌ها با همه‌ی اتصال‌هاشون، اون قدم از شبکه بیرون می‌رن:

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

برای نورون‌های ورودی، احتمال موندن رو خیلی بیشتر می‌ذارن؛ چون اگه یه ورودی خاموش بشه، اون اطلاعات مستقیم گم می‌شه.

چرا حفظ کردن کم می‌شه

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

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

هزاران شبکه با هم

یه جور دیگه هم می‌شه بهش نگاه کرد. هر قدم، یه شبکه‌ی متفاوت آموزش می‌بینه:

قدم ۱: یه شبکه‌ی کوچیک دیگه
قدم ۲: یه شبکه‌ی کوچیک دیگه
قدم ۳: یه شبکه‌ی کوچیک دیگه

با فقط ده تا نورون، ۱۰۲۴ جور می‌شه بعضی‌ها رو خاموش کرد؛ با هزاران نورون، عددش نجومیه. پس انگار شبکه‌های کوچیک بی‌شماری با هم آموزش دیدن که وزن‌هاشون رو با هم شریکن. یادتونه توی جنگل تصادفی رأی چند تا مدل از یه مدل بهتر بود؟ اینجا هم یه همچین اثری داریم، بی اینکه واقعا چند تا شبکه‌ی جدا بسازیم.

موقع استفاده

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

راه‌حلش ساده‌ست: موقع استفاده، خروجی هر نورون رو در همون احتمال موندن (اینجا ۰٫۵) ضرب می‌کنن، تا اندازه‌ها مثل موقع آموزش بمونه. این کار تقریبا مثل اینه که از همه‌ی اون شبکه‌های کوچیک میانگین گرفته باشیم.

اسم دراپ‌اوت سال ۲۰۱۲ مطرح شد و مقاله‌ی اصلیش ۲۰۱۴ اومد. یادتونه گفتیم نرمال‌سازی دسته‌ای نیاز به دراپ‌اوت رو کمتر می‌کنه؟ پس همیشه هم لازم نیست. درس بعد یه راه خیلی ساده‌تر برای جلوگیری از حفظ کردن: توقف زودهنگام.

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

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

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

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

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

۱۵ پرسش

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

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

درس بعد