اتصال باقیمانده (Residual)
جواب کوتاه
اتصال باقیمانده یعنی ورودی هر بخش، دستنخورده، به خروجی همون بخش اضافه بشه؛ یعنی خروجی میشه x بهعلاوهی f(x). پس هر بخش لازم نیست همهچی رو از نو بسازه، فقط یه تغییر به ورودی اضافه میکنه؛ اگه چیزی برای اضافه کردن نداشته باشه، کافیه تغییرش صفر باشه. این ایده سال ۲۰۱۵ معرفی شد، وقتی دیدن شبکههای عمیقتر حتی روی دادهی آموزش بدتر میشدن؛ با میانبر، شبکهی ۱۵۲ لایه آموزش دید. موقع یادگیری هم سیگنال خطا از راه میانبر بیتغییر برمیگرده و کمرنگ نمیشه. توی ترنسفورمر، دور هر توجه و هر پیشخور یه میانبر هست، و بردار هر کلمه مثل یه جادهی اصلیه که هر بخش ازش میخونه و چیزی بهش اضافه میکنه.
یعنی چی
ویراستار کل متن رو از نو نمینویسه؛ فقط کنارش اصلاح میذاره.
فرض کنید یه متن رو میدید به ویراستار. اگه مجبور باشه هر بار کل متن رو از اول بنویسه، هم کار سختیه، هم ممکنه چیزهای خوب متن گم بشن. ولی اگه متن اصلی سر جاش بمونه و ویراستار فقط اصلاحها رو اضافه کنه، کار خیلی راحتتره. توی درس بلوک ترنسفورمر اون خطچینهای دور هر بخش رو دیدیم؛ اونها همین کار رو میکنن.
مشکل عمق
پیش از ۲۰۱۵، همه فکر میکردن شبکهی عمیقتر یعنی شبکهی بهتر. ولی یه پژوهش ۲۰۱۵ یه چیز عجیب دید: یه شبکهی ۵۶ لایه حتی روی همون دادهای که باهاش آموزش دیده بود، از یه شبکهی ۲۰ لایه بدتر بود. یعنی مشکل این نبود که چیزی رو حفظ کرده بود؛ اصلا نمیتونست درست یاد بگیره. این عجیبه، چون اون ۳۶ لایهی اضافه میتونستن هیچ کاری نکنن و ورودی رو همونطور رد کنن. ولی یاد گرفتن «هیچ کاری نکن» برای یه لایه خیلی سخت بود.
میانبر
راهحل همون پژوهش این بود: ورودی رو از کنار بخش رد کن و به خروجیش اضافه کن. حالا بخش لازم نیست کل جواب رو بسازه؛ فقط باید «باقیمانده» رو بسازه، یعنی فرق جواب با ورودی. اسم «باقیمانده» از همینه. اگه بهترین کار این باشه که هیچ تغییری نده، کافیه خروجیش صفر بشه، که خیلی راحتتر از کپی کردن دقیق ورودیه. این میانبر هیچ وزن اضافهای هم نداره؛ فقط یه جمع سادهست. با همین، اون پژوهش یه شبکهی ۱۵۲ لایه رو آموزش داد.
با عدد
با عددهای ساختگی: فرض کنید ورودی دو تا عدد داره، ۲ و ۱. بخش یه تغییر کوچیک پیشنهاد میده، ۰٫۱ و منفی ۰٫۲. جمعشون میشه ۲٫۱ و ۰٫۸؛ یعنی ورودی یه کم اصلاح شد، ولی گم نشد. حالا اگه بخش هیچ چیز به درد بخوری پیدا نکنه و صفر بده، خروجی دقیقا همون ۲ و ۱ میمونه. پس یه لایهی بیکار ضرری نمیزنه؛ ورودی سالم از کنارش رد میشه.
راه برگشت
یه دلیل دیگه هم هست. موقع آموزش، سیگنال خطا از آخر شبکه به اول برمیگرده تا وزنها اصلاح بشن؛ همون پسانتشار. توی شبکهی خیلی عمیق، این سیگنال از هر لایه که رد میشه یه کم ضعیفتر میشه، تا جایی که به لایههای اول تقریبا هیچی نمیرسه؛ درس محو گرادیان همینه. میانبر یه راه برگشت مستقیم میسازه که سیگنال ازش بیتغییر رد میشه. پس لایههای اول هم پیام خطا رو سالم میگیرن و یاد میگیرن.
جادهی اصلی
توی ترنسفورمر، دور هر توجه و هر پیشخور یه میانبر هست. پس اگه از بالا نگاه کنید، بردار هر کلمه مثل یه جادهی اصلیه که از اول تا آخر مدل میره. هر بخش از این جاده میخونه، کارش رو میکنه، و نتیجه رو دوباره به جاده اضافه میکنه. یه پژوهش ۲۰۲۱ اسم این جاده رو «جریان باقیمانده» گذاشت، و این نگاه برای فهمیدن اینکه داخل مدل چی میگذره خیلی به کار اومد؛ درس داخل جعبه سراغش میره.
یه عالمه راه
میانبر یه اثر جالب دیگه هم داره که سال ۲۰۱۶ یه پژوهش نشونش داد: شبکه دیگه یه راه نیست.
هر بلوک دو راه جلوی ورودی میذاره: یا از خود بلوک رد شو، یا از میانبرش. با سه بلوک، هر جا دو انتخاب داری، پس ۲ ضرب در ۲ ضرب در ۲، یعنی ۸ راه از ورودی به خروجی هست؛ یکی از هر سه بلوک رد میشه، یکی از هیچکدوم، بقیه یه چیزی وسط. با ۵۴ بلوک، تعداد راهها ۲ به توان ۵۴ میشه، یه عدد نجومی. اون پژوهش دید توی یه شبکهی ۱۱۰ لایه، بیشتر سیگنال یادگیری از راههای کوتاه میاد، که فقط از ۱۰ تا ۳۴ لایه رد میشن، و راههای خیلی بلند تقریبا هیچ سهمی ندارن. یعنی شبکهی خیلی عمیق با میانبر، بیشتر مثل یه گروه از شبکههای کمعمقتره که با هم کار میکنن.
یه لایه رو بردار
همون پژوهش یه آزمایش ساده و جالب هم کرد: بعد از آموزش، یه لایه رو کلا برداشت.
توی یه شبکهی معمولی بی میانبر، با ۱۵ لایه، برداشتن هر کدوم از لایهها کار رو کامل خراب کرد و جوابها در حد حدس تصادفی شد؛ چون داده فقط یه راه داشت و اون راه قطع شد. ولی توی شبکهی با میانبر، برداشتن یه بلوک تکی فقط یه کم نتیجه رو بدتر کرد؛ چون داده هنوز از میانبر رد میشد و فقط نصف راهها، که بیشترشون راههای بلند بودن، از بین رفت. اینها شبکههای تشخیص تصویر بودن، نه ترنسفورمر؛ ولی همون میانبرها دور هر بخش ترنسفورمر هم هست.
چند نکته
- میانبر هیچ وزنی نداره. فقط یه جمع.
- برای جمع، ورودی و خروجی باید هماندازه باشن.
- این ایده اول برای عکسها ساخته شد؛ درس شبکههای خیلی عمیق.
- دور هر توجه و هر پیشخور، یه میانبر.
اون «نرمال» که بعد از هر جمع میاومد چی بود؟ درس بعد: نرمالسازی لایه (Layer norm).
جمعبندی. آنچه از این درس با خودتان میبرید.
- خروجی = ورودی + تغییر.
- هر بخش فقط تغییر رو یاد میگیره.
- تغییر صفر، یعنی بی ضرر.
- خطا از میانبر سالم برمیگرده.
- بردار کلمه، جادهی اصلی.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.