ResNet
Оновлено: 31.07.2023
Останніми роками відбулася низка подій у галузі комп'ютерного зору. Ми отримуємо дуже багатообіцяючі результати в таких завданнях, як розпізнавання або класифікація зображень, зокрема, завдяки впровадженню глибоких згорткових нейронних мереж.
Як наслідок, для виконання таких складних завдань і підвищення точності розпізнавання дослідники прагнуть будувати більш глибокі нейронні мережі, додаючи з часом все більше шарів. Щоб підвищити точність і продуктивність, потрібно додавати додаткові шари. Ідея додавання додаткових шарів полягає в тому, що з часом ці шари будуть вивчати все більш складні функції.
Однак, коли ми додаємо більше шарів до нейромережі, навчати її стає складніше, а точність починає насичуватися і, зрештою, знижуватися.
Існує багато підходів до вирішення проблеми зникаючого градієнта, наприклад, додавання додаткового контролю у вигляді допоміжних втрат, але жоден з них, здається, не вирішує проблему повністю.
Нейронна мережа ResNet приходить на допомогу і допомагає у вирішенні цього питання.
Що таке ResNet?
Залишкова мережа (ResNet) була вперше представлена в статті "Глибоке залишкове навчання для розпізнавання зображень".
- Основна ідея ResNet полягає у створенні "ярлика ідентичності", який пропускає один або декілька шарів.
Поява ResNet або залишкових мереж, які складаються із залишкових блоків, полегшила завдання навчання дуже глибоких мереж.
Перше, що ми помічаємо, це прямий зв'язок, який оминає кілька рівнів між ними. Ядром залишкових блоків є зв'язок, відомий як "пропускний зв'язок".
Вихід шару вже не такий, як раніше, через цей пропускний зв'язок. Без цього зв'язку вхідні дані 'x' множаться на ваги шару, а потім додається член зсуву.
Потім до цього доданка застосовується функція активації f(), і результатом є H(x). Результат змінився після введення з'єднання з пропуском.
Коли розміри входу і виходу відрізняються, що може статися при згортці та об'єднанні шарів, цей підхід, здається, має незначні проблеми. Коли розмірність f(x) відрізняється від x, ми можемо вибрати один з двох підходів:
- Для збільшення розміру з'єднання пропуску заповнюється додатковими нульовими записами.
- Для узгодження розміру використовується проекційний підхід, який передбачає додавання шарів 1×1 до вхідних даних.
На думку авторів, накладання шарів не повинно впливати на продуктивність мережі, оскільки ми можемо просто накласти відображення ідентичності - шар, який не впливає на поточну мережу - і результуюча архітектура буде працювати аналогічно.
Як наслідок, модель ResNet не повинна мати більшу похибку навчання, ніж її більш дрібні еквіваленти. Вони вважають, що простіше дозволити шару, що накладається, відповідати залишковому відображенню, а не бажаному базовому відображенню. І залишковий блок вище явно дозволяє це зробити.
Автори вдосконалили залишковий блок і запропонували варіацію попередньої активації залишкового блоку, в якій градієнти можуть вільно перетікати через швидкі посилання до будь-якого попереднього шару.
Важливість ResNet
Пропускні зв'язки ResNet полегшують проблему зникнення градієнтів у глибоких нейронних мережах, дозволяючи градієнту проходити через додатковий короткий канал. Ці зв'язки також допомагають моделі, дозволяючи їй вивчати функції ідентичності, гарантуючи, що вищий рівень працює принаймні так само добре, як нижчий, якщо не краще.
Припустимо, у нас є тонка і глибока мережі, які використовують функцію H для відображення вхідних даних "x" у вихідні дані "y" (x). Ми хочемо, щоб глибока мережа працювала принаймні так само добре, як і тонка, без погіршення продуктивності, як ми бачили у звичайних нейронних мережах - без залишкових блоків.
Один з підходів до досягнення цього полягає в тому, що додаткові шари в глибокій мережі вивчають функцію ідентичності, і таким чином їх вихід дорівнює входу, запобігаючи погіршенню продуктивності навіть з додатковими шарами.
В оптимістичному варіанті, додаткові шари глибокої нейронної мережі можуть більш точно апроксимувати відображення вхідних даних "x" до вихідних даних "y", ніж її дрібніший еквівалент, що значно зменшує похибку. В результаті, ми очікуємо, що ResNet буде працювати так само, як і традиційні глибокі нейронні мережі, або навіть краще.
- Глибоке навчання ResNetшвидко стало одним з найвідоміших рішень для багатьох проблем комп'ютерного зору завдяки своїм вражаючим результатам.