Umělá neuronová síť

výpočetní model používaný ve strojovém učení

Umělá neuronová síť, anglicky Artificial Neural Network či jen Neural Network (ANN, NN), je jeden z výpočetních modelů používaných v oblasti umělé inteligence. Vzorem je chování neuronů v mozku, od toho je odvozen i název, v současnosti se však princip neuronových sítí od původního zamýšleného napodobení neuronů liší.[1]

Příklad neuronové sítě: vstup, skrytá vrstva, výstup

Umělá neuronová síť je struktura určená pro distribuované paralelní zpracování dat. Skládá se z umělých (formálních) neuronů, jejichž volným předobrazem je biologický neuron. Neurony jsou vzájemně propojeny synaptickými vazbami a navzájem si předávají signály a transformují je pomocí aktivačních přenosových funkcí. Neuron má libovolný počet vstupů, ale pouze jeden výstup.

Využití

editovat

Neuronové sítě se používají mimo jiné pro rozpoznávání obrazů[2] (např. ve formě pixelů) či akustických (např. rozpoznávání řeči) nebo elektrických (např. EKG, EEG) signálů[3], dále ke klasifikaci, kompresi či segmentaci[4] dat, k predikci vývoje časových řad (např. burzovních indexů), k analýze psaného textu[5] či k filtrování spamu. V lékařství slouží k diagnostice onemocnění či k prohlubování znalostí o fungování informačních systémů (nervových soustav) živých organismů. Například Grossbergova síť[6] vznikla původně jako simulace fyziologického modelu rozpoznávání vzorů na sítnici lidského oka.

Historie

editovat

První umělé neurony byly vytvořeny Warrenem McCullochem a Walterem Pittsem v roce 1943.[7] Tyto neurony fungovaly tak, že byl jejich výstup 0 nebo 1 v závislosti na tom, jestli vážená suma vstupních signálů překročila prahovou hranici, nebo ne. Jejich teorie byla, že takový neuron v principu spočte jakoukoli aritmetickou či logickou funkci. Tehdy však nebyla vypracována žádná tréninková metoda.

V padesátých letech přichází Frank Rosenblatt[8] s perceptrony, které doprovází již i učící pravidla. Perceptrony využívá k rozpoznávání vzorů. Mimo to dokazuje, že pokud existují váhy, které zadaný problém řeší, pak k nim učící pravidlo konverguje.

Počáteční nadšení však uvadá, když je zjištěno, že takovýto perceptron umí řešit pouze lineárně separovatelné úlohy. Frank Rosenblatt se sice snaží model upravit a rozšířit, ale nedaří se mu to a tak až do osmdesátých let přestává být o perceptrony a neuronové sítě zájem.

V 80. letech dochází k vývoji vícevrstvých perceptronových sítí s asociačními pravidly, schopných aproximovat libovolnou vektorovou funkci, díky čemuž dochází k nové vlně zájmu o neuronové sítě,[9] který později částečně upadá díky neschopnosti učit sítě o větším počtu vrstev. Až okolo roku 2010 opět dochází k renesanci neuronových síti díky objevu hloubkového učení.

Nejužívanější způsob učení neuronových síti je algoritmus zpětného šíření chyby. Podle různých zdrojů[10][11][12] byly základy algoritmu zpětného šíření chyby v kontextu teorie řízení odvozeny z principů dynamického programování; konkrétně se na tom podíleli Henry J. Kelley v roce 1960[13] a Arthur E. Bryson v roce 1961.[14] Roku 1962 publikoval Stuart Dreyfus jednodušší odvození pomocí řetězového pravidla.[15] Vladimir Vapnik cituje ve své knize o support vector machines článek z roku 1963.[16] V roce 1969 Bryson a Yu-Chi Ho algoritmus popsali jako vícestupňovou optimalizaci dynamických systémů.

V roce 1970 Seppo Linnainmaa publikoval obecnou metodu automatického derivování (AD) diskrétních sítí vnořených diferencovatelných funkcí.[17][18] Jedná se o moderní variantu metody zpětného šíření chyby, která je efektivní i v řídkých sítích.[19][20]

V roce 1973 Stuart Dreyfus pomocí zpětného šíření chyby upravoval parametry řídicích systémů úměrně jejich chybovým gradientům.[21] Paul Werbos zmínil možnost uplatnění tohoto principu na umělé neuronové sítě roku 1974[22] a v roce 1982 tak učinil způsobem, který se používá nyní.[23] O čtyři roky později David E. Rumelhart, Geoffrey E. Hinton a Ronald J. Williams experimentálně prokázali, že tato metoda může vést k užitečným interním reprezentacím vstupních dat v hlubších vrstvách neuronových sítí, což je základem hlubokého učení.[24] V roce 1993 byl Eric A. Wan první, kdo vyhrál pomocí backpropagace mezinárodní soutěž v modelování dat.[25]

V současnosti se neuronové sítě převážně užívají v úlohách zpracování přirozeného jazyka v rámci tzv. jazykových modelů jako např. Word2Vec či Transformer a v úlohách počítačového vidění v rámci tzv. konvolučních neuronových sítí.

Model umělého neuronu

editovat

Je popsána celá řada modelů neuronů. Od těch velmi jednoduchých používajících skokové přenosové funkce (perceptron) až po velmi složité popisující každý detail chování neuronu živého organismu, jako např. Hindmarshův-Roseův model neuronu[26].

 
Model umělého neuronu

Jedním z nejpoužívanějších je model popsaný McCullochem a Pittsem[7]:

 

kde:

  •   jsou vstupy neuronu
  •   jsou synaptické váhy
  •   je práh
  •   je aktivační funkce neuronu
  •   je výstup neuronu
 
Aktivační funkce. V levém sloupci sigmoida spolu se svými limitními případy, v pravém sloupci možné transformace dat přiváděných na vstupní resp. výstupní neurony.

Velikost vah   vyjadřuje uložení zkušeností do synapsí neuronu. Čím je vyšší hodnota, tím je daný vstup důležitější. V biologickém neuronu práh   označuje prahovou hodnotu aktivace neuronu. Tzn. je-li   menší než práh, je neuron pasivní (inhibovaný) a je-li   větší než práh, je neuron aktivní (excitovaný).

Aktivační funkce

editovat

Aktivační (přenosová) funkce neuronu v umělých neuronových sítích definuje výstup neuronu při zadání sady vstupů neuronu. Příkladem často užívané aktivační funkce je sigmoida (Logistická funkce) o parametrech strmosti (určující šířku pásma citlivosti neuronu na svůj aktivační potenciál) a prahové hodnoty (určující posunutí počátku funkce) spolu s jejími limitními tvary jako je linearita pro strmost blížící se nekonečnu resp. ostrá nelinearita (skoková funkce) pro strmost blížící se nule:[27]

 , tj.   pro   a   pro   resp.  

Volbou aktivační funkce neuronů vstupní resp. výstupní vrstvy neuronové sítě můžeme určit způsob transformace dat na síť přiváděných:

  • Sigmoida:   - z ad 1) a ad 2) (viz níže) plyne  

ad 1) z   plyne  

ad 2) z   plyne  

  • Gaussova křivka:   - z   plyne  
  • Mexický klobouk:   - uvedené transformaci resp. její nezáporné části odpovídají různá pásma citlivosti.

Parametry uvedených transformací mají následující význam:

ϑ – střední hodnota dat přiváděných na daný neuron z trénovací množiny

σ – směrodatná odchylka dat přiváděných na daný neuron z trénovací množiny

Kromě uvedených aktivačních funkcí se užívají ještě jejich různé modifikace:

  • Identita - linearita modifikovaná posunutím středu symetrie do počátku
  • Hyperbolická tangenta - rozšíření oboru hodnot sigmoidy na interval od -1 do +1
  • ReLU - složení ostré linearity (vlevo od počátku) s identitou (vpravo od počátku)
  • Radiální báze - Gaussova křivka resp. Mexický klobouk

Architektury sítě

editovat
 
Příklady architektury neuronových sítí: rekurentní autoasociativní paměť RAM, samorganizující síť SOM, vícevrstvý perceptron MLP.

Podle způsobů propojení neuronů existuje více různých architektur neuronových sítí, neurony se řadí do jednotlivých vrstev umístěných nad sebou:[27]

Dopředná neuronová síť:

Rekurentní neuronová síť:

Učení sítě

editovat

Cílem učení neuronové sítě je nastavit síť tak, aby dávala co nejpřesnější výsledky. V biologických sítích jsou zkušenosti uloženy v synapsích. V umělých neuronových sítích jsou zkušenosti uloženy v jejich matematickém ekvivalentu – váhách. Učení neuronové sítě rozlišujeme na učení s učitelem (supervised learning) a učení bez učitele (unsupervised learning) . Fáze učení neuronové sítě bývá nazývána adaptivní, fáze vybavování po naučení neuronové sítě bývá nazývána aktivní.

Učení s učitelem

editovat

Při učení s učitelem trénovací data sestávají ze vstupních objektů (vektorů jejich příznaků) a jejich požadovaných výstupních ohodnocení, tj. závisle proměnných (obecně také ve tvaru vektorů), tj. výroků učitele o objektu. Podobně jako v biologických sítích je zde využita zpětná vazba. Neuronové síti je předložen vzor. Na základě aktuálního nastavení sítě je zjištěn aktuální výsledek. Ten porovnáme s vyžadovaným výsledkem a určíme chybu. Poté spočítáme nutnou korekci (dle typu neuronové sítě) a upravíme hodnoty vah či prahů, abychom snížili hodnotu chyby. Toto opakujeme až do dosažení námi stanovené minimální chyby. Poté je síť adaptována. Výstupem naučené funkce (jejíž příklady jsou obsaženy v trénovacích datech) pak mohou být spojité hodnoty (při regresi) anebo binární hodnoty označující příslušnost vstupních objektů do daných tříd (při klasifikaci). Naučená funkce pak dokáže odhadovat výstupní ohodnocení každého vstupního objektu (i neobsaženého v trénovacích datech) poté, co zpracuje trénovací příklady (tj. dvojice vstup a požadovaný výstup). Aby to dokázala, musí umět zobecnit (generalizovat) souvislost mezi vstupy a výstupy danou příklady obsaženými v trénovacích datech "smysluplným" způsobem.[28]

Pozn.: Pokud se vstupní objekty shodují s požadovanými výstupními ohodnoceními, mluvíme o tzv. samoučení (self-supervised learning), tj. síť (např. autoenkodér) se pak učí tzv. autoasociativní fuknkci.

Učení bez učitele

editovat

Na rozdíl od učení s učitelem trénovací data při učení bez učitele nemají vstupní data provázaná s cílovými proměnnými (ohodnocením, závisle proměnnou...), tj. schází výrok učitele a učení bez učitele tedy vykazuje samoorganizaci, která zachycuje vzory jako hustotu pravděpodobnosti.[29] Učení bez učitele si tedy lze představit jako kompresi vstupních dat, např. například snížení jejich dimense (v analýze hlavních komponent) nebo jejich redukci na diskrétní body (jako je tomu ve shlukové analýze, kde vstupní data reprezentujeme označenými shluky), či jejich vyhlazení (odhad distribučních funkcí). U neuronových sítí se učení bez učitele užívá typicky u kompetičních sítí. Při učení bez učitele nevyhodnocujeme správnost výsledku. Při tomto učení nám vyžadovaný výsledek není znám. Síť dostává na vstup sadu vzorů, které si sama třídí přizpůsobením své topologie. Vzory třídí do skupin a reaguje dle jejich typického zástupce.[30]

Pozn.: Kombinaci učení s učitelem a učení bez učitele označujeme jako semi-supervised learning.

Hebbovské učení

editovat

Hebbův[31] princip učení lze popsat jako metodu určování, jak měnit váhy mezi umělými neurony. Váha mezi dvěma neurony se zvyšuje, pokud se oba neurony aktivují současně, a snižuje, pokud se aktivují odděleně. Uzly, které mají tendenci být buď oba pozitivní, nebo oba negativní současně, mají silné pozitivní váhy, zatímco ty, které mají tendenci být opačné, mají silné negativní váhy. Hebbovské učení se užívá u asociativních pamětí, jako je Hopfieldova či bidirektní síť.

Přeučení

editovat

Přeučení je stav, kdy je systém příliš přizpůsoben množině trénovacích dat, ale nemá schopnost generalizace a selhává na validační množině dat. To se může stát např. při malém rozsahu trénovací množiny nebo pokud je systém příliš komplexní, např. příliš mnoho skrytých neuronů v neuronové síti. Řešením je zvětšení trénovací množiny, snížení složitosti systému nebo různé techniky regularizace, jako je zavedení náhodného šumu (což v zásadě odpovídá rozšíření trénovací množiny), zavedení omezení na parametry systému, které v důsledku snižuje složitost popisu naučené funkce, nebo předčasné ukončení učení (průběžné sledování chyby na validační množině a konec učení ve chvíli, kdy se chyba na této množině dostane do svého minima).

Data určená pro učení neuronové sítě se skládají ze vstupních vektorů dat a odpovídajících vstupních vektorů dat (učení s učitelem). Pro správné naučení inteligentního systému je obvykle potřeba dostatečně reprezentativní množství trénovacích dat. Inteligentní systémy jsou v podstatě funkce, které ze vstupního vektoru vypočítají výstupní vektor a podle rozdílu od správného výstupního vektoru upraví své vnitřní parametry. Tento proces se opakuje, dokud není systém dostatečně naučen. Při učení se používají trénovací data, validační data či testovací data. Tato data mají být disjunktní. Pomocí trénovacích dat probíhá vlastní učení, podle chování na validačních datech se kontroluje přeučování a na testovacích datech se určuje úspěšnost učení na nových, neznámých datech. Trénovací data se tedy dle způsobu užití dělí do tří skupin:

Trénovací množina je sada dat, ve které algoritmus nachází určitý vztah mezi vstupy a výstupy, tj. provádí jejich regresní analýzu, čímž se učí.

Validační množina je sada dat, která se používají pro případnou úpravu parametrů učení (hyperparametrů) ve snaze vyhnout se jeho přeučení. Systém je správně naučený tehdy, jestliže se shodnou úspěšností vyhodnocuje trénovací množinu i validační množinu. Pokud má vyhodnocení trénovací množiny výrazně vyšší úspěšnost, je systém přeučený.

Testovací množina je sada dat, která se používají pro ověření kvality naučeného systému.

V případě učení bez učitele se trénovací data skládají pouze ze vstupních vektorů dat obsažených v trénovací množině.

Algoritmus zpětného šíření chyby

editovat
 
Gradientní sestup

Algoritmus zpětného šíření chyby je typická metoda učení umělých neuronových sítí. Používá se u vícevrstvých sítí při učení s učitelem, tedy pokud je na množině příkladů použitých k učení vždy znám požadovaný výsledek. Zpětné šíření chyby je založeno na metodě gradientního sestupu.

Kvalita naučení umělé neuronové sítě je popsána chybovou funkcí, nejčastěji kvadratickou chybou[27]:

 , pak  
  chyba
  počet vzorků předložených síti
  počet neuronů výstupní vrstvy
  požadovaný výstup daného neuronu a daného vzorku
  vypočítaný výstup daného neuronu a daného vzorku
  vektor přírůstků vah gradientního kroku
  velikost gradientního kroku
 
Zpětné šíření chyby

Jeden sestupný gradientní krok pak může vypadat následovně:[27]

 
 
 
 
 
  potenciál i-tého neuronu
  skutečný stav i-tého neuronu
  požadovaný stav i-tého neuronu
  adaptační funkce i-tého neuronu
  strmost aktivační funkce i-tého neuronu
  práh i-tého neuronu
  váha vazby i-tého neuronu s j-tým neuronem
  velikost gradientního kroku
  míra setrvačnosti gradientního sestupu
  populace neuronů L-té vrstvy
  počet vrstev sítě
  předcházející přírůstek příslušné proměnné

Cílem učení je minimalizovat chybovou funkci závislou na vstupních vahách neuronů, přičemž gradientní sestup obecně najde pouze lokální minimum, proto se do gradientního sestupu zavádí jistá jeho setrvačnost, spočívající v míře respektování směru jeho minulého sestupného kroku, tj. k aktuálnímu gradientu se připočte minulý gradient a aktuální sestupný krok se provede ve směru jejich součtu, tato deformace gradientního sestupu pak umožní vyklouznutí z mělkého lokálního minima. Učení neuronové sítě spočívá ve změně vah vstupů neuronů. Algoritmus zpětného šíření chyby v každém kroku postupuje v následujících třech fázích:

  • Aplikují se vzorky a pro každý vzorek se postupně směrem vpřed napočítají výstupy (vstupní signál se sítí šíří směrem dopředu).
  • Napočítané výstupy se porovnají s požadovanými výstupy, tj. spočte se chyba, jak byla popsána výše.
  • Na základě spočtené chyby se počítají hodnoty adaptačních funkcí ve směru od poslední vrstvy k první vrstvě (pro výpočet hodnoty adaptačních funkcí podřazené vrstvy již musí být vypočteny hodnoty adaptačních funkcí nadřazené vrstvy), tj. spočítá se gradient chybové funkce, na základě kterého se provede sestupný gradientní krok, tj. upraví se vstupní váhy neuronů tak, že klesne hodnota chyby. Výpočet tedy postupuje zpětně od výstupní vrstvy až po vstupní vrstvu (odtud zpětné šíření chyby), váhy se mění podle jejich vlivu na chybu.

Hluboké učení

editovat
 
Míra změn vah po jednotlivých vrstvách, daná tlumením zpětného šíření chyby, tj. první tři vrstvy se neučí prakticky vůbec, smysluplně se učí pouze poslední tři.

Hluboké učení je disciplína v rámci strojového učení, která se zabývá učením neuronových sítí s velkou hloubkou.[32] Hloubkou modelu se myslí počet vrstev neuronů, které jsou za sebou zapojeny tak, že výstup jedné vrstvy je vstupem vrstvy následující. U modelů hlubokého učení se přitom hloubka nachází často v řádech desítek a více vrstev. Pro odhad parametrů sítě (trénování) se obvykle používá algoritmus zpětného šíření chyby. Trénování probíhá ve dvou fázích, tj. nejprve předučení sítě dopředným směrem např. pomocí autoenkodérů (učení bez učitele) a poté doučení sítě zpětným směrem (učení s učitelem), eliminuje se tak tlumení zpětného šíření chyby. Metodologie hlubokého učení se prosadila kolem roku 2010 jako základní možnost pro řešení složitých problémů strojového učení jako je klasifikace obrazů, mluvené či psané řeči nebo překlady z jednoho přirozeného jazyka do jiného.

Modulární neuronová síť

editovat

Biologické studie ukazují, že lidský mozek nepracuje jako jediná masivní síť, ale jako soubor malých sítí. Tento výzkum dal zrod konceptu modulárních neuronových sítí, ve kterých několik malých sítí spolupracuje nebo soutěží, aby vyřešily daný problém.

Komise strojů

editovat

Komise strojů (Committee of Machines; CoM) je soubor různých modelů, které „hlasují“ pro zadaný příklad. To obvykle dává lepší výsledky ve srovnaní s dalšími modely neuronových sítí. Tyto metoda směřuje ke stabilizaci výsledku. Je podobná obecné metodě bagging, až na to, že nutná rozmanitost strojů se získává trénováním vycházejícím z různých náhodně vybraných startovních vah, oproti trénování na různých náhodně vybraných podmnožinách trénovacích dat.

Asociativní neuronové sítě (ASNN)

editovat

Asociativní neuronové sítě jsou rozšíření CoM, které jde za jednoduché průměrování výsledků různých neuronových sítí. ASNN představuje kombinaci souboru dopředných neuronových sítí a techniky k-nejbližšího souseda. Tato metoda používá korelaci mezi jednotlivými odezvami sítí souboru jako míru vzdálenosti mezi analyzovanými vzory pro techniku k-nejbližšího souseda. Asociativní neuronová síť má paměť, která obsahuje tréninkovou sadu vzorů. Pokud jsou k dispozici nová data v tréninkové sadě neobsažená, síť poskytuje přiměřenou aproximaci jejich odezvy bez nutnosti přetrénování souboru neuronových sítí, a to korekcí zkreslení nových dat vůči tréninkové sadě. Tato vlastnost ASNN zlepšuje její prediktivní schopnost oproti tradičním neuronovým sítím.

Reference

editovat
  1. Tomáš Mikolov - Hyde Park Civilizace | Česká televize. [s.l.]: [s.n.] Dostupné online. 
  2. VENKATESAN, Ragav; LI, Baoxin. Convolutional Neural Networks in Visual Computing: A Concise Guide. [s.l.]: CRC Press, 2017-10-23. Dostupné online. ISBN 978-1-351-65032-8. (anglicky) 
  3. ZHA, Xiong; PENG, Hua; QIN, Xin; LI, Guang. A Deep Learning Framework for Signal Detection and Modulation Classification. [s.l.]: MDPI, 2019-9-19. Dostupné online. (anglicky) 
  4. KOHONEN, Teuvo. The self-organizing map. [s.l.]: Proceedings of the IEEE 78 (9), 1990. 17 s. (anglicky) 
  5. A Beginner's Guide to Word2Vec and Neural Word Embeddings. Pathmind [online]. [cit. 2022-10-29]. Dostupné online. (anglicky) 
  6. GROSSBERG, Stephen. Recurrent neural networks. [s.l.]: Scholarpedia, 2013. Dostupné online. (anglicky) 
  7. a b MCCULLOCH, W. S. T.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics 5. [s.l.]: [s.n.], 1943. 19 s. (anglicky) 
  8. ROSENBLATT, F. The Perceptron - a perceiving and recognizing automaton, Report 85–460–1, Cornell Aeronautical Laboratory. [s.l.]: [s.n.], 1957. (anglicky) 
  9. HAGAN, Martin T. Neural network design. druhé. vyd. [s.l.]: [s.n.], 2014. 800 s. Dostupné online. (anglicky) 
  10. Stuart Dreyfus: Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. In: J. Guidance, Control and Dynamics. 1990.
  11. Jürgen Schmidhuber: Deep learning in neural networks: An overview. In: Neural Networks. 61, 2015, S. 85–117. ArXiv
  12. Jürgen Schmidhuber: Deep Learning. In: Scholarpedia. 10(11), 2015, S. 328–332. Section on Backpropagation
  13. Henry J. Kelley: Gradient theory of optimal flight paths. In: Ars Journal. 30(10), 1960, S. 947–954. (online)
  14. Arthur E. Bryson: A gradient method for optimizing multi-stage allocation processes. In: Proceedings of the Harvard Univ. Symposium on digital computers and their applications. April 1961.
  15. Stuart Dreyfus: The numerical solution of variational problems. In: Journal of Mathematical Analysis and Applications. 5(1), 1962, S. 30–45. (online)
  16. A. E. Bryson, W. F. Denham, S. E. Dreyfus: Optimal programming problems with inequality constraints. I: Necessary conditions for extremal solutions. In: AIAA J. 1, 11, 1963, S. 2544–2550.
  17. Seppo Linnainmaa: The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master’s Thesis (in Finnish), Univ. Helsinki, 1970, S. 6–7.
  18. Seppo Linnainmaa: Taylor expansion of the accumulated rounding error.In: BIT Numerical Mathematics. 16(2), 1976, S. 146–160.
  19. Andreas Griewank: Who Invented the Reverse Mode of Differentiation? Optimization Stories. In: Documenta Matematica. Extra Volume ISMP, 2012, S. 389–400.
  20. Andreas Griewank, Andrea Walther: Principles and Techniques of Algorithmic Differentiation. 2. Auflage. SIAM, 2008.
  21. Stuart Dreyfus: The computational solution of optimal control problems with time lag. In: IEEE Transactions on Automatic Control. 18(4), 1973, S. 383–385.
  22. Paul Werbos: Beyond regression: New tools for prediction and analysis in the behavioral sciences. PhD thesis. Harvard University 1974.
  23. Paul Werbos: Applications of advances in nonlinear sensitivity analysis. In: System modeling and optimization. Springer, Berlin/ Heidelberg 1982, S. 762–770. (online)
  24. David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams: Learning representations by back-propagating errors. In: Nature. Band 323, 1986, S. 533–536.
  25. Eric A. Wan: Time series prediction by using a connectionist network with internal delay lines. In: Santa Fe Institute Studies in the Sciences of Complexity-Proceedings. Vol. 15, Addison-Wesley Publishing Co., 1993, S. 195–195.
  26. HINDMARSH, J. L.; ROSE, R. M. A model of neuronal bursting using three coupled first order differential equations. Biological Sciences 221 (1222). London: The Royal Society, 1984. 16 s. (anglicky) 
  27. a b c d KŘIVAN, Miloš. Umělé neuronové sítě. první. vyd. Praha: Oeconomica, 2021. 76 s. Dostupné online. ISBN 978-80-245-2420-7. 
  28. GENTLEMAN, R.; CAREY, V. J. Supervised Machine Learning. Bioconductor Case Studies. New York: Springer, 2008. 16 s. Dostupné online. ISBN 978-0-387-77239-4. (anglicky) 
  29. HINTON, Geoffrey; SEJNOWSKI, Terrence. Unsupervised Learning: Foundations of Neural Computation. [s.l.]: MIT Press, 1999. ISBN 978-0262581684. 
  30. GENTLEMAN, R.; CAREY, V. J. Unsupervised Machine Learning. Bioconductor Case Studies. New York: Springer, 2008. 21 s. Dostupné online. ISBN 978-0-387-77239-4. (anglicky) 
  31. HEBB, D.O. The Organization of Behavior. New York: Wiley & Sons, 1949. Dostupné online. (anglicky) 
  32. GOODFELLOW, Ian; BENGIO, Yoshua; COURVILLE, Aaron. Deep Learning. [s.l.]: MIT Press, 2016. 767 s. Dostupné online. (anglicky) 

Externí odkazy

editovat