یادگیری عمیق چیه
جواب کوتاه
یادگیری عمیق یعنی یادگیری ماشین با شبکههای عصبی چندلایه؛ «عمیق» یعنی لایههای زیاد، از سه تا هزاران. فرق بزرگش با روشهای قبلی اینه که ویژگیها رو خودش از دادهی خام پیدا میکنه؛ قبلا یه آدم باید مینشست و مینوشت مدل به چی نگاه کنه. ایدههاش قدیمی بودن، ولی دههی ۲۰۱۰ با کارتهای گرافیک که هزاران حساب رو همزمان انجام میدن، یهو ترکید. امروز پشت بینایی ماشین، تشخیص گفتار، ترجمه و زبانه. ولی ساختن یه شبکهی عمیق آسونه و آموزش دادنش سخت؛ این ایستگاه دربارهی ترفندهاییه که این آموزش رو ممکن میکنن.
دو تا راه
میخوایم کامپیوتر از روی عکس بفهمه گربهست یا نه. دو تا راه داریم:
راه قدیمی: یه آدم میشینه و فکر میکنه گربه رو از چی میشه شناخت؛ گوش تیز؟ سبیل؟ بعد اینها رو به عدد تبدیل میکنه و میده به یه مدل ساده. به این کار گفتیم مهندسی ویژگی. برای جدول خوبه، ولی برای عکس خیلی سخته.
راه تازه: خود نقطههای عکس رو میدیم به یه شبکهی عصبی چندلایه، و لایهها خودشون یاد میگیرن دنبال چی بگردن. به این میگن یادگیری عمیق؛ «عمیق» چون لایهها زیادن، از سه تا صدها و حتی هزاران.
چرا حالا؟
جالبه که بیشتر تیکههاش قدیمیان. ReLU مال ۱۹۶۹ هست، پسانتشار دههی ۱۹۷۰ و ۱۹۸۰. پس چرا یهو دههی ۲۰۱۰ همهجا رو گرفت؟
بیشترش به خاطر سختافزار بود، مخصوصا کارت گرافیک. کارت گرافیک برای بازی و تصویر ساخته شده بود و صدها تا هزاران واحد حساب داره که با هم کار میکنن. همون چیزی که شبکههای عصبی لازم دارن: کلی ضرب ماتریس همزمان.
نقطهی عطفش سال ۲۰۱۲ بود: یه شبکهی عمیق یه مسابقهی بزرگ تشخیص عکس رو با فاصلهی زیادی از روشهای قدیمی برد. از اون به بعد، همهچی عوض شد.
کجاها
امروز یادگیری عمیق پشت خیلی چیزهاست:
- بینایی ماشین: شناختن چیزها توی عکس، و تحلیل عکسهای پزشکی.
- گفتار: تبدیل صدا به متن.
- زبان: فهمیدن متن و ترجمه؛ همون چیزی که مدلهای زبانی بزرگ روش ساخته شدن.
- علم: زیستشناسی، طراحی دارو و آبوهوا.
- بازی: بازیهای تختهای.
توی بعضی از این کارها، نتیجهاش همسطح متخصصهای آدم و گاهی حتی بهتر بوده.
نقشهی این ایستگاه
یه شبکهی عمیق رو ساختن آسونه: فقط لایه روی لایه. ولی آموزش دادنش سخته؛ ممکنه اصلا یاد نگیره، خیلی کند یاد بگیره، یا حفظ کنه. این ایستگاه هشت تا ترفند داره که فرق شبکهای که یاد میگیره با شبکهای که نه رو میسازن:
- دستهی کوچیک: جای همهی داده، با چند مثال قدم بردار.
- بهینهسازها: قدمهای زرنگتر از گرادیان کاهشی ساده.
- وزن اولیه: از کجا شروع کنیم.
- محو گرادیان: چرا سهمها توی راه برگشت گم میشن.
- نرمالسازی: هممقیاس نگه داشتن عددهای وسط شبکه.
- دراپاوت: خاموش کردن تصادفی نورونها تا شبکه حفظ نکنه.
- توقف زود: کِی آموزش رو بس کنیم.
- یادگیری انتقالی: استفاده از شبکهای که قبلا یاد گرفته.
چی لازم داره
یادگیری عمیق کار رو از مهندسی ویژگی راحت کرد، ولی مجانی نیست. معمولا دادهی زیاد میخواد، حساب زیاد میخواد، و هنوز یه سری چیزها رو باید با دست تنظیم کرد، مثل تعداد لایهها و اندازهشون، که ابرپارامترن.
برای همین برای یه جدول کوچیک، اغلب همون الگوریتمهای کلاسیک بهترن. یادگیری عمیق جایی میدرخشه که داده خام و زیاده: عکس، صدا، متن.
اولین ترفند رو درس بعد میبینیم: گرادیان کاهشی تصادفی و دستهی کوچیک.
جمعبندی. آنچه از این درس با خودتان میبرید.
- شبکهی عصبی با لایههای زیاد.
- ویژگیها رو خودش پیدا میکنه.
- کارت گرافیک دههی ۲۰۱۰ ترکوندش.
- بینایی، گفتار، زبان، ترجمه.
- آموزشش سخته؛ ترفند لازم داره.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.