náhled|Příklad neuronové sítě: vstup, skrytá vrstva, výstup 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, podoblasti anglicky tzv. Soft Computing (spolu s evolučními algoritmy a fuzzy logikou). 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ší.
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í Neuronové sítě se používají pro rozpoznávání obrazů (např. ve formě pixelů) či akustických (např. rozpoznávání řeči) nebo elektrických (např. EKG, EEG) signálů, k analýze psaného textu, dále ke klasifikaci, kompresi či segmentaci dat, k predikci vývoje časových řad (např. burzovních indexů). 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íť vznikla původně jako simulace fyziologického modelu rozpoznávání vzorů na sítnici lidského oka.
Historie První umělé neurony byly vytvořeny Warrenem McCullochem a Walterem Pittsem v roce 1943. 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řišel Frank Rosenblatt s perceptrony, které doprovázela již i učící pravidla. Perceptrony využíval k rozpoznávání vzorů. Mimo to dokázal, že pokud existují váhy, které zadaný problém řeší, pak k nim učící pravidlo konverguje.
Počáteční nadšení však uvadlo, když se zjištilo, že takovýto perceptron umí řešit pouze lineárně separovatelné úlohy. Frank Rosenblatt se sice snažil model upravit a rozšířit, ale nedařilo se mu to a tak až do osmdesátých let přestal být o perceptrony a neuronové sítě zájem.
V 80. letech došlo k vývoji vícevrstvých perceptronových sítí s asociačními pravidly, schopných aproximovat libovolnou vektorovou funkci, díky čemuž nastala nová vlna zájmu o neuronové sítě, který později částečně upadl kvůli neschopnosti učit sítě o větším počtu vrstev. Až okolo roku 2010 opět došlo 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ůStuart Dreyfus: Artificial Neural Networks, Back Propagation and the Kelley-Bryson Gradient Procedure. In: J. Guidance, Control and Dynamics. 1990.Jürgen Schmidhuber: Deep learning in neural networks: An overview. In: Neural Networks. 61, 2015, S. 85–117. ArXivJürgen Schmidhuber: Deep Learning. In: Scholarpedia. 10(11), 2015, S. 328–332. Section on Backpropagation 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 1960Henry J. Kelley: Gradient theory of optimal flight paths. In: Ars Journal. 30(10), 1960, S. 947–954. (online) a Arthur E. Bryson v roce 1961.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. Roku 1962 publikoval Stuart Dreyfus jednodušší odvození pomocí řetězového pravidla.Stuart Dreyfus: The numerical solution of variational problems. In: Journal of Mathematical Analysis and Applications. 5(1), 1962, S. 30–45. (online) Vladimir Vapnik cituje ve své knize o support vector machines článek z roku 1963.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. 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í.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.Seppo Linnainmaa: Taylor expansion of the accumulated rounding error.In: BIT Numerical Mathematics. 16(2), 1976, S. 146–160. Jedná se o moderní variantu metody zpětného šíření chyby, která je efektivní i v řídkých sítích.Andreas Griewank: Who Invented the Reverse Mode of Differentiation? Optimization Stories. In: Documenta Matematica. Extra Volume ISMP, 2012, S. 389–400.Andreas Griewank, Andrea Walther: Principles and Techniques of Algorithmic Differentiation. 2. Auflage. SIAM, 2008.
V roce 1973 Stuart Dreyfus pomocí zpětného šíření chyby upravoval parametry řídicích systémů úměrně jejich chybovým gradientům.Stuart Dreyfus: The computational solution of optimal control problems with time lag. In: IEEE Transactions on Automatic Control. 18(4), 1973, S. 383–385. Paul Werbos zmínil možnost uplatnění tohoto principu na umělé neuronové sítě roku 1974Paul Werbos: Beyond regression: New tools for prediction and analysis in the behavioral sciences. PhD thesis. Harvard University 1974. a v roce 1982 tak učinil způsobem, který se používá nyní.Paul Werbos: Applications of advances in nonlinear sensitivity analysis. In: System modeling and optimization. Springer, Berlin/ Heidelberg 1982, S. 762–770. (online) 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í.David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams: Learning representations by back-propagating errors. In: Nature. Band 323, 1986, S. 533–536. V roce 1993 byl Eric A. Wan první, kdo vyhrál pomocí backpropagace mezinárodní soutěž v modelování dat.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.
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 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. náhled|vpravo|Model umělého neuronu s funkcí S
Jedním z nejpoužívanějších je model popsaný McCullochem a Pittsem:
kde: jsou vstupy neuronu jsou synaptické váhy je práh citlivosti neuronu je aktivační funkce neuronu je výstup neuronu
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 neuronu 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. Nelineární aktivační funkce umožňují neuronovým sítím řešit nelineární problémy. Klasická nelineární 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 nule resp. ostrá nelinearita (skoková funkce) pro strmost blížící se nekonečnu:
, tj. resp. pro a pro
náhled|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. 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ě náhled|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:
Dopředná neuronová síť: Lineární heteroasociativní paměť – dvouvrstvá síť Perceptron – pouze jeden neuron Vícevrstvý perceptron – libovolný počet skrytých vrstev (minimálně třívrstvá síť) Samoorganizující síť – dvouvrstvá síť Rekurentní neuronová síť: Lineární autoasociativní paměť – jednovrstvá síť Nelineární autoasociativní paměť (Hopfieldova) – jednovrstvá síť Nelineární heteroasociativní paměť (Bidirektní) – dvouvrstvá síť Grossbergova či ART dvouvrstvá síť spojitého času
Učení sítě 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 vazeb neuronů. 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í. Adaptace vah vázajících neurony závisí na jejich stavech aktivace. V případě učení s učitelem jsou stavy výstupních neuronů sítě aktivovány na ně přiloženým vnějším stimulem (výrokem učitele), v případě učení bez učitele si stavy výstupních neuronů síť nastaví v závislosti na stavech vstupních neuronů sama, a to pomocí aktivní dynamiky sítě, tj. každý krok adaptivní dynamiky je proložen průběhem dynamiky aktivní.
Učení s učitelem