- pro učení nám stačí derivace jednotlivých části a spojíme podle grafu - násobení, sčítání, …
- Trénovací set
- Validační set
- testujeme, jak dobře funguje
- nastavování hyperparametrů = jsme součástí optimalizace
- vždy bude lepší, než reálné hodnocení
- Testovací set
- na začátku oddělit a vůbec se nedívat na ty data
- je potřeba se na tyto data nedívat a otestovat až jendou na konci, abychom simulovali reálné použití
- Co to je neuronová síť
- funkce, jde reprezentovat grafem
- Co jsou parametry učení/trénování?
- Co je loss funkce
- skaláry, příklady aspoň 1 pro regresi, 1 pro klasifikaci
- Co je gradient
- gradient descent + stochastic gradient descent
- Co je dataset v supervised learning?
- Shallow vs deep learning
- Lineární neurony, maticové násobení
- nelinearní aktivace
- vrstvy
- výpočetní graf
- vstup, konvoluční jádro
- výpočet = přiložíme konvoluční jádro na všech pozicích vstupu
- každé jádro vytvoří nový kanál
- musím být schopný zpracovat i pro vstup, co má víc kanálů (rgb u obrázků)
- parametry = konvoluční jádra - učí se
- derivace = součet hodnot jader - nezávisí na vstupu
- Downsampling = zmenšujeme původní obrázek na menší rozměry
- derivace
- max = 1 z místa, kde se vybírá
- max pooling = vybereme maximum v oblasti
- avg pooling = bereme průměr
- aproximujeme derivace u nelineárních funkcí = kroky musí být malé, aby lin. aproximace fungovala
- pro detekování větších vzorů - místo zvětšení konv. jader, uděláme pooling
- zvětšení jader by bylo mnohonásobně výpočetně náročnější
- těžké natrénovat velké sítě
- na začátek do sítě - náhodné hodnoty
- “zašumělé gradienty” - hodnoty nedávají smysl u hlubokých sítí
- jak se zbavit - reziduální spojení - přičteme vstup k výsledku vrstvy
- forward - multiplikativní → aditivní šum
- weight decay = nemohou být moc velké hodnoty
- nefunguje u modernich konvolucnich siti??
- Dropout
- vygenerujeme náhodný vektor 1 a 0 a maskuji hodnoty
- síť se nemůže spoléhat na 1 neuron, ale musí na více - nemusí být přítomny
- informace musí být rozložena mezi více neuronů aby přežila - funguje i u jednodušších znaků
- místo focení dalších žraloků transformuje obrázky
- otočení, změna barev, ořezání - stejný obrázek, ale jiný vstup pro síť
- vezmeme předtrénovanou síť
- vyhodíme extrakci příznaků a natrénujeme vlastní vrstvu na naše příznaky
- problém s anotací - je drahá, nemusí být přesná
- snaží se tento proces zefektivnit
- na základě natrénované sítě, ukázat, kde si síť není jistá
- červená místa, kde si není jistá v trénovací sadě
- upravíme trénovací sadu, přeučíme
- hledat data, co ještě nejsou v trénovací sadě
- Knowledge distillation
- natrénuji malou síť např na telefon z velké sítě
- je dobré aby hodnoty byly ve vrstvách podobné
- explicitní normalizace
- výstup z konvoluční vrstvy
- chceme aby měli mean = 0 a std odchylku = 1
- mean a standardní odchylku -> odčtu mean a podělím std odchylka