Neuronové sítě (státnice)
Obsah
- 1 Rozsah látky
- 2 Materiály
- 3 Neurofyziologické minimum
- 4 Učení s učitelem
- 5 Asociativní paměti
- 6 Stochastické modely
- 7 Klastrovací techniky a samoorganizace
- 8 Učení bez učitele v ANN
- 9 Modulární, hierarchické a hybridní modely neuronových sítí
- 10 Genetické algoritmy
- 11 Aplikace umělých neuronových sítí a evolučních technik
Rozsah látky[editovat | editovat zdroj]
Oficiální seznam otázek ([1] léto 2011):
- Neurofyziologické minimum: struktura neuronu, typy synapsí, hlavní části mozku.
- Modely pro učení s učitelem: perceptron, algoritmus zpětného šíření, strategie pro urychlení učení, interní reprezentace znalostí, generalizace, regularizační techniky. Asociativní paměti; Hebbovské učení, BAM, Hopfieldův model, energetická funkce a hledání suboptimálních řešení. Stochastické modely; simulované žíhání, Boltzmannův stroj.
- Klastrovací techniky a samoorganizace; k-means algoritmus, hierarchické shlukování, evoluční stromy.
- Umělé neuronové sítě založené na principu učení bez učitele; Ojův algoritmus učení, laterální inhibice, Kohonenovy mapy a jejich varianty pro učení s učitelem, sítě typu ART.
- Modulární, hierarchické a hybridní modely neuronových sítí; adaptivní směsi lokálních expertů, vícevrstvé Kohonenovy mapy, sítě se vstřícným šířením, RBF-sítě, kaskádová korelace. Genetické algoritmy, věta o schématech.
- Aplikace umělých neuronových sítí a evolučních technik (analýza dat, bioinformatika, zpracování obrazové informace, robotika a další).
Materiály[editovat | editovat zdroj]
Zejména slajdy Mrázových. Viz Neuronové sítě (stránka předmětu) - http://ksvi.mff.cuni.cz/~mraz/nn/ http://ksvi.mff.cuni.cz/~mraz/atns/
Pro stručnější nakopávačku na rozjezd můžete zkusit dataminingovou přednášku http://ksvi.mff.cuni.cz/~mraz/datamining/lecture/Dobyvani_Znalosti_Prednaska_Neuronove_site.pdf
Lehce dohledatelna na webu(v knihovne jich taky par je) je kniha Neural Networks - A Systematic Introduction, Raul Rojas. Struktura slajdu kopiruje dost presne tuhle knihu, doporucuju otevrit, kdykoliv nerozumite vecem ve slajdech.
Neurofyziologické minimum[editovat | editovat zdroj]
- http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_Uvod.pdf
- Wikipedie (mozek, neuron, synapse)
- Informatika a kognitivní vědy
Učení s učitelem[editovat | editovat zdroj]
Perceptron[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_Perceptron.pdf
Algoritmus zpětného šíření[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_BP.pdf
Strategie pro urychlení učení[editovat | editovat zdroj]
Viz slajdy výše. Volba počátečních vah, zpětné šíření s momentem.
Adaptivní parametr učení: Silva & Almeida (zrychluj, zůstává-li znaménko chybového gradientu stejné, zpomal, když se změnilo), Delta-bar-delta (testuj znaménko s momentem), Super SAB (urychluje, při změně znaménka chyby se vrátí a rychle zpomalí).
Algoritmy druhého řádu (druhá derivace chybového gradientu): Newtonova metoda (Hessovská matice), QuickProp (dívá se na poslední dvě parciální derivace), Levenberg-Marquart (kombinace předchozích).
Relaxační metody - náhodná perturbace vah, možná to bude lepší.
Interní reprezentace znalostí[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_IR.pdf
Reprezentace neuronu je v zásadě množina výstupních stavů přes všechny vstupy. Chceme, aby neurony dávaly jednoznačné výstupy (0, 0.5, 1), rozličnou reprezentaci vnitřních neuronů pro různé výstupy sítě, a vůbec unikátní nekonstantní reprezentaci.
Generalizace[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_BP_analyza.pdf
Regularizační techniky[editovat | editovat zdroj]
Metody prevence přeučení. Idea - i když vezmeme náhodně generovaný šum tak v něm back prop po dlouhém učení najde nějaké pravidla, proto do našich dat tak trochu kopeme aby tam tyhle 'pravidla v šumu' nevznikaly. Vlastně chceme síť, co je invariantní na určitou míru šumu.
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_Uvod.pdf
http://www.cedar.buffalo.edu/~srihari/CSE574/Chap5/Chap5.5-Regularization.pdf
Nastin - Metody:
- Urceni spravnych vstupnich parametru - korelacni koeficienty, PCA, expert, ...
- Vcasne zastaveni trenovani (trenovaci+validacni sada) - Error na validacni sade nejdriv klesa a kdyz se sit zacne preucovat, tak zacne rust.
- Urceni spravneho poctu skrytych neuronu (nekolik behu s ruznym poctem neuronu, vzit nejnizsi s jeste dobrym vykonem).
- Ruzne druhy zasumovani datove sady (muzeme zasumovat vzdy predtim, nez predlozime vzor; muzem zasumit vsechno pred trenovanim) - gausovske, chytrejsi podle typu dat (treba image data).
- Dropout - nahodne zapinam/vypinam neurony pri uceni - teoreticky sice mam sit, co ma n neuronu. Ale protoze muzou byt nahodne vypnute/zapnute tak vlastne trenuju 2^n siti (co sdileji parametry). Takze ve vysledku pouzivam jakoby sit co predstavuje prumer z 2^n siti.
- Prorezavani neuronovych siti [2] - Celkem intuitivne +- pocitam jak jsou ruzne neurony citlive na vstup, pokud nejsou, tak se moc nepodili na vysledku a muzu je vypnout.
- L1, L2 regularizace - Idea L2 regularizace je, ze mame datovou sadu A, z ni udelame B pomoci nejake linearni transformace (pro kazdy x=ax+b, y netransformuju). Kdyz naucime deterministicky dve site, jednu na A, druhou na B, tak bychom meli dostat dve site ktere jsou zas +- linearne zavisle ale davaji stejne vysledky. Ta ktera je ucena z B by mela mit vahy transformovane vahy prvni site. Takze vezmeme tu sit B a upravim vahy tak, aby fungovala pro sadu A, kazdou vahu nejak transformuju zpatky (nejsem si jisty jak). Na webu [3] zas rikaji, ze L2 regularizace je neco jineho, tak si nejsem jisty.
Asociativní paměti[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_AM.pdf
Heteroasociativní sítě, autoasociativní, sítě pro rozpoznávání vzorů. Bez zpětné vazby, rekurentní (dynamický systém, atraktory), vlastní automaty (co jsou pevné body systému? vlastní vektory váhové matice), asociativní učení (vzory jsou atraktory).
Hlavní princip: Mám m vektorů $ x^1,\ldots,x^m $ a mapuju je na m vektorů $ y^1,\ldots,y^m $ (typicky bipolární vektory) pomocí jednovrstvé neuronové sítě (n vstupních neuronů plně propojeny s k výstupních). Váhy sítě si napíšu jako matici, pak když předložím nějaký vzor tak dostanu pro lineární aktivaci $ e=xW $. Když chci klasifikovat $ x^1 $ na $ y^1 $ tak si můžu nastavit $ W^1=x^{1T}y^1 $ protože pak po předložení x1 dostanu $ e=x^1W^1=||x^1||y^1 $.
Zajímavé je než začneme s učením se kouknout na tzv autoasociativní rekurentní sítě. To jsou ty, pro které vstupy jsou stejné jako výstupy a navíc jsou výstupy zapojené zpět na vstupy. Nejprve k čemu by tohle mohlo být - typicky chceme odšumět vstup. Pro takovou síť je váhová matice W čtvercová. Jak to funguje je, že předložíme vstup x a spočítáme $ x_0=xW $ a pak iterujeme $ x_1=x_0W $ dokud nedostaneme $ x_*=x_*W $. To znamená, že se doiterujeme k vlastnímu vektoru W. Pokud máme nějakou matici co má n vlastních vektorů, tak libovolný vstup můžeme rozložit na lineární kombinaci těhle vlastních vektorů: $ x=\alpha_1 x^1+\ldots +\alpha_n x^n $. A při průchodu tohohle vektoru sítí se násobí jednotlivé složky jejich vlastními čísly $ x_t=\alpha_1 \lambda^t x^1+\ldots +\alpha_n \lambda^t x^n $. Takže takovýchle systém vždy zkonverguje k vlastnímu vektoru s nejvyšším vlastním číslem, pokud je jeho koeficient v rozkladu nenulový. Tohle je ale výsledek, co nám vadí. My bychom chtěli, aby to tak nějak konvergovalo k nejbližšímu vektoru, ne k tomu co má nejvyšší vlastní číslo. Proto musíme používat nelineární přenosové funkce (ty se tohohle zbaví).
Hebbovské učení[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_AM.pdf
What fires together wires together. Korelační matice, perturbační člen, crosstalk. Vhodná ortogonálnost vstupů. Omezená kapacita $0.18n$.
Hebbovské učení je princip, kdy nastavíme váhy v perceptronu tak, aby odpovídaly korelačnímu koeficientu vstupu a očekávanému výstupu. V tomhle případě u asociativních pamětí máme m vektorů $ x^1,\ldots,x^m $ a mapuju je na m vektorů $ y^1,\ldots,y^m $ všechny vektory jsou bipolární (prvky -1,1). V sítí máme n vstupních neuronů a k výstupních. Váhu mezi i-tým vstupním a j-tým výstupním pro vstup/výstup $ x^1,y^1 $ tedy nastavím: $ w_{ij}=x^1_i y^1_j $. Zapíšu do matice jako $ W^1=x^{iT}y^i $ a pro všechny vzory sečtu do jedné $ W=\sum_i^m W^i $.
Podívejme se na to, jak se bude chovat asociativní pamět s přenosovou funkcí sgn (-1 pro záporné, 1 pro kladné). Pro předložený vzor $ x^i $ dostaneme $ e=x^iW=\sum_j^m x^iW^j=\sum_j^m x^iW^j=||x^i||y^i+\sum_{j\neq i} x^ix^{jT}y^j $. Tady vidíme, že pokud vektory x^i jsou navzájem ortogonální, tak dostaneme rovnou výsledek. Když ale aplikujeme sgn tak dostaneme $ sgn(e)=sgn(||x^i||y^i+\sum_{j\neq i} x^ix^{jT}y^j)=sgn(y^i+\sum_{j\neq i} \frac{x^ix^{jT}}{||x^i||}y^j) $. Té sumě se říká crosstalk a chceme ji nízkou, jinak síť ztrácí schopnost rozpoznávat vzory. Po tom co jsme přidali sgn tak jsme dostali, že stačí aby $ x^ix^{jT}<<||x^i|| $.
Hopfieldův model[editovat | editovat zdroj]
Hopfieldův model je princip, kde máme n neuronů co jsou všechny navzájem plně propojené. Pak síť funguje tak, že vybereme náhodný neuron a updatneme jeho aktivaci klasicky jako v normálním perceptronu podle vah a aktivace ostatních neuronů.
BAM[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_BAM_HM.pdf
Bidirektivní asociativní paměť.
Energetická funkce a hledání suboptimálních řešení[editovat | editovat zdroj]
Tady je asi zajímavé zmínit, proč Hopfieldova metoda byla tak hrozně zajímavá (když byla ještě nová). A to proto, že to trochu vypadalo, že by s její pomocí šlo řešit velmi rychle NP-úplné problémy - za pomoci masivní paralelizace. Pokud sestrojíme takovou H-síť, že její globální minimum je řešení NP-úplné úlohy tak ji můžeme paralelizovat tak, že spočítáme vždy update všech jejích neuronů najednou paralelně. Takže synchronizace by se dělala jen po updatu všech neuronů. Hopfieldův model zaručuje jen dosažení lokálního minima a později se přišlo na to, že abychom postavili sítě co dosáhnou globálního bude potřeba exponenciálně hodně vah. Nakonec tedy H-sítě dopadly jako relativně slušné aproximátory NP-úplných problémů, kde nám nevadí že se zastaví v lokálním minimu.
Použití Hopfieldova modelu pro řešení optimalizačních úloh (n věží, TSP). Postavíme energetickou funkci a pak podle ní nastavíme váhy neuronů.
TSP pomocí Hopfield modelu[editovat | editovat zdroj]
Máme n měst mezi městy $ S_i,S_j $ je cesta délky $ d_{ij} $. Postavíme síť s nxn neurony, kde neuron $ x_{ik} $ je zapnutý, pokud cestující navštívil město i jako k-té. Pokud si z toho uděláme matici, tak v každém řádku a sloupci je právě jeden neuron zapnutý. Délku takhle zakódované cesty můžeme napsat jako: $ L=\sum_{i,j,k}d_{ij}x_{i,k}x_{j,k+1} $. Kdybychom jen tohle minimalizovali, tak dostaneme síť kde všechny neurony jsou vypnuté, proto je potřeba přidat ještě podmínku aby to hledalo cesty: $ P=\sum_i(1-\sum_k x_{i,k})^2+\sum_k(1-\sum_i x_{i,k})^2 $. Pro P je minimum když v každém řádku respektive sloupci je právě jeden neuron aktivní, což je přesne cesta co navštíví všechny města. Celková energetická funkce tedy bude $ E=\frac 1 2 L + \frac \gamma 2 P $, kde $ \gamma $ je regularizační konstanta.
Z energetické funkce nám už teď vypadnou váhy. Napíšeme si $ L(i,j,k,l) $ prvek sumy kde je $ x_{i,k}x_{j,l} $ v L a podobně v P. Pro $ L(i,j,k,k+1)=d_{ij}x_{i,k}x_{j,k+1} $ a jinak 0. Pro P dostaneme $ P(i,i,k,k)=\gamma x_{i,k}^2+\gamma/2 $. Z toho dostaneme váhy $ w_{i,j,k,l} $ mezi neurony $ x_{i,k} $ a $ x_{j,l} $:
- pokud $ i=j \vee k=l $: $ w_{i,k,j,l}=-\gamma $ a práh je $ \theta_{i,k,j,l}=-\gamma/2 $.
- jinak 0
- navíc pokud $ l=k+1 $ tak k $ w_{i,k,j,l} $ odečteme délku cesty mezi i a j $ w_{i,k,j,l}-=d_{ij} $
Takováhle síť najde nějaké lokální minimum. Podle toho jak velké jsou délky mezi městy a jak je nastavena regularizační konstanta nemusíme dostat vůbec přípustné řešení TSP (cesty co navštíví dvě města za krok apod). Proto je nutné nastavit $ \gamma $ dostatečně velké, ale zas ne tak velké aby úplně znevážilo délky cest. Vidíme, že síť používá n^2 neuronů a tak pokud máme hardware co má n^2 procesorů, tak tohle upočítáme velmi rychle. Na druhou stranu TSP má velké množství lokálních minim, takže prakticky nikdy nedostaneme globální minimum. V kombinaci s stochastickými metodami ale už asi jde dostat docela slušnou aproximaci, a pokud to počítáme třeba na grafické kartě tak velmi rychle.
Stochastické modely[editovat | editovat zdroj]
Pozn. tenhle okruh má výrazně nižší rozsah (aspoň v slajdech Mrázové) než jakýkoli jiný okruh. Je docela možné, že i kdyby se na něj zeptali tak asi nebude stačit to co je v slajdech Mrázové (+- to co je tu napsané). Zas na druhou stranu to nejspíš znamená, že aspoň Mrázová se na něj asi moc často neptá.
Simulované žíhání[editovat | editovat zdroj]
Z názvosloví energetických funkcí. Normálně updatujeme nějaké hyperparametry jen pokud to snižuje energetickou funkci. Při simulovaném žíhání to tak není. Pokud update hyperparametru $ x+\Delta x $ zvýší energetickou funkci o $ \Delta E $ tak přijmeme změnu s pravděpodobností $ \frac{1}{1+e^{\Delta E/T}} $, kde T je teplota co kontroluje celý proces. Prakticky tohle je celý nápad, kdybych dostal tuhle otázku tak bych asi nakreslil třeba obrázek toho, jak to přeskakuje lokální minimum, a asi ještě nějaký fluff okolo. Jak zvolit teplotu - intuitivně teplota je něco jako energie co si půjčujeme když jdeme proti optimální energetické funkci. Typicky bychom chtěli, aby ke konci celého trénování už teplota byla nulová. Problém toho jak správně snižovat teplotu během trénování je ale obecně dost těžký, něco jako explore vs exploit.
Boltzmannův stroj[editovat | editovat zdroj]
Je to Hopfieldova síť co vychází z simulovaného žíhání. Vezmeme v potaz binární síť (hodnoty neuronů jsou 1/0). Energetickou funkci nadefinujeme jako $ E=-\sum_{i,j}w_{ij}x_{i}x_{j}+\sum_{i}\theta_i x_i $. Když se koukneme na to co je rozdíl energie při zapnutí neuronu i tak dostaneme $ \Delta E=E_{x_i=0}-E_{x_i=1}=\sum_{j}w_{ij}x_{j}-\theta_i $ což je potencionál neuronu i $ \zeta_i $. Když teď aplikujeme princip z simulovaného žíhání, tak dostaneme, že neuron i zapneme na 1 s pravděpodobností $ p_i=\frac{1}{1+exp(-\zeta_i/T)} $.¨
Výhoda tohohle modelu je podobná, jako rozdíl mezi obyčejným hillclimbingem a simulovaným žíháním. Pokud je teplota T nízká (nulová), tak $ p_i=sgn(\zeta_i) $ což je přesně jako v Hopfieldově modelu. Když zvýšíme T tak algoritmus dělá trochu náhodnou procházku (s nepřesným kompasem) a tak s trochou štěstí přeskočí nějaká náhodná minima. Pokud volíme T podle správného plánu tak se dostaneme do globálního minima s vysokou pravděpodobností.
Klastrovací techniky a samoorganizace[editovat | editovat zdroj]
k-means algoritmus[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_UBU.pdf
hierarchické shlukování[editovat | editovat zdroj]
evoluční stromy[editovat | editovat zdroj]
Učení bez učitele v ANN[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_UBU.pdf
Ojův algoritmus učení[editovat | editovat zdroj]
Používá se na zjištění první komponenty PCA. Pokud máme dvojrozměrná data, která vznikla z jednorozměrných nějakou lineární transformací, tak cílem PCA je zjistit jaká transformace to byla a obrátit ji a snížit dimenzi. Když se tohle rozšíří na více dimenzí, tak takhle dimenzi můžeme redukovat několikrát. Ojův algoritmus najde tu nad-přímku v vstupních datech tak, že na ní mají data nejvyšší varianci.
Pro data $ X=\{x^1,\ldots,x^m, x^i\in \mathbb{R}^n\} $ hledáme n-rozměrný váhový vektor w tak, že $ \sum_{i=1}^m x^i \cdot w $ je maximální (úhly mezi x^i a w jsou malé). To jak to učíme je relativně jasné. Zvolíme náhodně váhový vektor w a v každé iteraci ho otočíme trochu směrem k nějakému vektoru z X, pokud je nějaký 'směr' který data v X mají, tak by to pak mělo oscilovat okolo něho. Rozdíl mezi vektorem x a w je vektor z w do x, kdybychom update měli $ \Delta w=x-w $ tak ale vždy nastavíme váhu na x. Záchranou je ale skalární produkt, který nám řekne jaký úhel je mezi x a w a podle toho můžeme updatovat buď hodně, nebo málo: $ \phi = w\cdot x $. Když pak zvolíme $ \Delta w =x-\phi w $ tak už jsme skoro hotovi. Pro vzory co jsou kolmé na w $ \Delta w =x $ a pro úhly blízké pravému se dostává k x-w což bude ale okolo 0. Nakonec ještě celé vynásobíme učící konstantou a $ \phi $(to protože to nám pomůže v důkazu) $ \Delta w=\gamma \phi (x-\phi w) $.
Důkaz konvergence(Idea): Vektor w se updatem nikdy nedostane mimo 'konvexní obal' vektorů (lepší popis by byl asi úhlový rozsah vektorů). Hodně složité vysvětlit bez obrázku - koukněte se do Rojase.
- $ \phi=w\cdot x $ pokud je w jednotkový vektor tak to je délka projekce x na w
- $ x-\phi w $ je vektor kolmý na w (vektor z projekce x na w na x)
- $ w+\Delta w $ posune vektor w někam mezi x a w (neposune ho na druhou stranu za x), aspoň pokud učící parametr je <1
Proto stačí, že vektor w je jednotkový. On ve skutečnosti nebude jednotkový, ale bude se blížit k 1. Opět docela složité bez obrázku, důkaz spočívá v tom, že když |w|>1 tak se snižuje a když |w|<1 tak zvyšuje.
laterální inhibice[editovat | editovat zdroj]
Kohonenovy mapy[editovat | editovat zdroj]
...a jejich varianty pro učení s učitelem.
Sítě typu ART[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_KH_HM.pdf
Modulární, hierarchické a hybridní modely neuronových sítí[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/atns/ATNS_Prednaska_Modular.pdf
adaptivní směsi lokálních expertů[editovat | editovat zdroj]
Modulární architektura - rozdělíme zadání na různé funkce a ty každou učíme zvlášť na jiné NN. Tyhle pak zapojíme vedle sebe a nad ně zapojíme do další vrstvy řídící síť, která dostává jejich výstupy + originální vstup a ty nějak 'míchá'.
Příklad: chceme naučit funkci $ f(x,i)=x+g_i(x) $ kde g_i je třeba 5 různých funkcí (sin,cos,sgn,lin,log,...). Naučíme jednotlivé funkce zvlášť a pak jejich výstupy připojíme k řídící vrstvě, kterou naučíme aby sečetla x s výstupem i-té NN. K čemu tohle může být dobré je, když si vzpomeneme, že chceme přidat novou funkci, tak nemusíme učit znova celou síť. Stačí naučit modul pro novou funkci a naučit znova řídící vrstvu.
vícevrstvé Kohonenovy mapy[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/atns/ATNS_Prednaska_Self-Organizing.pdf Slajdy čerpají z tohoto článku, kde je to, jako vždy, konečně pochopitelně vysvětlené: http://www.cs.uga.edu/~suchi/pubs/suchi-nn-1995.pdf
sítě se vstřícným šířením[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_KM_HM.pdf
RBF-sítě[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_KM_HM.pdf
kaskádová korelace[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_KM_HM.pdf
Asi nejjednodušší hybridní model. Trénujeme neuronovou síť, začneme jen s výstupními neurony. Chvíli trénujeme a pokud error je moc vysoký, tak přidáme neuron, ten zapojíme na vstup a výstupní vrstvu zapojíme na něj. Takhle pokračujeme a přidáváme neurony.
Genetické algoritmy[editovat | editovat zdroj]
http://ksvi.mff.cuni.cz/~mraz/nn/Neuronove_Site_Prednaska_GA.pdf
věta o schématech[editovat | editovat zdroj]
Aplikace umělých neuronových sítí a evolučních technik[editovat | editovat zdroj]
Na tuhle otázku se Mrázová ptá opravdu málokdy, ale předpokládám, že přednáška ATNS ji bude docela dobře pokrývat. Nemyslím, že tahle otázka má nějaké pevné osnovy, spíš to je otázka na to, jestli jste přečetli tak alespoň 10 neteoretických článků o NN.
Analýza dat[editovat | editovat zdroj]
Nejčastěji se používá asi klasická lineární/logistická regrese (což není neuronová síť) pro predikci nějaké cílové proměnné(resp. třídy). Perceptron s logistickou aktivační funkcí je stejný model, jako logistická regrese, rozdíl je v tom jak se trénují parametry.
Jinak obecně pro analýzu dat se používají prakticky všechny metody, které jsou v okruzích, asi je tu od zkoušeného vyžadován nějaký příklad, tak si vyberte nějakou metodu a najděte si k ní článek co se zabývá aplikací.
Např: V bance mají kopu indikátorů o klientech:
- statistiky o jejich účtech
- behaviorální indikátory - jak často vybírají z bankomatu, ..
- sociální indikátory - věk, jestli žijou v rodině, ...
- indikátory o splácení půjček - jak často jsou po splatnosti, insolvence (nesplatí půjčku), ...
Cíl je, když přijde klient tak určit, s jakou pravděpodobností splatí půjčku. Součástí úlohy je: vybrat relevantní indikátory, natrénovat různé modely (klasické vrstevnaté ANN s různými architekturami), otestovat modely a vybrat ten s nejlepší prediktivní schopností.
Bioinformatika[editovat | editovat zdroj]
V bioinformatice data co analyzujeme budou asi primárně DNA a RNA sekvence. Aplikace je, že vezmeme nejakou anotovanou datovou sadu sekvencovaných DNA/RNA a vyvíjíme nějaký prediktivní model (predikujeme něco z anotací).
Zpracování obrazové informace[editovat | editovat zdroj]
Určitě zmínit konvoluční neuronové sítě. V dnešní době se prakticky nic jiného nepoužívá. V 2015-2016 relativně populární obor NN, je hodně zajímavých článků, např http://arxiv.org/abs/1508.06576 a články z tohoto vycházející.
Robotika[editovat | editovat zdroj]
Zpracování visual feedu robota spadá pod zpracování obrazové informace. Nějaký prediktivní model o rozhodování akcí robota může být neuronová síť. Možná se kouknout na přednášku Evoluční robotika. Zvláštní postavení tu bude mít asi online-učení, např Reinforcement learning.
Příklad - Braintenberg vehicle Máme autíčko co má dva laserové senzory - jedno na levém předním světle, druhé na pravém světle. Oba senzory jsou směrové, namířené dopředu a nemají moc překryv. Senzory mají analogický signál od 0-1 který znamená jak daleko od senzoru je nějaká překážka.
Těmito senzory chceme ovládat motory pro jednotlivá kola a tím zatáčet robota tak, aby nenarazil do překážky. Neuronovou síť která ovládá robota zapojíme takhle (L značí levý senzor, R pravý, + znamená excitační synapsi, - inhibiční):
- L + levý motor
- R + pravý motor
Naopak pokud chceme, aby robot sledoval překážky tak zapojíme neurony takhle:
- L - levý motor
- R - pravý motor
Těch zapojení, co to řeší je víc (třeba v prvním příkladu můžeme křížem zapojit inhibitivně). A i tak tohle nebude fungovat dobře, pokud před autem je víc překážek, ale je to jen příklad.