Глибоке навчання та сучасні архітектури ШІ
Згорткові нейронні мережі
Анатомія згортки
В основі згорткових нейронних мереж лежить операція згортки. Уявіть, що зображення — це сітка з чисел, де кожне число представляє яскравість пікселя. Згортка бере невелику матрицю, яку називають або ядром, і «просуває» її по всьому зображенню.
На кожній позиції фільтр виконує поелементне множення з частиною зображення, яку він покриває, а потім підсумовує результати в одне число. Це число стає пікселем у новій, «згорнутій» карті ознак. По суті, фільтр шукає певні патерни — наприклад, вертикальні лінії, краї або конкретні текстури. Різні фільтри шукають різні патерни.
Математично, для зображення та ядра , згортка в точці обчислюється як сума добутків елементів ядра на відповідні елементи зображення.
Керування розміром
Під час згортки розмір карти ознак зменшується. Щоб керувати цим процесом, використовують два ключових гіперпараметри: крок (stride) та доповнення (padding).
Stride — це крок, з яким фільтр переміщується по зображенню. Stride 1 означає, що фільтр рухається на один піксель за раз. Stride 2 означає, що він перестрибує через один піксель. Більший крок призводить до меншої карти ознак.
Padding — це додавання додаткових пікселів (зазвичай нулів) по краях зображення. Це дозволяє фільтру обробляти пікселі на межах зображення так само, як і центральні. Також це допомагає зберегти вихідний просторовий розмір, що важливо в глибоких мережах.
| Вхід | Фільтр | Stride | Padding | Вихід |
|---|---|---|---|---|
| 32x32 | 3x3 | 1 | 0 (None) | 30x30 |
| 32x32 | 3x3 | 1 | 1 (Same) | 32x32 |
| 32x32 | 3x3 | 2 | 1 (Same) | 16x16 |
Після згортки часто застосовують pooling (пулінг) — операцію зменшення розмірності. Вона скорочує кількість параметрів і обчислень, а також робить виявлені ознаки більш стійкими до невеликих зсувів.
- Max Pooling вибирає максимальне значення з кожної ділянки карти ознак. Він ефективно фіксує найяскравіші, найсильніші прояви ознаки.
- Average Pooling обчислює середнє значення. Він згладжує результат і зберігає менш виражені ознаки.
Будівництво вглиб
Здавалося б, щоб покращити модель, достатньо додати більше шарів. Але на практиці дуже глибокі мережі страждають від проблеми згасаючого градієнта: під час зворотного поширення помилки градієнти стають все меншими, і початкові шари майже не навчаються.
Цю проблему вирішує архітектура (Residual Network). Її ключова ідея — залишкові зв'язки, або skip connections. Вони створюють «короткий шлях» для градієнта, пропускаючи його через один або кілька шарів. Це дозволяє вхідному сигналу напряму потрапляти на глибші шари.
Замість того, щоб шар намагався вивчити безпосереднє відображення , він вчиться апроксимувати залишкову функцію . Тоді оригінальне відображення стає . Якщо оптимальним є просто передати вхід без змін, мережі достатньо обнулити ваги в шарах, що вивчають , що значно легше, ніж навчитися ідеальної тотожної функції.
Розширюючи поле зору
У задачах, де важливий контекст, наприклад, у семантичній сегментації, стандартна згортка має обмежене «поле огляду» (receptive field). Щоб його збільшити без втрати роздільної здатності через пулінг, використовують розширені згортки (dilated convolutions).
Вони працюють, додаючи «дірки» у фільтр. Параметр розширення (dilation rate) контролює відстань між точками ядра. Розширення 2 означає, що ядро охоплює область 5x5, але використовує ті самі 9 параметрів, що й ядро 3x3.
Нарешті, для завдань, де потрібно збільшити розмірність карти ознак (upsampling), як у генеративних моделях або сегментації, використовують транспоновані згортки (transposed convolutions). Їх іноді не зовсім коректно називають «деконволюціями».
Транспонована згортка проектує кожен піксель вхідної карти на більшу область у вихідній карті, використовуючи ваги ядра. Це дозволяє мережі навчитися відновлювати просторову інформацію, втрачену під час пулінгу.
Яку основну функцію виконує фільтр (або ядро) в операції згортки?
Як гіперпараметри stride (крок) та padding (доповнення) впливають на розмір карти ознак після згортки?
Згорткові шари, пулінг та залишкові зв'язки є фундаментальними блоками, з яких будуються найпотужніші архітектури для аналізу зображень.
