🔮 Badatelský deník inženýra AI

Laboratoř neuronových sítí | CNN-MLP - Konvoluční síť
1

Problém pozice v MLP

~ 45 min

1. Experiment: Posun vzoru

V simulátoru: Nakresli číslici "1" (svislá čára), zapamatuj si pozici. Spusť rozpoznání. Pak použij tlačítka posunu (→ ↓) a znovu rozpoznej.

Pozice vzoru Rozpoznaná číslice Jistota (%) Úspěch?
Originální (stred)
Posun 1× →
Posun 1× ↓

2. Proč je to problém?

MLP Grayscale: Každý pixel má vlastní váhu. Pixel (2,2) a pixel (3,3) jsou pro síť úplně jiné vstupy. Posun vzoru = jiná kombinace pixelů = síť nerozpozná.

Porovnání vstupů: Jak se liší vstupní vektory pro stejné číslo na různých pozicích?

3. Řešení: Translační invariance

Co potřebujeme od sítě:

Počet parametrů - porovnání:

Architektura Parametry (vstup→skrytá) Výpočet
MLP (5×5 → 16)
CNN (4 kernely 3×3)

Kolikrát méně parametrů má CNN?

2

Kernel - Posuvný detektor

~ 45 min

1. Co je konvoluční kernel?

Kernel (3×3) = malá matic vah, která se "posunuje" přes celý vstup.
Pro každou pozici provede dot product (násobení a součet).

Výsledek: Feature Map - mapa aktivací (kde kernel našel svůj vzor).

Vizualizace: V simulátoru přepínej mezi 4 kernely (◀ ▶). Sleduj jejich váhy.

2. Presety kernelů

Zkus aplikovat různé presety na Kernel 1. Sleduj Feature Map.

Preset Co detekuje? Pozorování
Hrany (Edge)
Horizontální (—)
Vertikální (|)

3. Nákres kernelů

Nakresli kern horizontální detektor (barvy: zelená = kladná váha, červená = záporná):

4. Výpočet konvoluce (ručně)

Vstup (část 3×3):
[0, 1, 1]
[0, 1, 1]
[0, 0, 0]

Kernel:
[1, 1, 1]
[0, 0, 0]
[-1, -1, -1]

Výpočet: (0×1 + 1×1 + 1×1) + (0×0 + 1×0 + 1×0) + (0×-1 + 0×-1 + 0×-1) =

Závěr: Kernel detekuje horizontální hranu, protože:

3

Feature Maps - Vrstvy rysů

~ 45 min

1. Co je Feature Map?

Feature Map = výstup jednoho kernelu aplikovaného na celý vstup.
Pro 4 kernely vznikají 4 Feature Maps (každá detekuje jiný rys).

V simulátoru: Nakresli "L" (roh). Přepínej mezi Feature Maps (◀ ▶). Zapni "Zobrazit záporné hodnoty".

2. Interpretace Feature Maps

Feature Map # Co je aktivní (kladné)? Co je záporné?
1
2
3
4

3. Spolupráce kernelů

Hypotéza: Pro rozpoznání číslice potřebujeme:

Příklad: Číslice "7" má horní vodorovnou čáru + pravou šikmou čáru. Které kernely ji najdou?

4. Velikost Feature Maps

Vstup: 5×5
Kernel: 3×3
Padding: 1 (okraj)
Stride: 1 (posun o 1)

Výsledek:

Vysvětli: Proč Feature Map má stejnou velikost jako vstup?

4

CNN Pipeline - Od pixelů k predikci

~ 45 min

1. Celý proces CNN-MLP

Vstup 5×5
Konvoluce 4× 3×3
Feature Maps 4× 5×5
Flatten 100
MLP 100→16→10
Output 0-9

2. Role jednotlivých částí

Část Co dělá? Proč je důležitá?
Konvoluce
Feature Maps
Flatten
MLP

3. Počet parametrů celé sítě

Konvoluční vrstva:
4 kernely × 9 vah + 4 biasy = parametrů

MLP (100 → 16):
100 × 16 + 16 = parametrů

MLP (16 → 10):
16 × 10 + 10 = parametrů

CELKEM: parametrů

4. Nákres CNN Pipeline

Zakresli tok dat od vstupu (5×5) přes kernely k výstupu:

5

Trénink a Data Augmentation

~ 45 min

1. Dataset s posuny

Data Augmentation: Každá číslice je natrénovaná v 9 pozicích (originál + 8 posunů). Síť se učí, že vzor je stejný i když se posune.

V simulátoru: Nakresli "0", přidej do tréninku. Tlaítky posunu (← ↑ ↓ →) posuň a opět přidej. Opakuj.

Kolik vzorů jsem vytvořil?

2. Experiment: S augmentací vs. Bez augmentace

Dataset Počet vzorů Epochy do chyby < 0.1 Úspěšnost posunu
Bez augmentace (1 pozice/číslici)
S augmentací (9 pozic/číslici)

3. Učení kernelů

Načti dataset 0-9, spusť 500 epoch. Sleduj, jak se mění váhy kernelů.

Pozorování: Naučily se kernely detekovat nějaké konkrétní rysy?

4. Porovnání s MLP Grayscale

Aspekt MLP Grayscale CNN-MLP
Translační invariance
Parametry (vstup→hidden)
Výhoda
6

Klíčové závěry o CNN

~ 30 min

1. Proč CNN místo MLP pro obrázky?

2. Hlavní komponenty CNN

Komponenta Účel V reálné CNN
Kernel (filter)
Feature Map
Pooling (MAX/AVG)

3. Od CNN-MLP k reálným sítím

Tato simulace: 1 konvoluční vrstva (4 kernely) + MLP
Reálná CNN (např. VGG16): 13 konvolučních vrstev + 3 plně propojené

ImageNet (1000 tříd):
- Vstup: 224×224×3 (RGB)
- Kernely: stovky až tisíce
- Parametry: ~138 milionů

4. Praktické použití CNN

Kde se CNN používají?

5. Závěrečná reflexe

Jaký je největší "aha moment" z práce s CNN-MLP?

Jak CNN navazuje na předchozí kapitoly (MLP Builder, Grayscale, ReLU)?