VYUŽITÍ AUTOENKODÉRŮ PRO TVORBU HLUBO-
|
|
- Miroslav Zbyněk Pešan
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA VYUŽITÍ AUTOENKODÉRŮ PRO TVORBU HLUBO- KÝCH SÍTÍ BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR MICHAL LOHNISKÝ BRNO 2012
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA VYUŽITÍ AUTOENKODÉRŮ PRO TVORBU HLUBO- KÝCH SÍTÍ BUILDING DEEP NETWORKS USING AUTOENCODERS BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR MICHAL LOHNISKÝ Ing. MICHAL HRADIŠ BRNO 2012
3 Abstrakt Tato práce se zabývá předtrénováním hlubokých sítí autoenkodéry. V prvních kapitolách jsou popsány prvky neuronové sítě. Další kapitoly jsou věnovány trénování hlubokých sítí a výsledkům, ve kterých je porovnáváno předtrénování autoenkodéry a algoritmus Backpropagation. Z výsledků experimentů na dvou datasetech vyplývá, že předtrénování autoenkodéry má kladný přínos, zvláště v kombinaci s Finetuningem. Abstract This thesis deals with pretraining deep networks by autoencoders. Components of neural networks are described in first chapters. Rest of chapters aims to deep network trainings and to results of experiments where autoencoder pretraining and Backpropagation algorithm are compared. Results showed positive contribution of autoencoder pretraining, mainly in combination with Finetuning. Klíčová slova Autoenkodér, předtrénování, hluboká síť, Backpropagation, Finetuning, neuronová síť, software pro trénování sítě. Keywords Autoencoder, pretraining, deep network, Backpropagation, Finetuning, neural network, network training software. Citace Michal Lohniský: Využití autoenkodérů pro tvorbu hlubokých sítí, bakalářská práce, Brno, FIT VUT v Brně, 2012
4 Využití autoenkodérů pro tvorbu hlubokých sítí Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana Ing. Michala Hradiše Michal Lohniský 14. května 2012 Poděkování Děkuji vedoucímu mé bakalářské práce Ing. Michalovi Hradišovi za jeho vedení a pomoc. c Michal Lohniský, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
5 Obsah 1 Úvod 2 2 Hluboké neuronové sítě Matematický model neuronu Struktura neuronové sítě Trénování neuronové sítě Autoenkodér Softmax klasifikátor Binární klasifikátor Trénování neuronové sítě s využitím autoenkodérů Nové metody trénování neuronových sítí Implementace nástroje DN train Sun Grid Engine Nástroj DN train Experimenty a výsledky Datové sady Experimenty Výsledky experimentů Závěr 27 A Obsah CD 30 B Příklad parametrů pro nástroj DN train 31 1
6 Kapitola 1 Úvod Neuronové sítě jsou dnes v informačních technologiích velmi využívaným prostředkem při zpracování dat. Využívají se při zpracování obrazu, zvuku, přirozeného jazyka a dalších typů dat. Jedním ze způsobů využití neuronových sítí je rozpoznávání a detekce v oblasti počítačového vidění. Konkrétním příkladem využití sítí v počítačovém vidění se zabývá článek [2], který je zaměřen na rozeznávání písma z fotografií. Vyhledáváním rekurzivní struktury v obrazových datech se zabývá článek [20]. Tento článek také ukazuje, že stejná neuronová síť dokáže zpracovávat jak obrazová data, tak věty přirozeného jazyka. Důležitou vlastností neuronových sítí je zejména jejich schopnost vnitřně reprezentovat vstupní data. Je to především schopnost hledat a učit se závislosti v datech, a to i ty, které nejsou zřejmé, a dále schopnost pracovat s nepřesnými nebo částečně poškozenými daty. Neuronové sítě umí řešit klasifikační úlohy (jednotlivé vstupní hodnoty, např. jednotlivé obrázky, rozřazovat do předem daných kategorií), provádět shlukovou analýzu (vstupní hodnoty podle vzájemné podobnosti rozřazovat do předem neznámého počtu skupin), aproximovat funkce nebo provádět predikce číselných a časových řad [7]. Neuronové sítě s více než jednou skrytou vrstvou se nazývají hluboké neuronové sítě. Tyto mají, oproti jednovrstvým sítím, schopnost efektivně reprezentovat složité závislosti v datech, a tak pracovat s informacemi na vysoké úrovni abstrakce. Mějme například hlubokou síť, na jejíž vstup jsou přivedeny pixely obrázku. První vrstva takovéto sítě pak může rozpoznávat a reprezentovat hrany objektů na vstupním obrázku, druhá vrstva již například obrysy nebo části objektů, třetí vrstva celé menší objekty a tak dále. Nejvyšší vrstvy tedy dokáží reprezentovat velmi komplexní informace o vstupních datech [10]. Pokud porovnáme reprezentační sílu jednovrstvých a hlubokých sítí, tak zjistíme, že hluboké sítě potřebují ke srovnatelné reprezentaci vstupních dat exponenciálně méně neuronů ve svých vrstvách [17]. S menším počtem neuronů se zvyšuje rychlost učení sítě, protože se výpočty provádějí s menšími maticemi. Díky těmto výhodám mají hluboké sítě v dnešní době velký potenciál. Trénování hlubokých neuronových sítí ovšem vyžaduje jiné přístupy a algoritmy, než trénování jednovrstvých sítí, protože algoritmy a přístupy vhodné pro jednovrstvé sítě mohou být při použití na hlubokých sítích buď pomalé nebo nejsou schopny vyřešit úlohu vůbec. Algoritmus zpětné propagace chyb (Backpropagation) [18], který se používá na trénování jak jednovrstvých, tak hlubokých neuronových sítí, byl poprvé publikován již v roce Výrazněji však začal být používán až v osmdesátých letech minulého století. Jeho úkolem je pro každý neuron ve skrytých vrstvách vypočítat podíl chyby tohoto neuronu na celkové chybovosti sítě a následně upravit váhy u neuronů tak, aby síť dosahovala lepších 2
7 výsledků. Pro hluboké sítě ale algoritmus není příliš vhodný, protože má na takovýchto sítích problém s uváznutím v lokálním minimu a také neumí dobře optimalizovat nižší vrstvy neuronů. Chybu z výstupní vrstvy umí algoritmus zpětně propagovat až do nejnižších vrstev sítě, avšak každému gradientu, který je zpětně po síti propagován, velmi rychle klesá velikost. Proto jsou hodnoty vypočítaných gradientů vah v nižších vrstvách velmi malé, váhy v nejnižších vrstvách se mění jen velmi pomalu a síť se nedaří trénovat. Jedním z řešení je u hlubokých sítí provést předtrénování skrytých vrstev. Předtrénování většinou probíhá bez učitele. Postupně pro každou vrstvu sítě nalézá takové hodnoty vah, že celá síť svými skrytými vrstvami reprezentuje obecné závislosti a vzory ve vstupních datech. Takto nastavené váhy jsou pro algoritmus Backpropagation vhodnější, než inicializace vah na náhodné hodnoty. Síť již lépe reprezentuje vstupní data a algoritmus Backpropagation menší úpravou takové sítě dosahuje dobrých výsledků. Pro předtrénování hlubokých sítí lze například využít algoritmus restricted Boltzmann machines (RBM) [12], nebo autoenkodéry [5]. Tato práce se zabývá právě autoenkodéry. Cílem této práce je v sérii experimentů zjistit, jaký přínos má předtrénování při učení hlubokých neuronových sítí. Trénování sítě s využitím autoenkodérů je pro získání zajímavých výsledků vhodné porovnat s algoritmem Backpropagation proto, že je tento algoritmus již velmi dlouho a často užíván pro trénování neuronových sítí. V [12] autor uvádí, že pravděpodobně přes 90% komerčních a průmyslových použití neuronových sítí využívá algoritmus Backpropagation nebo od něho odvozené algoritmy. Následující kapitola 2 poskytuje přehled o tvorbě hlubokých neuronových sítí, o vlastnostech jednotlivých částí sítí a také o různých způsobech jejich trénování. V kapitole 3 je popsána implementace nástroje, který umí s neuronovou sítí pracovat a který byl také využit při experimentech uvedených v kapitole 4. 3
8 Kapitola 2 Hluboké neuronové sítě Tato kapitola nejprve v prvních dvou podkapitolách popisuje základní stavební prvky sítě a vysvětluje strukturu sítě, která bude dále používána. V podkapitole 2.3 je popsán obecný způsob trénování neuronových sítí, je zde vysvětlen význam objektivní funkce, jak se síť inicializuje a také je zde popsán problém přetrénování sítě. Podkapitola 2.4 se zabývá strukturou a vlastnostmi autoenkodéru, řídkého autoenkodéru a lineárního dekodéru. V dalších dvou podkapitolách jsou popsány zakončující vrstvy sítě softmax klasifikátor a binární klasifikátor. Předposlední kapitola 2.7 se zabývá trénováním neuronové sítě s využitím autoenkodérů. Poslední kapitola popisuje tři teoretické metody pro trénování neuronových sítí. 2.1 Matematický model neuronu Matematický model neuronu (dále jen neuron) je základní stavební jednotkou syntetických neuronových sítí. Neuron vychází z biologického neuronu [11] nervového systému živočichů. Pro různé účely se používají různé modely neuronů. Neurony, které jsou v této práci používány, mají alespoň jeden vstup a právě jeden výstup, přičemž každý vstup má svoji váhu (váha může mít i hodnotu jedna, což má stejný význam, jako by tam váha nebyla). Součet vážených vstupů je předán aktivační funkci a až výsledek této pak je výstupem celého neuronu. Aktivační funkce určuje výstupní obor hodnot, kterých může aktivace neuronu nabývat. Tyto funkce mívají často esovitý tvar (například sigmoida a hyperbolický tangens), ale obecně to mohou být jakékoliv, tedy i nespojité funkce. Pokud nemá být aktivační funkce uvažována, lze zvolit funkci identity. Důležitým prvkem neuronových sítí je bias. Bias je podobný neuronu a je charakterizován tím, že nemá žádné vstupy a jeho aktivace je konstantní 1 (většinou má hodnotu jedna). V neuronových sítích slouží jako práh ovlivňuje hodnotu sumy vážených vstupů neuronu, tedy vstupní hodnotu aktivační funkce, která rozhoduje o velikosti aktivace neuronu. V této práci jsou použity pouze neurony s jedním výstupem a biasy (viz obr. 2.1). Jednotlivé váhy mezi neurony jsou značeny písmenem w i, písmeno z značí sumu vážených vstupů neuronu s z = w i x i, (2.1) i=1 1 V literatuře jsou uváděny dva přístupy. Buď můžeme uvažovat konstantní hodnoty biasů a měnit váhy na spojnici biasů a neuronů, a nebo můžeme uvažovat biasy bez vah s tím, že upravujeme přímo hodnoty biasů. Oba tyto přístupy jsou funkčně ekvivalentní. 4
9 x 1 x 2 w 1 w 2 z f a. w s x s Obrázek 2.1: Schéma neuronu vstupy neuronu jsou označeny jako x i, počet vstupů je označen písmenem s. kde x i jsou jednotlivé vstupy neuronu. Funkce f je aktivační funkce neuronu a a = f(z) je výstup (aktivace) celého neuronu. 2.2 Struktura neuronové sítě Neuronové sítě se tvoří propojením několika neuronů. Sítě můžeme dělit například podle způsobu zapojení nebo podle způsobu učení. Podle způsobu zapojení [11] rozeznáváme například: Plně propojené sítě každý neuron je propojen s každým a to i sám se sebou. Vrstvové sítě vrstvová síť se skládá z jednotlivých vrstev neuronů, kde každá vrstva může mít jiný počet neuronů (nejnižší vrstvu nazýváme vstupní nebo první vrstvou a nejvyšší vrstvu výstupní vrstvou). Acyklické sítě jde o speciální případy vrstvových sítí, ve kterých jsou neurony propojeny tak, že tvoří acyklický graf. Dopředné sítě jsou acyklické vrstvové sítě, kde každá vrstva poskytuje výstupy svých neuronů pouze přímo navazující vyšší vrstvě (příklad dopředné hluboké neuronové sítě viz na obrázku 4.2). Dále můžeme sítě rozdělovat podle způsobu učení. Sítě mohou být trénovány s učitelem, a nebo bez. Trénování sítí s učitelem vyžaduje dvojice vstupních dat s odpovídajícími očekávanými výstupy. Trénování sítí bez učitele se může snažit na výstupní vrstvě neuronové sítě zrekonstruovat vstupní hodnoty této sítě (vektorem s očekávanými výsledky je v tomto případě vstupní vektor dat). V této práci se budu zabývat pouze dopřednými sítěmi. Trénování bude probíhat v některých případech s učitelem a v některých případech bez učitele. 2.3 Trénování neuronové sítě V této sekci nejprve popíši význam objektivní funkce, důvod a způsob inicializace sítě a problém přetrénování sítě a jak lze tomuto problému předejít. Dále ukáži obecný způsob trénování dopředných neuronových sítí a algoritmus Backpropagation aplikovatelný na dopředné sítě libovolné hloubky. 5
10 2.3.1 Význam objektivní funkce při trénování sítě Objektivní funkce je funkce, která definuje, jakým způsobem se měří chyba sítě. Při trénování se tato chyba minimalizuje, hledá se minimum této funkce. Příkladem objektivní funkce je J(W, b) = 1 m m i=1 1 2 h W,b (x (i) ) y (i) 2, (2.2) kde W a b jsou matice vah a biasů sítě, m je počet vstupních dat, x (i) je vstupní a y (i) jemu odpovídající výstupní vzorek dat s indexem i. Funkce h W,b (x (i) ) představuje výstup sítě pro zadaný vstupní vzorek dat. Tato objektivní funkce definuje chybu sítě jako průměr polovin druhých mocnin rozdílů předpokládaného a získaného výstupu sítě. Do objektivní funkce jsou také zahrnuta všechna další omezení, která na síť mají být aplikována. Mezi nimi může být například člen penalizující síť za váhy s hodnotami příliš vzdálenými od nuly (weight decay), nebo člen penalizující síť za předpokladu, že jsou hodnoty průměrných aktivací neuronů příliš vzdáleny od nuly (sparsity řídkost) Inicializace počátečních hodnot sítě Po vytvoření sítě se musí hodnoty vah ve skrytých vrstvách sítě vhodně inicializovat. Pokud by byly všechny váhy nastaveny na stejné hodnoty, pak by se při použití následujících postupů při trénování nelišily ani aktivace neuronů v jedné vrstvě a všechny by se tedy učily stejné znaky o vstupních datech. Inicializace je proto prováděna pomocí náhodně vygenerovaných hodnot, čímž se této symetrii předchází [13]. Biasy se často inicializují na nulové hodnoty (výjimku viz v kapitole 2.4.1). Nejběžnějším způsobem inicializace vah mezi neurony je nastavení jejich hodnot náhodně z určitého intervalu, například z intervalu 3 nin, + 3 nin [21] nebo 6 n in +n, + 6 out+1 n in +n out+1 [14], kde n in označuje počet vstupů neuronu a n out počet neuronů, jimž daný neuron poskytuje svůj výstup. Protože hodnoty n in a n out bývají často poměrně vysoké, inicializované váhy neuronů mají hodnoty blízké nule Přetrénování sítě Neuronové sítě se při trénování učí vhodně reprezentovat závislosti ve vstupních datech. V jednom okamžiku však dosáhnou maxima úspěšnosti a dalším trénováním se začnou na trénovací data specializovat a tím ztrácet schopnost zobecňování. Následkem je ztráta úspěšnosti na testovacím datasetu. Vše je znázorněno na obrázku 2.2, kde je zmíněný okamžik vyznačen přerušovanou svislicí. Abychom tomuto problému předešli, můžeme průběžně kontrolovat úspěšnost sítě na jiných než trénovacích datech a pokud úspěšnost klesne, trénování zastavit [11]. Za výsledek je pak možno prohlásit stav sítě před poslední iterací (kdy ještě úspěšnost nepoklesla) a nebo zopakovat poslední iteraci trénování, ale s menším krokem učení (learning rate). Dalším způsobem je zavedení regularizace parametrů sítě například v podobě weight decay, jehož přesná podoba je ukázána v rovnici objektivní funkce autoenkodéru 2.9, softmax klasifikátoru 2.20 a binárního klasifikátoru
11 E Obrázek 2.2: Čerchovaná křivka přetrénování znázorňuje chybovost E sítě na trénovacím datasetu, tečkovaná na testovacím datasetu. Vodorovná osa představuje dobu trénování. t Obecný postup při trénování neuronových sítí Při trénování dopředné neuronové sítě s učitelem i bez je možno vycházet z následujících kroků: 1. Pokud nejsou splněny podmínky pro ukončení trénování sítě, vyber následující prvek z vektoru vstupních trénovacích dat. 2. Pro tato vstupní data vypočti aktivace výstupní vrstvy sítě. 3. Uprav váhy mezi neurony tak, aby se snížila hodnota objektivní funkce sítě. 4. Proveď krok 1. Podmínkami pro ukončení trénování sítě mohou být například: Síť jeví známky přetrénování (viz kapitola 2.3.3). Síť již velmi pomalu konverguje k výslednému řešení. Byl dosažen předem stanovený počet iterací optimalizačního algoritmu Algoritmus Backpropagation Některé optimalizační algoritmy (například stochastic gradient descent method nebo Conjugate gradient method [8]), používané pro optimalizaci vah mezi neurony, potřebují znát gradienty těchto vah. K tomu je možné použít algoritmus zpětné propagace chyb (Backpropagation), který umí gradienty efektivně získat. Algoritmus Backpropagation je již dlouho používaný algoritmus pro trénování neuronových sítí. Jeho funkcí při optimalizaci sítě je efektivně vypočítat gradienty vah sítě, samotná úprava vah je prováděna aplikovaným optimalizačním algoritmem, který získané gradienty využívá. Někdy se v literatuře setkáváme se slovním zjednodušením váhy byly optimalizovány algoritmem Backpropagation, je tím však míněno to, že byl použit nějaký optimalizační algoritmus využívající gradienty vah vypočtené algoritmem Backpropagation. Backpropagation pracuje se sítí jako s celkem a postupně od výstupní až ke vstupní vrstvě počítá gradienty vah sítě. Jeho nevýhoda spočívá ve velikostech hodnot gradientů vah v nejnižších vrstvách hluboké sítě. Gradienty vah nižších vrstev mají oproti gradientům 7
12 ve vyšších vrstvách sítě malé hodnoty, a proto jsou váhy z nižších vrstev výrazně pomaleji optimalizovány. Algoritmus Backpropagation je pro dopřednou neuronovou síť libovolné hloubky s objektivní funkcí 2.2 definován následovně 2 [12]: 1. Nejprve jsou vypočteny aktivace skrytých vrstev L 2, L 3,..., L nl 1 a aktivace výstupní vrstvy L nl. Počet vrstev sítě je značen n l. 2. Pro neurony z výstupní vrstvy L nl je vypočten vektor s velikostmi chyb δ (n l) = 1 z (n l) 2 h W,b(x) y 2 = (y a (nl) ) f (z (nl) ), (2.3) kde vektor z (nl) značí sumu vážených vstupů neuronů ve vrstvě n l (viz rovnice 2.1), vektor a (nl) značí aktivaci neuronu ve vrstvě n l a kde f () značí derivaci aktivační funkce neuronu. 3. Dalším krokem je vyjádření velikostí chyb pro neurony ve skrytých vrstvách. Pro neurony ve vrstvě l = n l 1, n l 2, n l 3,..., 2 je vypočten vektor s velikostmi chyb s l+1 δ (l) = j=1 (W (l) j ) T δ (l+1) f (z (l) ), (2.4) kde s l značí počet neuronů ve vrstvě l, W (l) j značí vektor vah mezi neuronem j z vrstvy l + 1 a neurony z vrstvy l. 4. Posledním krokem je výpočet gradientů vah a biasů pro každou vrstvu l. Tyto matice jsou získány ze vztahů: j 2.4 Autoenkodér W (l) = 1 m δ(l+1) (a (l) ) T, (2.5) b (l) = 1 m δ(l+1). (2.6) Autoenkodér [5] je dopředná neuronová síť. Nejčastěji je složen ze tří vrstev, aktivační funkcí neuronů bývá sigmoida 1 f(z) = 1 + exp( z), (2.7) jejímž oborem hodnot je interval (0; 1). Derivací této aktivační funkce je f (z) = f(z)(1 f(z)). (2.8) Grafy těchto funkcí viz na obrázku 2.3. Příklad autoenkodéru se čtyřmi vstupy a se třemi neurony ve skryté vrstvě viz na obrázku 2.5. Autoenkodér se učí bez učitele a tedy nepotřebuje pojmenovaná data. Učí se obecné znaky o vstupních datech a vyhledává mezi nimi souvislosti. Cílem autoenkodéru je nastavit 2 Notace je pro zjednodušení ve vektorovém tvaru, symbol mezi dvěma vektory označuje násobení po složkách (v Matlabu jde o operátor.*) a výstup funkce, které je předán jako parametr vektor, je vektor o stejné velikosti, přičemž funkce je aplikována na každý prvek vstupního vektoru. 8
13 váhy W a biasy b mezi svými neurony tak, aby se výstupní hodnoty y i co nejvíce blížily hodnotám vstupních dat x i. Informace o vstupních datech je autoenkodér nucen uložit ve vahách své skryté vrstvy. Protože je tato vrstva malá a nebo je použit řídký autoenkodér, je tento nucen reprezentaci dat provádět efektivně. Při trénování autoenkodéru se používá optimalizační algoritmus (jako je například Conjugate gradient method) pro minimalizaci objektivní funkce a algoritmus pro výpočet gradientů vah (algoritmus Backpropagation). Objektivní funkce má tvar J(W, b) = [ 1 m m i=1 1 h W,b (x (i) ) x (i) 2 2 ] + λ s l s l+1 ( l=1 i=1 j=1 W (l) ji ) 2. (2.9) První člen této funkce (zapsán v hranatých závorkách) počítá chybovost autoenkodéru. Druhý člen funkce, uvozený písmenem λ, penalizuje váhy s velkými hodnotami. Nazývá se člen weight decay. Písmeno λ, které se nazývá weight decay parametr, zde slouží k regulování poměru důležitosti mezi chybou autoenkodéru a weight decay regularizací. Protože se autoenkodér snaží na výstupu zrekonstruovat vstup, platí y = x f(z) 0.5 f (z) z z Obrázek 2.3: Vlevo je zobrazen graf sigmoidy 2.7, vpravo graf její derivace 2.8. Algoritmus Backpropagation je pro takto definované autoenkodéry následující: 1. Nejprve jsou vypočteny aktivace skryté vrstvy pro každý vzorek vstupních dat a následně aktivace výstupní vrstvy autoenkodéru. K tomu je využita aktivační funkce neuronu Pro každý neuron je vypočtena velikost chyby δ. Protože se autoenkodér snaží na své výstupní vrstvě zrekonstruovat vstupní hodnoty, chybu pro každý jeden neuron na výstupní (třetí) vrstvě vypočteme jako δ (3) i = 1 z (3) 2 h W,b(x i ) x i 2 = (x i a (3) i )f (z (3) i ). (2.10) i 3. Dalším krokem je výpočet velikostí chyb pro neurony ve skryté vrstvě. Velikost chyby jednoho neuronu závisí na velikostech chyb všech neuronů z vyšší vrstvy, kterým předává své aktivace, a na velikostech vah, které mezi sebou tento a neurony z vyšší vrstvy mají. Vypočítá se jako δ (2) i = s 3 (W (2) j=1 ji ) T δ (3) j f (z (2) i ), (2.11) kde s 3 je počet neuronů ve výstupní (třetí) vrstvě, váha W (2) ji leží na spojení neuronu j z výstupní vrstvy a neuronu i ze skryté vrstvy a kde zápis (A) T nese význam transponovaná matice A. 9
14 4. Posledním krokem je výpočet gradientů vah a biasů výstupní vrstvy ( W (2), b (2) ) a skryté vrstvy ( W (1), b (1) ), které jsou dány vztahy W (2) = 1 m δ(3) (a (2) ) T + λw (2), (2.12) b (2) = 1 m δ(3), (2.13) W (1) = 1 m δ(2) (a (1) ) T + λw (1), (2.14) b (1) = 1 m δ(2). (2.15) Členy λw (2) a λw (1) vznikly zderivováním weight decay členu z objektivní funkce autoenkodéru Řídký autoenkodér Pokud by měl autoenkodér ve své skryté vrstvě stejný nebo větší počet neuronů jak ve své vstupní vrstvě, aproximovat identické zobrazení vstupu na výstup by pro něho nebylo složité. Nastavením některých svých vah na hodnotu nula by odpojil takový počet neuronů, aby mu ve skryté vrstvě zbylo právě tolik neuronů, kolik jich má ve vstupní a výstupní vrstvě. U neodříznutých neuronů ve skryté vrstvě a u neuronů ve výstupní vrstvě by nastavil všechny váhy na nulovou hodnotu a pouze váhu, která neuron spojuje s odpovídajícím si neuronem z nižší vrstvy, na hodnotu jedna. Aktivace ze vstupní vrstvy by potom prošly nezměněny přes skrytou vrstvu až do vrstvy výstupní a autoenkodér by byl na jakémkoliv vstupním datasetu úspěšný s nulovou chybovostí. Informace, které si ve formě vah takovýto autoenkodér uchovává, však nejsou ničím přínosné. Zajímavé vlastnosti se autoenkodér učí, když zavedeme nějaké omezení informačního toku skrytou vrstvou. Toto omezení může spočívat například v redukci počtu neuronů ve skryté vrstvě. Autoenkodér je pak nucen zakódovat do svých vah zredukovanou reprezentaci vstupních dat, tedy vyhledávat mezi vstupními daty souvislosti a tyto se učit. Pokud bychom na vstup přivedli náhodný šum, princip autoenkodéru by nefungoval. Jeho funkčnost závisí na tom, že vstupní data jsou vzájemně korelována. Pokud je stavěn autoenkodér se skrytou vrstvou větší než vstupní, může být přidáno jiné omezení, aby učení autoenkodéru dobře fungovalo. Toto omezení se nazývá řídkost [13]. U řídkých autoenkodérů je nastavena podmínka na velikost průměrné aktivace každého neuronu. Průměrná aktivace jednoho neuronu j ve skryté vrstvě autoenkodéru je dána vztahem ˆρ j = 1 m [ ] a (2) j (x (i) ), m i=1 kde m je počet vzorků trénovacích dat a a (2) j (x (i) ) je aktivace neuronu j ve skryté (druhé) vrstvě, pokud je na vstup autoenkodéru přiveden vzorek trénovacích dat x (i). Zavedení parametru řídkosti (sparsity parameter) ρ s malou hodnotou (při použití sigmoidy 2.7 jako aktivační funkce neuronu, může být vhodnou hodnotou například číslo 0,05 [13]) má za následek neaktivitu neuronu po většinu času trénování (hodnota jeho aktivace se po většinu času velmi blíží spodní hodnotě definičního oboru aktivační funkce neuronu). Pokud písmeno ˆρ označuje získanou průměrnou aktivaci neuronu, pak je cílem dosáhnout vztahu ˆρ = ρ. K tomuto účelu se zavádí funkce, jež produkuje malou hodnotu pokud se hodnota 10
15 ˆρ blíží hodnotě ρ a čím více se tyto hodnoty liší, její hodnota se monotónně zvyšuje. Příkladem takovéto funkce založené na Kullback-Leibler divergenci může být následující (viz také obrázek 2.4): s 2 j=1 KL(ρ ˆρ j ) = s 2 j=1 ( ρ log ρˆρ + (1 ρ) log 1 ρ ). (2.16) j 1 ˆρ j Objektivní funkce řídkého autoenkodéru bude za využití rovnice 2.9 vypadat následovně: J sparse (W, b) = J(W, b) + β s 2 j=1 KL(ρ ˆρ j ). (2.17) Písmeno β reguluje váhu mezi objektivní funkcí autoenkodéru J(W, b) a přidaným vztahem zajišťujícím řídkost autoenkodéru. Pro implementaci řídkosti do algoritmu Backpropagation je třeba zaměnit rovnici 2.11 za rovnici [13] δ (2) i = s 3 (W (2) j=1 ji ) T δ (3) j + β ( ρˆρ + 1 ρ ) f (z (2) i ). (2.18) i 1 ˆρ i Obměnou omezení průměrné aktivace neuronu může být inicializace počátečních hodnot biasů na větší záporná čísla [4], například na náhodné hodnoty z intervalu 4,1; 3,9. Sečtením takovýchto biasů se sumou vážených vstupů neuronu získáme záporné číslo. Když toto číslo dosadíme do aktivační funkce, aktivace neuronu bude velmi malá a tím dosáhneme stejného efektu jako při použití výše zmíněného postupu se sparsity termem. s 2 j=1 KL(ρ ˆρ j) ˆρ j Obrázek 2.4: Graf funkce 2.16 pro parametr ρ = 0,4. Pokud ˆρ dosahuje hodnoty 0,4, funkce vrací hodnotu 0. V mezích 0 a 1 funkce roste do nekonečna Lineární dekodér Pokud je implementován autoenkodér, který používá jako aktivační funkci všech svých neuronů sigmoidu 2.7 nebo jinou shora i zdola ohraničenou funkci, musí být takovému autoenkodéru přizpůsobena i data. Dále budu uvažovat použití sigmoidy. Protože se autoenkodér snaží na výstupu zrekonstruovat vstupní hodnoty, a protože jsou data získaná na výstupu z intervalu (0; 1), musí být i hodnoty vstupních dat z tohoto intervalu. Jestliže jsou hodnoty vstupních dat z jiného intervalu, mohou být vstupní data normalizována do požadovaného rozsahu, což ale může být v některých případ problém, protože ne vždy je jasné jakým způsobem změnit velikosti hodnot vstupních dat tak, aby se v datech neporušily 11
16 x 1 y 1 h (1) 1 x 2 y 2 h (1) 2 x 3 y 3 h (1) 3 x 4 y 4 b y b h vstupní vrstva skrytá vrstva výstupní vrstva Obrázek 2.5: Autoenkodér se čtyřmi neurony ve vstupní a výstupní vrstvě a se třemi neurony ve skryté vrstvě. Neurony jsou zde znázorněny jako kolečka (některé neurony jsou značeny čárkovaně proto, že první vrstvu autoenkodéru můžeme chápat buď jako přímo vstupní data celého autoenkodéru nebo jako neurony předcházející skryté vrstvy v hlubokých sítích viz sekce 2.7.1). Skrytá i výstupní vrstva má mezi svými vstupy bias. závislosti a neztratily důležité informace. Druhou možností je místo normalizace vstupních dat používat při předtrénování lineární dekodéry. Lineární dekodér je typ autoenkodéru, který ve výstupní vrstvě používá jinou (lineární) aktivační funkci než u neuronů ve vrstvě skryté. Nejjednodušší lineární funkcí, která se také nejčastěji používá v praxi, je funkce identity. Výstup lineárního dekodéru (aktivace neuronů ve výstupní vrstvě) se při použití vektorového zápisu bez indexů vypočítá jako y = a (3) = z (3) = W (2) a (2) + b (2). Hodnoty aktivací skryté vrstvy a (2) jsou stále z intervalu (0; 1), ale díky lineární aktivační funkci je interval pro výstupní hodnoty dekodéru neomezen. Změna ve výpočtu aktivací neuronů ve výstupní vrstvě ovlivní i výpočet velikostí chyb těchto neuronů v algoritmu Backpropagation. Rovnice 2.10 má při použití lineárního dekodéru tvar δ (3) i = (y i a (3) i ). 2.5 Softmax klasifikátor Softmax regrese zobecňuje metodu logistické regrese a používá se při řešení klasifikačních úloh, u kterých mají být vstupní data rozřazena do více než jen dvou kategorií. Softmax klasifikátor se tedy používá v případech, kdy má být každý vstupní vzorek datasetu přiřazen do 12
17 právě jedné kategorie z k kategorií, přičemž k je větší než dva (pro k = 2 je softmax regrese zaměnitelná s logistickou regresí). Příkladem, který dobře demonstruje využití softmax klasifikátoru, je rozpoznávání číslic za použití vstupního datasetu MNIST [9]. Sítě na tomto datasetu řeší úlohu, jejímž cílem je rozeznat číslici ze vstupního obrázku. Vstupní obrázek je nutno přiřadit do jedné z deseti možných kategorií 0 9. Softmax klasifikátor je jedna vrstva neuronů, která přijímá vstupy z nižší vrstvy sítě. Většinou se používá jako zakončující vrstva, výstupy této vrstvy jsou výsledkem celé neuronové sítě. Výstupem je vektor pravděpodobností s Boltzmannovým rozložením pravděpodobnosti. Výstupem pro vstupní vzorek x je tedy vektor pravděpodobností p(y = j x), který pro každou kategorii j = 1,..., k udává pravděpodobnost, se kterou vstupní vzorek dané kategorii přísluší. Součet hodnot tohoto vektoru pravděpodobností je vždy roven jedné. Po získání tohoto vektoru lze rozhodnout (například výběrem kategorie s nejvyšší pravděpodobností), do které kategorie z k kategorií vstupní vzorek patří. Jako aktivační funkce neuronů v softmax vrstvě se používá exponenciální funkce f(z) = e z. Hodnoty všech výstupů jsou však normalizovány tak, aby byl jejich součet 1, a proto se výstup jednoho neuronu zapisuje rovnicí p(y (i) = j x (i) ; W ) = e W jx (i) k. (2.19) l=1 ew (i) lx Trénování probíhá s učitelem, při učení jsou tedy vyžadovány dvojice datových vektorů a odpovídajících tříd. Objektivní funkcí je funkce J(W ) = 1 m k { } 1 y (i) = j log p(y (i) = j x (i) ; W ) + λ 1 k s W 2 m 2 ij, (2.20) i=1 j=1 i=1 j=0 kde m je počet trénovacích vzorků, k je počet výstupních kategorií, W jsou váhy softmax vrstvy, x vstupní a y výstupní hodnoty softmax klasifikátoru. Výraz 1 { } nabývá hodnoty jedna v případě, že obsahuje pravdivý výraz a v opačném případě je roven nule. Druhý člen objektivní funkce (začínající písmenem λ) je, weight decay (stejně jako u autoenkodéru). Písmeno s zde označuje počet neuronů ve vrstvě pod softmax vrstvou. Objektivní funkce je minimalizována pomocí optimalizačního algoritmu za využití algoritmu Backpropagation Optimalizace algoritmem Backpropagation Protože se softmax klasifikátor skládá pouze z jedné vrstvy neuronů, tak při optimalizaci za pomocí algoritmu Backpropagation vlastně nejde o zpětnou propagaci chyb, ale pouze o výpočet chyby na výstupu softmax klasifikátoru, protože neexistují další vrstvy, přes které by se chyby propagovaly. Gradienty vah se v softmax vrstvě vypočítají jako [16] W j = 1 m m i=1 [( 1 { y (i) = j } p(y (i) = j x (i) ; W ) ) x (i)] + λw j. (2.21) Softmax klasifikátor je velmi často vrstvou zakončující větší neuronovou síť. Celý algoritmus Backpropagation aplikovaný na dopřednou neuronovou síť libovolné hloubky je popsán v kapitole Pokud by měl být tento algoritmus aplikován na síť zakončenou softmax klasifikátorem, rovnice 2.3 by byla nahrazena rovnicí δ (n l) = [W T ( 1 {y = j} kde písmeno W označuje matici vah softmax vrstvy. e W a(n l ) k l=1 ew la (n l ) )] f (z (n l) ), (2.22) 13
18 2.6 Binární klasifikátor Binární klasifikátor [16] využívá logistickou regresi a používá se tedy v případech, kdy se má rozhodnout, zda vzorek vstupních dat má, nebo nemá konkrétní vlastnost. Většinou je zadáno několik vlastností, které mají být sledovány najednou, takže místo jednoho binárního klasifikátoru jich je použito několik a tyto pak tvoří celou vrstvu neuronů, která zakončuje síť. Použití binárního klasifikátoru je vhodné například na datasetu s fotografiemi s různými předměty, kde je cílem určit, které předměty z k možných jsou na dané fotografii zachyceny. V tomto případě by výstupní vrstva obsahovala k binárních klasifikátorů. Výstupem této vrstvy je pro každý vzorek vstupních dat a pro každý jeden příznak vektor s hodnotami pravděpodobností. Jako aktivační funkce neuronů v této vrstvě se používá sigmoida 2.7. Stejně jako u softmax klasifikátoru probíhá trénování s učitelem. Objektivní funkcí je funkce [16] J(W ) = 1 m m i=1 [ ( ) ( )] y (i) log h W (x (i) ) + (1 y (i) ) log 1 h W (x (i) ) + λ 1 2 k s i=1 j=0 W 2 ij, (2.23) kde h W (x (i) 1 ) =. 1 + e W x(i) (2.24) Tato objektivní funkce se skládá ze dvou členů. Prvním je člen počítající chybovost klasifikátoru a druhým je weight decay Výpočet gradientů vah Abychom zjistili, jak vypočítat gradienty vah binárního klasifikátoru, nejprve odvodíme derivaci objektivní funkce binárního klasifikátoru J(W ) 2.23: J(W ) = 1 m [ ( ) ( )] y (i) 1 log + (1 y (i) 1 ) log 1 +λw W j m W j 1 + e W jx (i) 1 + e W jx (j) j. i=1 Zavedeme substituci a(z) = log(z) a (z) = 1 z 1 b(z) = b e (z) = z 1+e z (e z +1) 2 c(w j ) = W j x c (W j ) = x j d(z) = 1 z d (z) = 1 a rovnici přepíšeme do tvaru J(W ) = 1 m [ ] y (i) a(b(c(w j ))) + (1 y (i) )a(d(b(c(w j )))) + λw j. W j m W j i=1 Část rovnice v hranatých závorkách zderivujeme [ ] a (b(c(w j )))b (c(w j ))c (W j ) + (1 y (i) )a (d(b(c(w j ))))d (b(c(w j )))b (c(w j ))c (W j ). Po návratu k substituci a po zavedení nové substituce f = e Wjx má tato část rovnice tvar ( y (i) ) f f (f + 1) 2 x j + (1 y (i) 1 f ) 1 1 ( 1) (f + 1) 2 x j f 14
19 Zjednodušením této části má celá rovnice tvar J(W ) W j = 1 m m i=1 [( ) ] y (i) e ) x (i) W jx (i) j + λw j. Gradienty vah ve vrstvě s binárními klasifikátory za využití rovnice 2.24 vypočítáme ze vztahu W j = 1 m [( ) ] y (i) h W (x (i) ) x (i) j + λw j. (2.25) m i=1 Můžeme si všimnout, že tato rovnice pro výpočet gradientů vah pro vrstvu s binárními klasifikátory je velmi podobná rovnici pro výpočet gradientů vah softmax klasifikátoru Trénování neuronové sítě s využitím autoenkodérů Optimalizace sítě s využitím autoenkodérů Hluboké neuronové sítě (sítě s několika skrytými vrstvami) je možné inicializovat autoenkodéry. Postupuje se po jednotlivých vrstvách sítě od první skryté vrstvy směrem nahoru. Aktuální skrytá vrstva je vyjmuta ze sítě a je kolem ní vytvořen autoenkodér: vyjmutá vrstva se stává skrytou vrstvou autoenkodéru, před ní a za ní je vytvořena vstupní a výstupní vrstva autoenkodéru. Vstupní a výstupní vrstva autoenkodéru má stejnou velikost, jako je velikost vrstvy předcházející vyjmuté vrstvě v trénované síti. Takto vytvořený řídký autoenkodér s jednou skrytou vrtvou je natrénován za pomocí optimalizačního algoritmu a s využitím Backpropagation (viz kapitola 2.4), přičemž jako vstupní data jsou použity aktivace vrstvy předcházející vyjmuté vrstvě v trénované síti. Tato data jsou zároveň požadovanými výstupy autoenkodéru. Po natrénování autoenkodéru se jeho skrytá vrstva vyjme a vrátí zpět do trénované sítě na původní místo. Autoenkodéry inicializují síť tak, aby vnitřně reprezentovala vstupní dataset na určité (vyšší) abstrakci. Předtrénovaná síť má ve svých vahách uloženy velmi obecné znaky o vstupním datasetu a pro konkrétní úlohu tedy většinou nedávají velmi dobré výsledky Předtrénování sítě a Finetuning Protože algoritmus Backpropagation není samostatně vhodný pro hluboké sítě a protože sítě inicializované pomocí autoenkodérů reprezentují příliš obecné znaky o vstupním datasetu, přistupuje se ke kombinaci obou těchto postupů [17]. Inicializace autoenkodéry se v této kombinaci někdy nazývá předtrénování a algoritmus Backpropagation se nazývá Finetuning. Schéma trénování je zobrazeno na obrázku 2.6. Po sestavení sítě a inicializaci vah a biasů dochází k předtrénování sítě autoenkodéry, které probíhá bez učitele. Následně je pak prováděno předtrénování zakončující vrstvy (softmax vrstvy nebo vrstvy s binárními klasifikátory), které již potřebuje pojmenovaná data. Nakonec je aplikován algoritmus Backpropagation, který váhy vylepší. Tento způsob trénování funguje dobře proto, že po předtrénování sítě autoenkodéry pracuje algoritmus Backpropagation se sítí, jejíž váhy jsou nastavené na vhodné hodnoty. Při těchto hodnotách vah se hodnota objektivní funkce blíží ke svému minimu (nebo alespoň dobrému lokálnímu minimu) a algoritmus Backpropagation pouze vylepšuje hodnoty vah, aby lépe odpovídaly řešenému problému. 15
20 sestavení sítě inicializace vah a biasů předtrénování skrytých vrstev autoenkodéry předtrénování zakončující vrstvy (softmax, binární klas.) Finetuning celé sítě výsledná síť Obrázek 2.6: Schéma trénování sítě pomocí metod předtrénování sítě a Finetuning. 2.8 Nové metody trénování neuronových sítí V této sekci jsou popsány tři metody pro trénování neuronových sítí. První metoda se zabývá řešením problému algoritmu Backpropagation. Druhá podsekce se zabývá trénováním neuronové sítě na datasetu, jež nemá kompletně pojmenovaná vstupní data. Poslední podsekce popisuje způsob trénování sítě na datasetu, který má výstupní kategorie ve stromové struktuře Trénování sítě s postupným zvyšováním počtu vrstev Alternativou k předtrénování autoenkodéry nebo RBM by mohl být způsob, který popisuji v této podsekci. Jak jsem již zmiňoval, algoritmus Backpropagation nefunguje dobře kvůli neschopnosti propagovat chybu do nižších vrstev hlubokých sítí. Úspěšný by tedy mohl být postup trénování, při kterém bychom vytvořili nejprve síť s jednou skrytou vrstvou a tuto optimalizovali za využití algoritmu Backpropagation. Po určitém počtu iterací optimalizačního algoritmu (například několik set iterací) bychom k celé síti přidali další skrytou vrstvu a celou síť opět optimalizovali s využitím algoritmu Backpropagation. Tyto kroky bychom opakovali do té doby, něž bychom získali hlubokou síť s požadovaným počtem skrytých vrstev. Vznikla by tak diskriminativní síť, jejíž spodní vrstvy by byly optimalizovány častěji. Algoritmus Backpropagation by vždy pracoval s částečně předtrénovanou sítí z minulého kroku trénování, což by mělo mít stejný efekt jako předtrénování autoenkodéry nebo použití RBM. Výjimkou by byl první krok, kde by algoritmus optimalizoval čerstvě inicializovanou 16
21 síť. Protože by se však jednalo vždy o síť s pouze jednou skrytou vrstvou, na které algoritmus pracuje s dobrými výsledky, ani to by neměl být problém. Protože většinou stavíme síť se zakončovací vrstvou (jako je softmax klasifikátor nebo vrstva s binárními klasifikátory), byli bychom nuceni tuto vrstvu vždy před přidáním nové skryté vrstvy odpojit, přidat novou skrytou vrstvu a připojit nově inicializovaný klasifikátor, který by se trénoval od začátku. To by mohlo negativně ovlivnit rychlost konvergence sítě k výslednému nastavení. Protože by tento postup měl být alternativou k předtrénování sítí autoenkodéry, bylo by vhodné tyto dva postupy porovnat z hlediska rychlosti trénování a také úspěchu sítí po natrénování Trénování sítě na datasetu s neúplně pojmenovanými daty Mějme klasifikační problém, při jehož řešení použijeme neuronovou síť zakončenou vrstvou s binárními klasifikátory. K trénování takovéto sítě jsou zapotřebí pojmenovaná data, přičemž většinou jsou ve výstupním vektoru (ve vektoru s hodnotami, které chceme, aby se pro daný vstupní vzorek datasetu objevily na výstupu) známé hodnoty pro všechny binární klasifikátory. Hodnoty výstupního vektoru určují, zda je daný příznak pro daný vstupní vzorek datasetu aktivní či neaktivní. Může však nastat situace, při které bude výstupní vektor datasetu neúplný. V této kapitole popíši způsob, který by se mohl použít při trénování na právě takovémto typu datasetu. Klíčový je způsob, jakým bude vyhodnocována chybovost sítě, když neznáme celý výstupní vektor datasetu. Nejjednodušším způsobem by mohl být postup, při kterém neurony, u kterých neznáme požadovanou výstupní hodnotu, nebudeme vůbec hodnotit. Označme tyto neurony jako neznámé neurony. Za předpokladu, že bychom trénovali pouze vrstvu s binárními klasifikátory, by tento způsob mohl velmi dobře fungovat. Váhy neznámých neuronů by pouze nebyly pro daný vstupní vzorek upraveny, což je logické, pokud nevíme, jak je upravit. Případ, kdy stavíme takovouto síť skládající se pouze z vrstvy s binárními klasifikátory, je velmi ojedinělý. Častěji stavíme sítě hluboké, které binární klasifikátory užívají ve své výstupní vrstvě. Mějme hlubokou síť s binárními klasifikátory ve výstupní vrstvě. Dále předpokládejme, že dataset pro jeden prvek ve výstupním vektoru dává hodnotu o příznaku nemáme informace mnohem více častěji než pro ostatní prvky. Pokud bychom použili výše zmíněný postup, úpravy vah ve skrytých vrstvách sítě by často nebyly ovlivněny neznámým neuronem a proto by síť časem zapomněla informace pro neznámý neuron. Síť by pak pro příznak, reprezentovaný tímto neuronem, nedávala dobré výsledky. Řešením takovéto situace by mohl být následující postup. Mějme vzorek datasetu s jednou neznámou hodnotou ve výstupním vektoru. Pro tento vzorek proveďme výše zmíněný postup upravme váhy sítě, ale neznámý neuron nehodnoťme. Vezměme poslední použitý vzorek datasetu, ve kterém neznámý neuron má známou hodnotu ve výstupním vektoru. Pomocí tohoto vstupního vzorku datasetu upravme váhy sítě, ale hodnoťme pouze tento jeden neuron, ostatní ne. Tímto způsobem bychom předešli ztrátě informace v síti pro neuron, který je často neznámým neuronem. Analogicky bychom postup aplikovali v případech, kdy je ve výstupním vektoru datasetu více neznámých hodnot. Pro tento postup by také bylo velmi vhodné přeskupit pořadí vzorků v datasetu tak, aby měl první vzorek úplný výstupní vektor a aby se ve výstupním vektoru po sobě vyskytovalo co nejméně neznámých hodnot na stejné pozici. 17
22 teriér jezevčík pes chrt panelový rodinný dům Obrázek 2.7: Příklad datasetu, jehož prvky kontrolního výstupního vektoru jsou v hierarchické struktuře Trénování sítě na datasetu s kategoriemi v hierarchické struktuře Datasety jako MNIST [9] nebo Caltech101 [3] mají výstupní kategorie v jedné úrovni, kategorie mezi sebou nemají žádnou hierarchickou strukturu. Mějme však dataset se sedmi kategoriemi v hierarchické struktuře, jak je naznačeno na obrázku 2.7. Síť by řešila klasifikační problém, ve kterém by se snažila přiřadit vstupní vzorek do správné kategorie. Pokud by byl na vstup přiveden například obrázek s jezevčíkem, chtěli bychom, aby ho síť raději přiřadila do kategorie s jezevčíky než do kategorie se psy, protože jezevčík je konkrétnější a tedy lepší řešení. Pokud by síť, učící se na datasetu MNIST, přiřadila vstupní obrázek s číslicí jedna do kategorie s číslicemi dva, vadilo by nám to stejně hodně, jako kdyby ho přiřadila do kategorie tři, a proto jsou tyto nepřesnosti penalizovány stejně. V našem případě však chceme, aby síť přiřadila obrázek jezevčíka raději do kategorie se psy, než do kategorie s domy, a proto musíme zavést jiný systém penalizace. Výpočet chybovosti sítě se tak stává obtížnějším. Protože chceme vstupnímu obrázku přiřadit právě jednu kategorii, bylo by vhodné v síti trénované na hierarchickém datasetu použít softmax klasifikátor. Klasický softmax klasifikátor penalizuje jen neurony, které mají být aktivní, ale dostatečně aktivní nejsou. Jinými slovy se tento klasifikátor snaží zvýšit výstupní pravděpodobnost pro neuron, který představuje cílovou kategorii. Ostatní neurony nejsou penalizovány přímo, ale pouze přes spojení. Tímto spojením je fakt, že součet výstupních pravděpodobností všech neuronů v softmax klasifikátoru musí být roven jedné. Pokud tedy v softmax klasifikátoru zvýšíme pravděpodobnost jednoho neuronu, hodnoty pravděpodobností ostatních neuronů se musí zákonitě snížit. Jakým způsobem se mají snížit však již není předepsáno, protože jak jsem zmiňoval, v klasickém softmax klasifikátoru jsou všechna přiřazení nesprávné kategorii stejně špatná. Při trénování na hierarchickém datasetu toto neplatí. Řešením by tedy mohlo být přidání nového členu do objektivní funkce, který by penalizoval aktivní neurony, které aktivní být nemají, a to tak, že více penalizovány by byly neurony vzdálenější od cílového neuronu. Pokud by byl cílovým neuronem neuron pes, neuron panelový a rodinný by byly penalizovány s koeficientem 3, neuron dům s koeficientem 2 a neurony teriér, jezevčík a chrt s koeficientem 1, přesně podle jejich vzdálenosti od cílového neuronu. 18
23 Kapitola 3 Implementace nástroje DN train Tato kapitola popisuje implementaci nástroje, který jsem použil pro trénování hlubokých neuronových sítí, abych mohl porovnat metody trénování hlubokých sítí předtrénování sítí autoenkodéry a algoritmus Backpropagation. V první sekci jsou uvedeny informace o systému Sun Grid Engine (SGE). V dalších sekcích jsou popsány vlastnosti a rozhraní implementované aplikace. 3.1 Sun Grid Engine Sun Grid Engine (SGE) je systém pro správu dávkového zpracování úloh. Systém je tvořen jednotlivými uzly (výpočetními jednotkami na FIT VUT v Brně jsou to zejména blade clustery a počítače v učebnách CVT). Uživatelé zadávají svoje úlohy do systému ve formě skriptů, které se mají vykonat, a systém již sám rozhodne o tom, kdy a na kterém z uzlů se daná úloha spustí. Engine umožňuje spouštět dva typy úloh krátké a dlouhé. Protože dlouhých úloh může jeden uživatel spustit najednou jen dvacet, implementoval jsem ve své aplikaci uživatelsky nastavitelný časový limit tak, aby se trénování sítě po vypršení limitu samo zastavilo a aktuální stav sítě se uložil na disk do zadaného adresáře. Při dalším spuštění trénování pokračuje dále. Tohoto chování využívá skript psaný v shellu pro spouštění dávkové úlohy na systému SGE, který mi poskytl Michal Hradiš. Protože jsem experimenty vytvářel v prostředí Matlab, které je implicitně nastaveno na vícevláknové výpočty, a protože v SGE jsou povoleny pouze jednovláknové úlohy, musel jsem Matlab spouštět s přepínačem -singlecompthread. 3.2 Nástroj DN train Celý nástroj jsem implementoval tak, aby byl obecně použitelný pro různé datasety a aby uměl sestavit a trénovat sítě s různými parametry. Prostředí Matlab jsem volil proto, že je vhodným nástrojem pro zpracování matic a výsledný program je přenositelný na všechny hlavní platformy a také proto, že se v prostředí Matlab dají úlohy spouštět dávkově a tedy zpracovávat v systému SGE Uživatelské rozhraní Výsledný program je souborem funkcí vytvořených v prostřední Matlab, který zastřešuje jediná uživatelem parametrizovatelná funkce DN train. Tato funkce přijímá parametry sítě 19
24 ve formě struktury. Základními parametry sítě jsou počet vrstev, velikosti vrstev, parametr weight decay a parametr řídkosti sítě pro každou vrstvu. Dalšími důležitými možnostmi nastavení jsou výstupní složka (do které se ukládá logovací soubor a výsledná síť), funkce pro načtení vstupních dat a také časový limit, po kterém má být trénování sítě pozastaveno. Konkrétní příklad této struktury je uveden v příloze B Vlastnosti nástroje a jeho částí Pomocí funkce DN train lze sestavit neuronovou síť libovolné hloubky a zakončit ji softmax vrstvou. Síť může být optimalizována autoenkodéry nebo lineárními dekodéry. Míra trénování je v obou případech nastavitelná počtem epoch optimalizačního algoritmu pro každou vrstvu sítě zvlášť. Na síť lze dále aplikovat algoritmus Backpropagation, míra optimalizace sítě je zase dána nastavitelným počtem iterací optimalizačního algoritmu. Pro autoenkodér, softmax klasifikátor, binární klasifikátor a Finetuning jsem postupně vytvořil funkce AE *, softmax *, binary * a finetuning *. Druhá část názvu funkce vyjadřuje jejich konkrétní účel. Tyto funkce jsou využívány zastřešující funkcí DN train pro sestavení, inicializaci a trénování sítě. Váhy ve skrytých vrstvách sítě jsou po sestavení sítě inicializovány na náhodné hodnoty z intervalu 6 n in +n, + 6 out+1 n in +n out+1. Biasy jsou nastaveny na nulové hodnoty. Váhy ve vrstvě softmax klasifikátoru jsou inicializovány na náhodné hodnoty s Gaussovým rozdělením pravděpodobnosti, se střední hodnotou µ = 0 a se standardní odchylkou σ = 0,005. Mezi parametry sítě lze specifikovat optimalizační metodu (například Conjugate Gradient nebo L-BFGS), která bude celou síť trénovat. K optimalizaci jsem využil funkci minfunc [19], jejíž výpočty jsou efektivnější ve srovnání s funkcí fminunc, která je poskytována prostředím Matlab. Funkci minfunc jsem upravil tak, aby byla přerušitelná po vypršení časového intervalu (viz následující odstavec). Velkou výhodou tohoto nástroje je jeho přerušitelnost po nastavitelném časovém limitu reálného (tedy ne strojového) času. Tato výhoda je využitelná hlavně v kombinaci se systémem SGE a jeho krátkými úlohami. Stačí skriptem spustit několik SGE úloh pro jeden (stále stejný) výpočet s funkcí DN train tak, aby každá úloha čekala na dokončení předchozí a zároveň nastavit funkci DN train přerušování například po dvou hodinách (doporučené hodnoty viz na [1]). Systém SGE zařadí první úlohu do fronty a až na ní přijde řada, tak ji začne vykonávat. Po vypršení časového limitu úloha uloží aktuální stav sítě na disk a sama se ukončí. Tím je jedna SGE úloha dokončena a je tedy spuštěna další, závislá na dokončení předchozí. Protože jde o stejnou úlohu s funkcí DN train, je načtena již částečně natrénovaná síť z disku a trénování pokračuje. Ani dlouhé výpočty tedy není v SGE třeba označovat za dlouhé úlohy, a protože je počet krátkých úloh na jednoho uživatele v systému SGE na FIT VUT v Brně méně omezen, je jich možno paralelně spouštět více. Funkce za běhu na standardní výstup a do logovacího souboru vypisuje aktuální údaje o síti (například počet uplynulých iterací, průměry velikostí vah sítě nebo aktuální úspěšnost sítě). Protože jsou funkci předávány ukazatelé na funkce, které načítají vstupní dataset, je nástroj použitelný na jakýkoliv dataset, ke kterému uživatel vytvoří načítací funkci. Trénování velkých sítí na velkých datasetech může být velmi náročné na paměť. Proto jsem některé výpočty s maticemi implementoval tak, že pracují vždy jen se stem vzorků vstupních dat najednou. Nejvíce paměti je potřeba při výpočtu gradientů vah a hodnoty 20
25 objektivní funkce pro autoenkodéry a při Finetuningu. S maximálně stem vstupních vzorků v jednom okamžiku tedy pracují funkce AE cost a finetuning cost. Do nástroje DN train jsem implementoval i binární klasifikátor. Jedná se o soubory binary *. Z časových důvodů jsem však nestihl zakomponovat funkce do nástroje. Fungují tedy jen jako samostatné funkce, pro výpočet objektivní funkce a gradientů vrstvy s binárními klasifikátory. Dále jsem implementoval funkce AveP a map pro výpočet Average Precision a Mean Average Precision, které jsou vhodné pro procentuální vyjádření úspěšnosti sítě zakončené binárními klasifikátory. 21
26 Kapitola 4 Experimenty a výsledky V této kapitole popisuji experimenty, při kterých jsem využil nástroj z kapitoly 3. Cílem experimentů bylo zjistit, jaký přínos má předtrénování hluboké sítě autoenkodéry na celkovou úspěšnost sítě. Tedy jak velkou mírou předtrénování odstraňuje nedostatky algoritmu Backpropagation a za jakých podmínek pomáhá předtrénování více. Experimenty probíhaly na dvou datových sadách, které blíže popisuji v kapitole 4.1. Všechny experimenty jsem spouštěl jako dávkové úlohy v systému SGE na FIT VUT v Brně [1]. 4.1 Datové sady Prvním z datasetů byl dataset MNIST [9], obsahující předzpracované obrázky s ručně psanými číslicemi (příklad viz na obrázku 4.1). Obrázky byly převedeny do stupňů šedi, vycentrovány a zmenšeny na velikost pixelů. Pixely byly normalizovány do intervalu (0;1). Trénování probíhalo na síti se dvěma skrytými vrstvami, vždy na vzorcích. Testování na vzorcích. Vstupem byly pixely předzpracovaného obrázku. Cílem tohoto datasetu je přiřadit vstupní vzorek (obrázek vycentrované číslice) do jedné z kategorií 0 9 podle hodnoty číslice. Druhým datasetem byl Caltech 101 [3], obsahující 9146 různě velkých barevných obrázků (příklad viz na obrázku 4.1), kde cílem je rozřadit obrázky do 101 kategorií. Mezi kategoriemi jsou například tváře, hodiny, klavíry, mravenci. Dataset byl před experimentem předzpracován [6]. Bylo provedeno vzorkování po mřížce s krokem 8 pixelů, vzorkovány byly oblasti o velikosti 16 pixelů. Dále byl použit descriptor RGB-SIFT. Vstupem sítě byla Bag of Visual Words reprezentace, vektor o velikosti Předzpracovaný dataset mi poskytl Michal Hradiš. Trénování probíhalo na síti se dvěma skrytými vrstvami a s 1515 vzorky (15 z každé kategorie). Testování na 7162 vzorcích. Protože jsou obě datové sady zaměřeny na klasifikaci vstupních dat, experimenty probíhaly na sítích, které byly zakončeny softmax vrstvou. 4.2 Experimenty Abych získal hodnotná data, snažil jsem se trénovat neuronové sítě s optimálními parametry a dosáhnout tak co nejlepší úspěšnosti sítě na daném datasetu. Na těchto pak porovnávat předtrénování autoenkodéry a algoritmus Backpropagation. První experimenty jsem tedy 22
27 Obrázek 4.1: Na levém obrázku je ukázka devíti číslic z datasetu MNIST, na pravém obrázku jsou čtyři obrázky z datasetu Caltech101. koncipoval jako trénování dvouvrstvých neuronových sítí s různě velkými skrytými vrstvami a různými parametry, abych našel nejlepší parametry sítě pro zadaný dataset. Pro oba datasety jsem jako počáteční parametry zvolil hodnoty doporučené v [15]. Nalezené nejoptimálnější hodnoty, které jsem dále používal při trénování sítí, jsou zobrazeny v tabulce 4.1. V tabulce 4.2 pro úplnost srovnávám výsledky mé nejúspěšnější sítě s výsledky získaných z literatury. Po získání optimálních parametrů sítě jsem přistoupil k samotnému porovnávání metod trénování. Každou síť (příklad takovéto sítě viz na obrázku 4.2), s danými parametry a počtem neuronů ve vrstvách, jsem trénoval následovně: 1. Síť jsem inicializoval. 2. Síť jsem předtrénoval autoenkodéry (provedl jsem 100 epoch optimalizačního algoritmu na každou vrstvu sítě) a zaznamenal úspěšnost sítě na testovacím datasetu. 3. Na předtrénovanou síť jsem aplikoval algoritmus Backpropagation (Finetuning) se 400 epochami optimalizačního algoritmu a opět zaznamenal úspěšnost sítě. 4. Síť jsem znovu inicializoval. 5. Na síť jsem aplikoval pouze algoritmus Backpropagation se 600 epochami optimalizačního algoritmu a naposledy zaznamenal úspěšnost sítě. V kapitole jsem popsal, jak je možné inicializovat neuronovou síť. Protože jde o inicializaci na náhodné hodnoty, provedením stejného experimentu na síti se stejnými parametry jsem nezískal stejné výsledky. Experimenty jsem proto několikrát zopakoval, abych odstranil výsledky sítí, které uvázly v nedobrém minimu. Na jednovrstvých sítích by měl samotný algoritmus Backpropagation bez předtrénování fungovat dobře. Protože jsem si však všiml, že jsou výsledky pro předtrénování na hlubokých sítích kladné, pro srovnání jsem provedl experimenty i na jednovrstvých sítích. 4.3 Výsledky experimentů Z výsledků trénování na datasetu MNIST (viz obrázek 4.3) vidíme, že samotné předtrénování sítě nepřineslo dobré výsledky, síť se učila jen obecné informace o datasetu. Samotná aplikace algoritmu Backpropagation dosahuje velmi dobrých výsledků, ale v kombinaci s předtrénování jsou výsledky lepší. Dataset MNIST není složitý, a proto se pohybujeme v úspěšnosti sítě přes 98%. Průměrný rozdíl úspěšností předtrénovaných a nepředtrénovaných sítí je 0,75%. Přestože se toto číslo může jevit jako zanedbatelné, každá desetina zlepšení je v takto vysoké úspěšnosti sítě velmi cenná. 23
Trénování sítě pomocí učení s učitelem
Trénování sítě pomocí učení s učitelem! předpokládá se, že máme k dispozici trénovací množinu, tj. množinu P dvojic [vstup x p, požadovaný výstup u p ]! chceme nastavit váhy a prahy sítě tak, aby výstup
Vytěžování znalostí z dat
Pavel Kordík, Josef Borkovec (ČVUT FIT) Vytěžování znalostí z dat BI-VZD, 2012, Přednáška 8 1/26 Vytěžování znalostí z dat Pavel Kordík, Josef Borkovec Department of Computer Systems Faculty of Information
Umělé neuronové sítě
Umělé neuronové sítě 17. 3. 2018 5-1 Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce 5-2 Neuronové aktivační
Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby
Algoritmy a struktury neuropočítačů ASN P4 Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby Vrstevnatá struktura - vícevrstvé NN (Multilayer NN, MLNN) vstupní vrstva (input layer)
Úloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
Jaroslav Tuma. 8. února 2010
Semestrální práce z předmětu KMA/MM Odstraňování šumu z obrazu Jaroslav Tuma 8. února 2010 1 1 Zpracování obrazu Zpracování obrazu je disciplína zabývající se zpracováním obrazových dat různého původu.
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
Klasifikace a rozpoznávání. Lineární klasifikátory
Klasifikace a rozpoznávání Lineární klasifikátory Opakování - Skalární součin x = x1 x 2 w = w T x = w 1 w 2 x 1 x 2 w1 w 2 = w 1 x 1 + w 2 x 2 x. w w T x w Lineární klasifikátor y(x) = w T x + w 0 Vyber
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík,, CSc. NEURONOVÉ SÍTĚ otázky a odpovědi 1 AKD_predn4, slide 8: Hodnota výstupu závisí na znaménku funkce net i, tedy na tom, zda bude suma
Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
Neuronové časové řady (ANN-TS)
Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci
Algoritmy a struktury neuropočítačů ASN - P11
Aplikace UNS při rozpoznání obrazů Základní úloha segmentace obrazu rozdělení obrazu do několika významných oblastí klasifikační úloha, clusterová analýza target Metody Kohonenova metoda KSOM Kohonenova
Využití neuronové sítě pro identifikaci realného systému
1 Portál pre odborné publikovanie ISSN 1338-0087 Využití neuronové sítě pro identifikaci realného systému Pišan Radim Elektrotechnika 20.06.2011 Identifikace systémů je proces, kdy z naměřených dat můžeme
Rozpoznávání písmen. Jiří Šejnoha Rudolf Kadlec (c) 2005
Rozpoznávání písmen Jiří Šejnoha Rudolf Kadlec (c) 2005 Osnova Motivace Popis problému Povaha dat Neuronová síť Architektura Výsledky Zhodnocení a závěr Popis problému Jedná se o praktický problém, kdy
Exponenciální modely hromadné obsluhy
Exponenciální modely hromadné obsluhy Systém s čekáním a neohraničeným zdrojem požadavků Na základě předchozích informací je potřeba probrat, jaké informace jsou dostupné v počtu pravděpodobnosti řešícím
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
5. Umělé neuronové sítě. neuronové sítě. Umělé Ondřej Valenta, Václav Matoušek. 5-1 Umělá inteligence a rozpoznávání, LS 2015
Umělé neuronové sítě 5. 4. 205 _ 5- Model umělého neuronu y výstup neuronu u vnitřní potenciál neuronu w i váhy neuronu x i vstupy neuronu Θ práh neuronu f neuronová aktivační funkce _ 5-2 Neuronové aktivační
Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44
Asociativní paměti Asociativní sítě (paměti) Cíl učení Asociace známého vstupního vzoru s daným výstupním vzorem Okoĺı známého vstupního vzoru x by se mělo také zobrazit na výstup y odpovídající x správný
3. Vícevrstvé dopředné sítě
3. Vícevrstvé dopředné sítě! Jsou tvořeny jednou nebo více vrstvami neuronů (perceptronů). Výstup jedné vrstvy je přitom připojen na vstup následující vrstvy a signál se v pracovní fázi sítě šíří pouze
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)
Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů) Autor: Vladimir Vapnik Vapnik, V. The Nature of Statistical Learning Theory.
Rosenblattův perceptron
Perceptron Přenosové funkce Rosenblattův perceptron Rosenblatt r. 1958. Inspirace lidským okem Podle fyziologického vzoru je třívrstvá: Vstupní vrstva rozvětvovací jejím úkolem je mapování dvourozměrného
Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
Státnice odborné č. 20
Státnice odborné č. 20 Shlukování dat Shlukování dat. Metoda k-středů, hierarchické (aglomerativní) shlukování, Kohonenova mapa SOM Shlukování dat Shluková analýza je snaha o seskupení objektů do skupin
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma
Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění Jan Klíma Obsah Motivace & cíle práce Evoluční algoritmy Náhradní modelování Stromové regresní metody Implementace a výsledky
12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc
Neuronové sítě a možnosti jejich využití Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc 1. Biologický neuron Osnova 2. Neuronové sítě Umělý neuron
Neuronové sítě Ladislav Horký Karel Břinda
Neuronové sítě Ladislav Horký Karel Břinda Obsah Úvod, historie Modely neuronu, aktivační funkce Topologie sítí Principy učení Konkrétní typy sítí s ukázkami v prostředí Wolfram Mathematica Praktické aplikace
1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD
.. Minimalizace logické funkce a implementace do cílového programovatelného obvodu Zadání. Navrhněte obvod realizující neminimalizovanou funkci (úplný term) pomocí hradel AND, OR a invertorů. Zaznamenejte
5. Umělé neuronové sítě. Neuronové sítě
Neuronové sítě Přesný algoritmus práce přírodních neuronových systémů není doposud znám. Přesto experimentální výsledky na modelech těchto systémů dávají dnes velmi slibné výsledky. Tyto systémy, včetně
Pravděpodobnost v závislosti na proměnné x je zde modelován pomocí logistického modelu. exp x. x x x. log 1
Logistická regrese Menu: QCExpert Regrese Logistická Modul Logistická regrese umožňuje analýzu dat, kdy odezva je binární, nebo frekvenční veličina vyjádřená hodnotami 0 nebo 1, případně poměry v intervalu
Kybernetika a umělá inteligence, cvičení 10/11
Kybernetika a umělá inteligence, cvičení 10/11 Program 1. seminární cvičení: základní typy klasifikátorů a jejich princip 2. počítačové cvičení: procvičení na problému rozpoznávání číslic... body za aktivitu
1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.
Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou
Křivky a plochy technické praxe
Kapitola 7 Křivky a plochy technické praxe V technické praxi se setkáváme s tím, že potřebujeme křivky a plochy, které se dají libovolně upravovat a zároveň je jejich matematické vyjádření jednoduché.
Normální (Gaussovo) rozdělení
Normální (Gaussovo) rozdělení Normální (Gaussovo) rozdělení popisuje vlastnosti náhodné spojité veličiny, která vzniká složením různých náhodných vlivů, které jsou navzájem nezávislé, kterých je velký
Neuronové sítě v DPZ
Univerzita J. E. Purkyně v Ústí nad Labem Fakulta životního prostředí Neuronové sítě v DPZ Seminární práce z předmětu Dálkový průzkum Země Vypracovali: Jan Lantora Rok: 2006 Zuzana Vašková Neuronové sítě
Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.
Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné
Numerická matematika 1
Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................
(Cramerovo pravidlo, determinanty, inverzní matice)
KMA/MAT1 Přednáška a cvičení, Lineární algebra 2 Řešení soustav lineárních rovnic se čtvercovou maticí soustavy (Cramerovo pravidlo, determinanty, inverzní matice) 16 a 21 října 2014 V dnešní přednášce
13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
Nerovnice. Vypracovala: Ing. Stanislava Kaděrková
Nerovnice Vypracovala: Ing. Stanislava Kaděrková Název školy Název a číslo projektu Název modulu Obchodní akademie a Střední odborné učiliště, Veselí nad Moravou Motivace žáků ke studiu technických předmětů
SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1
SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1 (Souřadnicové výpočty 4, Orientace osnovy vodorovných směrů) 1. ročník bakalářského studia studijní program G studijní obor G doc. Ing. Jaromír Procházka, CSc. prosinec
Soustavy lineárních diferenciálních rovnic I. řádu s konstantními koeficienty
Soustavy lineárních diferenciálních rovnic I řádu s konstantními koeficienty Definice a) Soustava tvaru x = ax + a y + az + f() t y = ax + a y + az + f () t z = a x + a y + a z + f () t se nazývá soustava
Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
PV021 Vícevrstvá neuronová síť pro rozeznávání mikroteček. Matúš Goljer, Maroš Kucbel, Michal Novotný, Karel Štěpka 2011
PV021 Vícevrstvá neuronová síť pro rozeznávání mikroteček Matúš Goljer, Maroš Kucbel, Michal Novotný, Karel Štěpka 2011 Úkol sítě Rozeznávat obrázky obsahující fluorescenční mikrotečky od obrázků s nespecifickým
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni
KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace
Derivace goniometrických funkcí
Derivace goniometrických funkcí Shrnutí Jakub Michálek, Tomáš Kučera Odvodí se základní vztahy pro derivace funkcí sinus a cosinus za pomoci věty o třech itách, odvodí se také několik typických it pomocí
Kombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
Lineární klasifikátory
Lineární klasifikátory Lineární klasifikátory obsah: perceptronový algoritmus základní verze varianta perceptronového algoritmu přihrádkový algoritmus podpůrné vektorové stroje Lineární klasifikátor navrhnout
Aplikovaná numerická matematika
Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních
CVIČENÍ 4 Doc.Ing.Kateřina Hyniová, CSc. Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze 4.
CVIČENÍ POZNÁMKY. CVIČENÍ. Vazby mezi systémy. Bloková schémata.vazby mezi systémy a) paralelní vazba b) sériová vazba c) zpětná (antiparalelní) vazba. Vnější popis složitých systémů a) metoda postupného
Využití tabulkového procesoru MS Excel
Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...
Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT
PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová
ANALYTICKÁ GEOMETRIE V ROVINĚ
ANALYTICKÁ GEOMETRIE V ROVINĚ Analytická geometrie vyšetřuje geometrické objekty (body, přímky, kuželosečky apod.) analytickými metodami. Podle prostoru, ve kterém pracujeme, můžeme analytickou geometrii
2. RBF neuronové sítě
2. RBF neuronové sítě Kapitola pojednává o neuronových sítích typu RBF. V kapitole je popsána základní struktura tohoto typu neuronové sítě. Poté následuje definice a charakteristika jednotlivých radiálně
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.
Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi
Západočeská univerzita v Plzni. Fakulta aplikovaných věd. Ivana Kozlová. Modely analýzy obalu dat
Západočeská univerzita v Plzni Fakulta aplikovaných věd SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MATEMATICKÉ MODELOVÁNÍ Ivana Kozlová Modely analýzy obalu dat Plzeň 2010 Obsah 1 Efektivnost a její hodnocení 2 2 Základní
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)
VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C) max. 3 body 1 Zjistěte, zda vektor u je lineární kombinací vektorů a, b, je-li u = ( 8; 4; 3), a = ( 1; 2; 3), b = (2; 0; 1). Pokud ano, zapište tuto lineární kombinaci.
1 0 0 u 22 u 23 l 31. l u11
LU dekompozice Jedná se o rozklad matice A na dvě trojúhelníkové matice L a U, A=LU. Matice L je dolní trojúhelníková s jedničkami na diagonále a matice U je horní trojúhelníková. a a2 a3 a 2 a 22 a 23
Úvod do optimalizace, metody hladké optimalizace
Evropský sociální fond Investujeme do vaší budoucnosti Úvod do optimalizace, metody hladké optimalizace Matematika pro informatiky, FIT ČVUT Martin Holeňa, 13. týden LS 2010/2011 O čem to bude? Příklady
= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
Matematika pro informatiky
(FIT ČVUT v Praze) Konvexní analýza 13.týden 1 / 1 Matematika pro informatiky Jaroslav Milota Fakulta informačních technologíı České vysoké učení technické v Praze Letní semestr 2010/11 Extrémy funkce
Připomenutí co je to soustava lineárních rovnic
Připomenutí co je to soustava lineárních rovnic Příklad 2x 3y + z = 5 3x + 5y + 2z = 4 x + 2y z = 1 Soustava lineárních rovnic obecně Maticový tvar: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a
Jednoduchá exponenciální rovnice
Jednoduchá exponenciální rovnice Z běžné rovnice se exponenciální stává, pokud obsahuje proměnnou v exponentu. Obecně bychom mohli exponenciální rovnici zapsat takto: a f(x) = b g(x), kde a, b > 0. Typickým
2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2
Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
AVDAT Nelineární regresní model
AVDAT Nelineární regresní model Josef Tvrdík Katedra informatiky Přírodovědecká fakulta Ostravská univerzita Nelineární regresní model Ey i = f (x i, β) kde x i je k-členný vektor vysvětlujících proměnných
FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci
FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY Dana Černá http://www.fp.tul.cz/kmd/ Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci OBSAH A CÍLE SEMINÁŘE: Opakování a procvičení vybraných
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ
DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast CZ.1.07/1.5.00/34.0963 IV/2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti
Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce
Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 2. Množiny, funkce MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky v Brně
Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky Algoritmy řízení topného článku tepelného hmotnostního průtokoměru Autor práce: Vedoucí
algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V
Hledání lokálního maxima funkce algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V Č R Abstrakt : Lokální maximum diferencovatelné funkce je hledáno postupnou změnou argumentu. V
cv3.tex. Vzorec pro úplnou pravděpodobnost
3 cvičení - pravděpodobnost 2102018 18cv3tex n i=1 Vzorec pro úplnou pravděpodobnost Systém náhodných jevů nazýváme úplným, jestliže pro něj platí: B i = 1 a pro i k je B i B k = 0 Jestliže je (Ω, A, P
Lineární funkce, rovnice a nerovnice
Lineární funkce, rovnice a nerovnice 1. Lineární funkce 1.1 Základní pojmy Pojem lineární funkce Funkce je předpis, který každému číslu x z definičního oboru funkce přiřadí právě jedno číslo y Obecně je
Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence
APLIKACE UMĚLÉ INTELIGENCE Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence Aplikace umělé inteligence - seminář ING. PETR HÁJEK, PH.D. ÚSTAV SYSTÉMOVÉHO INŽENÝRSTVÍ A INFORMATIKY
1.1 Příklad z ekonomického prostředí 1
1.1 Příklad z ekonomického prostředí 1 Smysl solidního zvládnutí matematiky v bakalářských oborech na Fakultě podnikatelské VUT v Brně je především v aplikační síle matematiky v odborných předmětech a
U Úvod do modelování a simulace systémů
U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení
fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.
Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
Statistická teorie učení
Statistická teorie učení Petr Havel Marek Myslivec přednáška z 9. týdne 1 Úvod Představme si situaci výrobce a zákazníka, který si u výrobce objednal algoritmus rozpoznávání. Zákazník dodal experimentální
Obsah přednášky Jaká asi bude chyba modelu na nových datech?
Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich
Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté
Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté polynomy pro případ dvou uzlových bodů ξ 1 = 1 a ξ 2 = 4. Experimentální body jsou x = [0.2 0.4 0.6 1.5 2.0 3.0
Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.
Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Dnešní program Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu
( + ) ( ) f x x f x. x bude zmenšovat nekonečně přesný. = derivace funkce f v bodě x. nazýváme ji derivací funkce f v bodě x. - náš základní zápis
1.. Derivace elementárních funkcí I Předpoklad: 1 Shrnutí z minulé hodin: Chceme znát jakým způsobem se mění hodnot funkce f ( f ( + f ( přibližná hodnota změn = přesnost výpočtu se bude zvětšovat, kdž
Co je obsahem numerických metod?
Numerické metody Úvod Úvod Co je obsahem numerických metod? Numerické metody slouží k přibližnému výpočtu věcí, které se přesně vypočítat bud nedají vůbec, nebo by byl výpočet neúměrně pracný. Obsahem
NG C Implementace plně rekurentní
NG C Implementace plně rekurentní neuronové sítě v systému Mathematica Zdeněk Buk, Miroslav Šnorek {bukz1 snorek}@fel.cvut.cz Neural Computing Group Department of Computer Science and Engineering, Faculty
Přednáška 3: Limita a spojitost
3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice
Interpolace, aproximace
11 Interpolace, aproximace Metoda nejmenších čtverců 11.1 Interpolace Mějme body [x i,y i ], i =0, 1,...,n 1. Cílem interpolace je najít funkci f(x), jejíž graf prochází všemi těmito body, tj. f(x i )=y
Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.
Matice přechodu Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např. u příkladu 7 (v ) dostaneme: Nyní bychom mohli postupovat jako u matice homomorfismu
Testování statistických hypotéz
Testování statistických hypotéz 1 Testování statistických hypotéz 1 Statistická hypotéza a její test V praxi jsme nuceni rozhodnout, zda nějaké tvrzeni o parametrech náhodných veličin nebo o veličině samotné