ГоловнаСтаттіШтучний інтелект та машинне навчання

Згорткові нейронні мережі: Пояснення фільтрів, ReLU та Max-Pooling

Як невеликий навчений фільтр, що просувається по зображенню, будує ієрархію ознак, яка дозволяє CNN розпізнавати об'єкти.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Фільтр – це питання, яке ставиться всюди

Конволюційний шар переміщує невелику сітку чисел, ядро або фільтр (зазвичай 3x3 або 5x5), по кожній позиції вхідного зображення, і на кожній позиції обчислює скалярний добуток між ядром та ділянкою пікселів під ним. Результатом є одне число, яке показує, наскільки добре ця ділянка відповідає шаблону, який ядро навчилося виявляти – край, кут або ділянка кольору. Повторення цього в кожній позиції створює нову сітку, яка називається картою ознак.

output[y][x] = сума по (i,j) kernel[i][j] * input[y+i][x+j] (+ bias) # один фільтр → одна карта ознак житлова демонстрація · фільтр, що прокручується по зображенню 8x8● LIVE Ключова особливість, яка робить конволюцію дешевою та потужною – це обмін вагами: одна й ті ж самі 9 або 25 чисел використовуються на кожній позиції, тому мережі не потрібно окремо навчати ваги для «краї в верхньому лівому куті» та «край у нижньому правому куті» – вона вивчає один детектор країв і застосовує його всюди. Це також робить шар приблизно переклад-незалежним: змістіть вхід на кілька пікселів, і карта ознак зміститься разом з ним, замість того щоб мережа повторно навчала шаблон з нуля в кожному місці.

output[y][x] = sum over (i,j) of  kernel[i][j] * input[y+i][x+j]   (+ bias)
                                                        # one filter → one feature map
жива демонстрація · пов'язана симуляція● LIVE

ReLU: відкидання знаку

Після згортки кожен елемент проходить через нелінійну активацію, майже завжди ReLU (Rectified Linear Unit): ReLU(x) = max(0, x). Це нульовіть негативні значення та пропускає позитивні без змін. Без нелінійності, стикування шарів згортки математично колапсувало б у один великий лінійний фільтр, незалежно від кількості шарів; ReLU дозволяє глибині дійсно додавати виразність, і це недорого – лише порівняння, без експонентів – тому воно замінило сигмоїд та гіперболічну функцію tangents у більшості сучасних мереж.

Макс-пулінг: відкидання позиції

Макс-пулінг зменшує кожен картку ознак шляхом зсуву невеликого вікна (зазвичай 2x2) по ній та утримання лише найбільшого значення в кожному вікні, відкидаючи решту. Це робить дві речі: воно знижує обчислювальну вартість для кожного наступного шару і робить представлення трохи більш стійким до невеликих зсувів та спотворень у точному положенні, де з'являлася певна ознака – мережа все більше піклується про те, чи є край або текстура в околі, а не про її точну піксельну координату.

2x2 max-pool, stride 2:
[ 3  1  7  2 ]        [ 3  7 ]
[ 0  2  4  9 ]   →   [ 5  9 ]
[ 5  1  0  3 ]
[ 1  0  2  1 ]

Укладка шарів: від країв до об'єктів

Окремий згортковий шар бачить лише невелике поле сприйняття — область, що відповідає розміру одного ядра. З’єднавши кілька блоків згортки/ReLU/зведення та збільшивши їхню область сприйняття, виміряну в оригінальних пікселях зображення, кожний наступний шар будується на основі ознак, які самі по собі були отримані з менших областей. У результаті утворюється приблизна ієрархія: ранні шари реагують на краї та прості градієнти, середні шари об'єднують їх у кути, текстури та прості фігури, а глибші шари реагують на частини та цілі об’єкти. Жодна з цих ієрархій не розробляється вручну — вона виникає в процесі навчання ядер за допомогою зворотного поширення помилки для мінімізації втрат класифікації або детектування.

Чому згорткові шари перевершують повністю з’єднані шари для зображень

Повністю з’єднаний шар на зображенні 8x8x3 вже потребує 192 ваг на кожен нейрон вихід; на реалістичному зображенні 224x224x3 – понад 150 000 ваг на кожен нейрон, і жодна з цих структур не повторюється між нейронами. Згортковий шар із ядром 3x3 потребує всього 27 ваг для всього зображення, які діляться у кожній позиції. Менша кількість параметрів означає менше речей, які потрібно навчитися з фіксованого обсягу даних, швидке навчання та – оскільки один і той же детектор перевіряється у кожному місці – вбудоване припущення, що корисний шаблон (край, око, колесо) є локальним шаблоном, який може зустрічатися будь-де на кадрі, що майже завжди вірно для природних зображень.

Frequently asked questions

Що таке карта ознак насправді?

Це сітка приблизно тієї ж форми, що й вхідні дані, де кожне значення вимірює, наскільки сильно шаблон фільтра, який було навчено, співпадав із зображенням у цій позиції. Карти ознак ранніх шарів схожі на карти країв; більш глибокі карти ознак є більш абстрактними та важко інтерпретуються візуально.

Чому ReLU, а не сигмоїда?

ReLU дешевий у обчисленні, не перенасичується для великих позитивних вхідних даних (тобто градієнти продовжують текти під час зворотного поширення), і емпірично навчається швидше та глибше, ніж сигмоїда або тангенс, які стискають їх вихід у вузький діапазон і викликають зникнення градієнтів у глибоких стовпах.

Чи завжди використовується максимум при пулінгу?

Max-пулінг є найбільш поширеним вибором, оскільки він зберігає найсильнішу активацію в кожному вікні, але average-пулінг (який обчислює середнє значення замість максимуму) також використовується, особливо як остаточний крок, який стискає кожну карту ознак до одного числа перед шаром класифікації.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Convolutional Neural Network і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Convolutional Neural Network

Що ви знайшли?

Додати кроки відтворення (опційно)