Вхідне зображення 6×6 пікселів. Кожна клітинка — число від 0 (чорний) до 9 (білий). Уяви, що це спрощений малюнок.

Числова матриця 6×6
Що це означає
Темні значення (0–3) — темні пікселі
Світлі значення (7–9) — яскраві пікселі

У реальних мережах: 224×224 px, 3 канали (RGB) → понад 150 000 чисел на вхід.

Фільтр (ядро) — маленька матриця 3×3 із ваговими коефіцієнтами. Він вчиться виявляти конкретну ознаку. Цей фільтр шукає вертикальні краї.

Фільтр «вертикальний край» 3×3
Логіка фільтра
+1 ліворуч → реагує на яскравість
0 центр → ігнорує
-1 праворуч → віднімає

Якщо зліва яскраво, справа темно → великий позитивний результат = край знайдено!

Фільтр "ковзає" по зображенню. У кожній позиції — поелементне множення і сума. Отримуємо карту ознак 4×4 (6−3+1=4).

Вхід (поточна позиція підсвічена)
крок 1
Карта ознак 4×4
Приклад обчислення для позиції (0,0):
(0·1)+(2·0)+(3·−1) + (1·1)+(5·0)+(4·−1) + (0·1)+(3·0)+(7·−1) = 0+0−3+1+0−4+0+0−7 = −13

ReLU (Rectified Linear Unit): від'ємні значення → 0, решта без змін. Мережа "забуває" слабкі або зворотні сигнали.

До ReLU
max(0, x)
Після ReLU
Червоні клітинки — від'ємні значення, що обнулились. Нейрон "не збудився" в цьому місці.

Max Pooling 2×2: ділимо карту ознак на блоки 2×2 і беремо максимум з кожного. Розмір зменшується вдвічі: 4×4 → 2×2.

Після ReLU 4×4
max кожного
блоку 2×2
Після Max Pooling 2×2
Ознаки збережені, розмір вдвічі менший. Мережа стійка до зміщень зображення.

Після кількох блоків "згортка → ReLU → пулінг" матриця розгортається у вектор і класифікується.

Блок 1
Згортка 3×3 ReLU Max Pool 2×2
Блок 2 (глибший)
Згортка 3×3 ×32 ReLU Max Pool
Flatten → Dense
Розгортаємо у вектор → повнозв'язний шар → Softmax
Кіт
92%
Не кіт
8%