Вхідне зображення 6×6 пікселів. Кожна клітинка — число від 0 (чорний) до 9 (білий). Уяви, що це спрощений малюнок.
Що це означає
Темні значення (0–3) — темні пікселі
Світлі значення (7–9) — яскраві пікселі
У реальних мережах: 224×224 px, 3 канали (RGB) → понад 150 000 чисел на вхід.
Фільтр (ядро) — маленька матриця 3×3 із ваговими коефіцієнтами. Він вчиться виявляти конкретну ознаку. Цей фільтр шукає вертикальні краї.
Фільтр «вертикальний край» 3×3
Логіка фільтра
+1 ліворуч → реагує на яскравість
0 центр → ігнорує
-1 праворуч → віднімає
Якщо зліва яскраво, справа темно → великий позитивний результат = край знайдено!
Фільтр "ковзає" по зображенню. У кожній позиції — поелементне множення і сума. Отримуємо карту ознак 4×4 (6−3+1=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, решта без змін. Мережа "забуває" слабкі або зворотні сигнали.
Червоні клітинки — від'ємні значення, що обнулились. Нейрон "не збудився" в цьому місці.
Max Pooling 2×2: ділимо карту ознак на блоки 2×2 і беремо максимум з кожного. Розмір зменшується вдвічі: 4×4 → 2×2.
Ознаки збережені, розмір вдвічі менший. Мережа стійка до зміщень зображення.
Після кількох блоків "згортка → ReLU → пулінг" матриця розгортається у вектор і класифікується.
Блок 1
Згортка 3×3
→ReLU
→Max Pool 2×2
↓
Блок 2 (глибший)
Згортка 3×3 ×32
→ReLU
→Max Pool
↓
Flatten → Dense
Розгортаємо у вектор → повнозв'язний шар → Softmax
↓