Проблеми з розпадністю
Логічно було б вважати, що послідовне укладання більшої кількості шарів на нейронну мережу ніколи не повинно погіршувати її, оскільки глибша мережа завжди може наслідувати меншу за допомогою того, щоб додаткові шари навчилися функції ідентичності. Однак дослідники виявили протилежне: коли прості мережі ставали глибшими, точна відповіді покращувалися, потім стабілізувалися, а потім знову погіршувалися — навіть на навчальному наборі даних, не лише на невідомих даних. Це виключило перенавчання як причину та вказувало на щось більш фундаментальне: глибокі мережі просто важко оптимізувати, оскільки градієнти та сигнали боролися з проходженням чисто через десятки шарів.
Вивчення залишку, а не цілої відображення
Виправлення, запропоноване Хе та співамисниками, полягало в зміні того, що кожен блок шарів має вивчати. Замість того, щоб змушувати стовп від стовпчика безпосередньо вивчати повне бажане відображення H(x), блочні залишки дозволяють їм вивчати лише залишок F(x) = H(x) − x, а пропускний зв’язок переносить початковий вхід x вперед і додає його назад. Вихід стає F(x) + x, тому якщо ідеальна трансформація для блоку близька до нічого, шари просто потрібно штовхнути F(x) до нуля — набагато легша ціль, ніж відновлювати ідентифікаційне відображення з нуля за допомогою нелінійних шарів.
Чому коротшини полегшують оптимізацію
Реальна вигода від з’єднань залишків проявляється під час зворотного поширення. Оскільки з’єднувальне з’єднання забезпечує прямий, неперешкодний шлях від вихідних даних назад до вхідних даних, градієнти можуть проходити через нього без повторного множення на невеликі похідні шарів ваги на кожному кроці — це основне джерело проблеми зникаючого градієнту у дуже глибоких мережах. Це означає, що навіть найраніші шари мережі в 100+ шарах продовжують отримувати сильні та змістовні сигнали градієнту, тому всю структуру можна ефективно навчати за допомогою звичайного градієнтного спуску замість того, щоб вона застрягала або розходилася.
Від зображень ImageNet до скрізь
Вплив ResNet був миттєвим і драматичним: він виграв 2015 рік у конкурсі Large Scale Visual Recognition Challenge з великими зображеннями, використовуючи мережі, що досягали 152 шарів, набагато глибше, ніж будь-яка мережа, яка раніше була успішно навчена, і зменшив помилку топ-5 до рівня, який перевершував показники людей у цьому завданні. Але ця ідея вийшла за межі класифікації зображень — залишкові з’єднання тепер є стандартним архітектурним компонентом у трансформаторах (включаючи кожен шар моделей, що стоять за сучасними мовними та зоровими системами штучного інтелекту), мовних моделях і мережах навчання з підкріпленням, де завгодно інженери потребують надійно навчати дуже глибокі системи.
Frequently asked questions
Чи роблять залишкові з’єднання мережу потужнішою, чи просто легшою для навчання?
В основному, лише останнє. Проста глибока мережа теоретично може представляти ті ж функції, що й мережа із залишковими з’єднаннями, оскільки залишковий блок стискається до ідентичної функцій, коли F(x) дорівнює нулю. Реальна перевага залишкових з’єднань – це оптимізація: вони значно полегшують градієнтному спуску пошук хороших рішень у дуже глибоких мережах, що пояснює надійну перевагу глибших ResNet-ів над простими їхніми аналогами в практиці.
Чи є залишкові з’єднання такими самими, як skip connections у U-Net?
Вони пов'язані, але не ідентичні. Обидва передають інформацію між шарами без трансформації, але класичні залишові з’єднання додають вхід до виходу блоку (F(x) + x), тоді як skip connections у стилі U-Net зазвичай конкатенують ознаки з енкодерського шару із відповідним декодерським шаром. Обидва вирішують загальну проблему збереження інформації та потоку градієнта на глибині, просто з різними механізмами.
Чому додавання x назад допомагає замість того, щоб просто використовувати меншу мережу?
Менша мережа обмежена тим, що вона може представляти, а мережа із залишковими з’єднаннями зберігає повну ємність додаткових шарів, якщо потрібно, але робить дешевим внесок цих шарів, коли вони не корисні. Це дозволяє мережі ефективно навчитися, наскільки корисною є додаткова трансформація на кожній глибині, замість того, щоб зобов’язатися фіксованим розмірам заздалегідь.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Residual Connections: Why Deep Networks Need Shortcuts і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Residual Connections: Why Deep Networks Need Shortcuts