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

Laboratoř neuronových sítí | Autoencoder - Komprese a generování
1

Co je Autoencoder?

~ 45 min

1. Rozdíl od klasifikátoru

Dosud jsi pracoval/a s MLP, který klasifikuje: "Je to jednička nebo dvojka?" Autoencoder dělá něco jiného.

Autoencoder: Neuronová síť, která se učí zkomprimovat vstupní data do menší reprezentace a pak je zrekonstruovat zpět.

Target = Input! Síť se učí kopírovat vstup na výstup přes úzké "hrdlo" (bottleneck).
Aspekt MLP Klasifikátor Autoencoder
Vstup Obrázek (784 pixelů) Obrázek (784 pixelů)
Výstup
Cíl (label)
Úkol

2. Architektura: Encoder → Bottleneck → Decoder

Encoder 784 → 128 → 64
Bottleneck 2 neurony
Decoder 64 → 128 → 784

Doplň role:

3. Proč "hrdlo"?

Hypotéza: Co by se stalo, kdybychom neměli bottleneck (např. 784→128→784)?

Vysvětlení:

2

Latentní prostor - Kde žijí čísla

~ 45 min

1. Co je latentní prostor?

Latentní prostor = "skrytý prostor" v bottlenecku

Pro bottleneck = 2 neurony → 2D prostor (mapa)
Každý obrázek dostane souřadnice [x, y]

V simulátoru: Spusť trénink s Bottleneck = 2. Sleduj "Latentní prostor" vpravo.

2. Pozorování shlukování

Otázky k zamyšlení:

Otázka Odpověď
Tvoří se shluky (clustery) pro různé číslice?
Kde jsou "jedničky" v latentním prostoru?
Jsou podobné číslice (2 a 7) blízko sebe?

3. Experimentální ověření

Klikni do různých míst latentního prostoru. Sleduj "Generovaný obrázek".

Zapiš, co vidíš při kliknutí do různých oblastí:

Oblast v latentním prostoru Co se vygenerovalo?
Střed shluku "1"
Mezi shluky "1" a "2"
Mimo všechny shluky

4. Závěr o latentním prostoru

Klíčový poznatek: Latentní prostor organizuje data. Podobné věci jsou blízko sebe. Je to jako "mapa" všech možných číslic!

Proč je to užitečné?

3

Rekonstrukce vs. Generování

~ 45 min

1. Kvalita rekonstrukce

Použij tlačítko "🎲 Náhodný vzor" pro testování různých vstupů. Porovnej Vstup a Výstup.

Číslice Kvalita rekonstrukce (1-5) Poznámka
0
1
7
8

2. Loss funkce

MSE (Mean Squared Error):
Loss = průměr((vstup - výstup)²)

Nízké číslo = dobrá rekonstrukce
Vysoké číslo = špatná rekonstrukce

Jaká je finální Loss po tréninku?

Je to dostatečně dobré?

3. Generování nového obsahu

Decoder = generátor! Místo použití encoderu můžeme decoderu dát libovolné souřadnice [x, y] a on vygeneruje obrázek.

Experiment: Pokus se vygenerovat číslice, které síť nikdy neviděla:

  1. Klikni do latentního prostoru mimo hlavní shluky
  2. Klikni přesně mezi dva shluky
  3. Zapiš souřadnice [x, y] a co se vygenerovalo
Souřadnice [x, y] Co se vygenerovalo? Je to validní číslo?
4

Denoising Autoencoder

~ 45 min

1. Přidání šumu

V simulátoru: Zapni "Přidat šum (Denoising)". Spusť trénink.

Denoising Autoencoder: Na vstup přidáváme šum (náhodné pixely), ale cíl zůstává čistý obrázek. Síť se učí odstraňovat šum.

Co se změnilo v Live Feed?

2. Porovnání výkonu

Typ autoencoderu Loss po 100 epochách Kvalita rekonstrukce
Bez šumu (klasický)
S šumem (denoising)

3. Praktické využití

Kde se denoising autoencoder používá?

4. Test robustnosti

Hypotéza: Denoising autoencoder je robustnější (odolnější vůči šumu) než klasický.

Tvoje zjištění:

Zdůvodnění:

5

Vliv velikosti Bottlenecku

~ 45 min

1. Experiment: Různé velikosti bottlenecku

Pro každý pokus: Resetuj síť, změní bottleneck, sestav síť, trénuj 100 epoch.

Bottleneck Kompresní poměr Finální Loss Kvalita
2
8
32
64

2. Grafická analýza

Zakresli graf: Osa X = Velikost bottlenecku, Osa Y = Loss

Interpretace: Jaký je vztah mezi velikostí bottlenecku a kvalitou rekonstrukce?

3. Trade-off komprese vs. kvalita

Dilema:
Malý bottleneck = vysoká komprese, ale špatná rekonstrukce
Velký bottleneck = dobrá rekonstrukce, ale slabá komprese

Jaká je optimální velikost bottlenecku podle tvých experimentů?

Proč právě tato hodnota?

4. Latentní prostor pro bottleneck > 2

Otázka: Co se stane s vizualizací latentního prostoru, když bottleneck = 8?

Poznámka: Pro vizualizaci je bottleneck = 2 ideální. Pro reálné aplikace se používá 64-512 neuronů.

6

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

~ 30 min

1. Most mezi klasifikací a generováním

Typ sítě Úkol Aplikace
Klasifikátor (MLP)
Autoencoder
Generativní AI (VAE, GAN)

2. Hlavní komponenty autoencoderu

3. Praktické aplikace

Kde se autoencoder používá v reálném světě?

Aplikace Jak pomáhá autoencoder?
Komprese obrázků (JPEG 2.0)
Anomaly detection
Recommender systémy

4. Od Autoencoderu k VAE a GAN

Současný Autoencoder: Deterministický
→ Stejný vstup → Stejný latentní kód → Stejný výstup

VAE (Variational Autoencoder): Pravděpodobnostní
→ Latentní kód = gaussovské rozdělení → Generuje variace

GAN (Generative Adversarial Network): Adversariální
→ Generátor vs. Diskriminátor → Fotorealistické obrázky

5. Závěrečná reflexe

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

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

Co tě nejvíc zaujalo na latentním prostoru?