- jednoduchý model
- složitá extrakce features, ručně
- při změně dat/zlepšení musíme změnit extrakci features → ruční změny
- větší a pomalejší model, (ale máme lepší hw)
- potřeba více dat, ale bude fungovat lépe jak shallow
- nejsou ruční výběr features
- jeden model, co řeší vše
- chceme-li převést poslech čínštiny na češtinu
- mohu převést na několik kroků
- problém s chybovostí jednotlivých kroků
- komunikace mezi více modely
- jeden složitější model
- při chybě na vstupu se může zotavit
- stačí na úlohu pustit pouze 1 model - jednoduší spuštění
- lineární neuron = základ všech neuronových sítí
- mat funkce, kde každý vstup se vynásobí váhou
- parametry = váhy neuronu
- lineární kompozice → lineární funkce → potřebujeme nelineární funkce
- logistická regrese $\sigma(w_i x_i)$
- ReLU - $max(\sum w_i x_i, 0)$
- co většinou vyžaduje čas jsou lineární neurony $w_i x_i$, né ty aktivace
- uskupení neuronů podle vrstev
- $w_i x_i$ = dot product / skalární součin = $f(x, \bold{W}) = \bold{W} x$
- efektivní operace pro mnoho hardware
- jakoukoliv funkci/neuronovou síť lze přepsat na acyklický orientovaný graf
- objective function - z optimalizace
- k jedné úloze mohu použít nekonečně loss funkcí
- definicí loss funkce definuji úlohu a jak se učí z chyby
- maximum likelihood = chceme aby model na celém trénovacím datasetu vracet správné třídy, co nejpřesněji
- když mám uspořádání - např. 5 °C je méně, jak 10°C a 4 jsou blíž k 5
- objektivní funkce datasetu: $J(D, \theta) = \sum_{D=(x_i,y_i), \dots} loss(f(x_i, \theta), y_i)$
- $\theta^* = \arg \min_\theta J(\bold{D}, \theta)$
- optimalizační úloha
- simulované žíhání, hill climbing, coordinate descent, genetické algoritmy, newtonova metoda
- gradient $\nabla_w J = [\frac{\partial J}{\partial w_1}, \frac{\partial J}{\partial w_2}]$
- Forward pass - dopředný průchod
- Compute loss
- Backward pass - zpětný průchod
- problém s milion obrázky - moc výpočtu prakticky neudělatelné
- stochastic / mini-batch gradient descent
- vybereme vhodnou reprezentativní podmnožinu celé datové sady a naučíme v 1 kroku nad tím
- batch = celý dataset
- v praxi použít adaptivní optimalizační algoritmus jako je Adam
- gradient descent nikdy “nepoužijeme”
- jaký je optimální learning rate pro gradient descent? - nevíme, záleží na datech
- Adam - dělá kroky stejné velikosti a není ovlivněn velikostí gradientu