• No results found

Nejdůležitější informací, u každé metody, je přesnost rozpoznávání vzorků. Přesnost rozpoznávání p určuje poměr počtu správně rozpoznaných vzorků S a celkového množství vzorků N.

p = S

N (1)

Další, již méně důležitou, informací je rychlost rozpoznávání, kde se měří čas, za který se rozpozná jeden vzorek. Rychlost rozpoznávání je důležitá pro aplikace bě-žící v reálném čase. Měření rychlosti rozpoznávání probíhá pouze s jedním vzorkem a jedná se tak o nejhorší případ. Pokud by se zpracovávalo víc prvků najednou, pak lze očekávat kratší čas rozpoznávání jednoho vzorku. Toto zkrácení bude význam-nější u lineárního klasifikátoru a neuronové sítě, z důvodů optimalizace maticového násobení.

23

Naměřená rychlost je závislá na výpočetním výkonu zařízení, takže rychlosti nejsou pevně dané a jsou pouze orientační. Všechny výpočty, metod implemento-vaných v této bakalářské práci, probíhali na osmijádrovém procesoru AMD FX-8300. Tento procesor není nijak zvlášť výkonný, takže lze očekávat podobné rych-losti rozpoznávání i na průměrném stolním počítači. Grafická karta, kterou využívá MATLAB, je NVIDIA GeForce GTX 960. Grafická karta je poměrně výkonná a vý-znamně zrychluje proces učení v programu MATLAB.

2 Použité metody rozpoznávání

Všechny použité metody se učí z databáze trénovacích dat, což z nich dělá univer-zální metody, řešící mnoho úloh, po změně databáze. U každé metody jsou uvedeny důležité údaje o rychlosti a přesnosti rozpoznávání. Dále je uvedena přesnost rozpo-znávání při použití menšího počtu trénovacích vzorků. Každá metoda má na svém vstupu rozpoznávaný vzorek, který má vycentrované hodnoty příznaků. Centrování je provedeno odečtením průměru všech příznaků v sadě a zrychluje tím učení neu-ronových sítí. Lze ho nahradit zařazením Batch-normalizace před vstup do první vrstvy neuronové sítě.

Lineární klasifikátor, neuronová síť a konvoluční neuronová síť jsou také porov-nány s obdobnými metodami v programu MATLAB. Tento program mi posloužil jako inspirace o praktickém fungování neuronových sítí. Existují i další metody roz-poznávání písmen, ale tyto metody jsou složité na implementaci a nedosahují tak dobrých výsledků ani rychlostí jako použité metody v této bakalářské práci.

Pro implementaci a sledování průběhu učení jsem vytvořil samostatný program.

Uživatelské prostředí tohoto programu je zobrazeno na obrázku 4. Tato aplikace ob-sahuje graf, kde lze vykreslovat průběhy užitečných veličin. Dále umožnuje ovládat stav učení. Learning Rate ovládá rychlost učení a Decay rate ovládá míru automa-tického snižování rychlosti učení.

Obrázek 4: Uživatelské rozhraní programu pro implementaci metod rozpoznávání

25

2.1 Metoda nejbližšího souseda

Tato metoda je jedna z nejjednodušších metod ve strojovém učení. Přistoupil jsem k použití této metody, abych si vyzkoušel, jak fungují maticové výpočty v knihovně Eigen.

Jádrem metody nejbližšího souseda je porovnávání rozpoznávaného vzorku se všemi trénovacími vzorky. Porovnávají se všechny příznaky, v případě této baka-lářské práce se jednalo o porovnávání hodnot pixelů. Výslednou rozdílnost, nebo vzdálenost, lze vyjádřit několika vztahy. Bakalářská práce využívá pouze kvadratic-ké vzdálenosti, takvadratic-ké označované jako L2, která sčítá druhé mocniny rozdílů příznaků, jak je vidět v rovnici (2). Výsledkem této metody je třída nejbližšího trénovacího vzorku, která je považována za stejnou, jako třída rozpoznávaného vzorku.

C = (yi− xi)2 (2)

Obrázky, nebo obecně vstupy, na které je aplikována metoda nejbližšího souseda lze interpretovat jako body v prostoru. Aby bylo možné vizualizovat metodu nejbližšího souseda, je nutné, aby vstupem byly pouze dva příznaky. Důvod, proč se tato metoda nazývá nejbližší soused, je nejlépe vidět na obrázku 5. Barevné body jsou trénovací data a jejich barva určuje, do které třídy patří. Barevné plochy určují předpovězenou třídu bodu na daném místě. Příznaky těchto bodů jsou jejich souřadnice.

Obrázek 5: Znázornění metody nejbližšího souseda. Obrázek je vytvořen v interak-tivní aplikaci [3]

Při trénování této metody se pouze uloží všechny trénovací vzorky do operační paměti, což je výpočetně velmi rychlé, ale v případě velké trénovací sady by mohl nastat problém s nedostatkem této paměti.

Rozpoznávání je na rozdíl od trénování velmi pomalé, což je hlavní důvod, proč je tato metoda pro většinu aplikací nepraktická. Důvodem pomalého rozpoznávání je fakt, že pokud trénovací sada obsahuje 30000 vzorků, je nutné provést porovnávání dvou vzorků 30000x což je výpočetně náročné.

Příkladem dalšího nedostatku, je lineárně se prodlužující doba rozpoznávání, při zvýšení počtu trénovacích dat. Ostatní metody uvedené v této práci mají čas rozpoznávání nezávislý na počtu trénovacích vzorků. Výsledky metody nejbližšího souseda jsou v případě použití databáze MNIST až překvapivě dobré, což je způ-sobeno velkým počtem trénovacích vzorků a menším počtem tříd. Velké přesnosti rozpoznávání čísel z databáze MNIST také napomáhá fakt, že jsou čísla vycentro-vána tak, aby těžiště každého tvaru bylo uprostřed obrázku. Hyperparametr K je nastaven na hodnotu 6, v případě rozpoznávání písmen, a 7 při rozpoznávání čísel.

Učení trvá méně než 1 µs, ale rozpoznávání trvá příliš dlouho pro použití v real-time aplikaci.

Tabulka 2: Výsledky rozpoznávání metodou nejbližšího souseda Sada dat Přesnost Doba rozpoznávání [ms/vzorek]

Data1 65,1 % 5

Data3 71,3 % 15

Data5 74,1 % 26

MNIST 96,7 % 34

2.1.1 K-nejbližších sousedů

Při seřazení nejbližších vzorků podle jejich podobnosti, často nastává situace, kdy nejbližší vzorek není ze správné třídy, ale následující nejbližší vzorky už jsou správ-né. Z tohoto důvodu je vhodné pracovat s K nejbližšími vzorky, kde K je hyper-parametr. Třída, která je nejčastější v těchto nejbližších vzorcích, je prohlášena za správnou. Správným nastavením hyperparametru K lze významně zlepšit přesnost rozpoznávání.

Jak je vidět na obrázku 6 prostory jsou více plynulé a osamocený modrý bod v červené části již nevytváří modrou oblast jako na obrázku 5. Jedná se o užitečnou vlastnost, kdy lze předpokládat, že tento osamocený modrý bod je pouhou náhodnou výjimkou.

Obrázek 6: Příklad metody K nejbližších sousedů z interaktivního dema [3]

27

2.1.2 Nastavení hyperparametrů

Protože hyperparametry K nelze přesně určit, zbývá pouze experimentální hledání hodnot. Hledání ideální hodnoty hyperparametru je součástí učení, a proto nesmí probíhat na testovací sadě. Existuje několik metod hledání hyperparametrů.

První nejjednodušší metodou je pouhý odhad. Odhadem za pomoci grafu tréno-vacích a validačních přesností, lze poměrně dobře nastavit Dropout nebo regulari-zaci. Z grafu lze vyčíst, zda je Dropout moc silný nebo naopak moc slabý a podle této informace se jeho síla upraví.

Druhou metodou, použitou pro nalezení hyperparametru K, je postupné zvyšo-vání K až do doby, kdy přesnost rozpoznázvyšo-vání validačních dat začne výrazně klesat.

Tato metoda je zobrazena na obrázku 7. Ideální hodnota hyperparametru je zvolena na základě nejlepší přesnosti rozpoznání validačních dat. Tato metoda je dostačující k nalezení celočíselných hyperparametrů v malém rozmezí hodnot.

Obrázek 7: Hledání optimální hodnoty hyperparametru K

Třetí metoda je vhodná pro hledání hyperparametrů ve větším prostoru, na-příklad pro hledání reálných čísel, nebo pro hledání více hyperparametrů najednou.

Hyperparametry jsou nastaveny náhodně v určeném rozmezí. Rozmezí musí uživatel nastavit na základě odhadu. Ve velkém rozmezí bude hledání trvat dlouho, zatím-co malé rozmezí nemusí obsahovat ideální nastavení. Možností je nejprve udělat hrubé hledání ve velkém rozmezí a následně ho zmenšit na okolí nejlepšího nastave-ní z hrubého hledánastave-ní. Takto se často hledají hyperparametry jako například rychlost učení.

V průběhu učení dochází ke změnám některých hyperparametrů, jako například rychlost učení. Výhodnější možností je měnit tyto parametry podle aktuální situace.

Tento postup je ve většině případů rychlejší než náhodné nastavení, protože učení v případě hlubokých neuronových sítí může trvat i několik hodin.

Related documents