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