Umelá neurónová sieť: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
Rudko (diskusia | príspevky)
→‎Softvér: formulácia
Zmena definície neurónovej siete na všeobecnejší tvar Pridanie statí: Historický vývoj NN, Spojitosť medzi NN a nervovým systémom, Formálny neurón
Riadok 1:
[[Súbor:Neuralnetwork.png|thumb|vpravo|Zjednodušený pohľad na umelú neurónovú sieť]]
 
'''Neurónová sieť''' je masívne paralelný procesor, ktorý má sklon k uchovávaniu experimentálnych znalostí a ich ďalšieho využívania. Napodobňuje ľudský mozog v dvoch aspektoch:
'''Neurónová sieť''' je výpočtový model, zostavený na základe abstrakcie vlastností biologických [[nervový systém|nervových systémov]]. Základnou časťou neurónovej siete je model neurónu s N vstupmi a M výstupmi, ktorý spracúva informáciu podľa nasledovného pravidla:
# poznatky sú zbierané v neurónovej sieti počas učenia
# medzineurónové spojenia (synaptické váhy - SV) sú využívané na ukladanie znalostí
 
Toto je jedna z definícii neurónových sietí. Je zrejmé, že inšpirácia ku vzniku neurónových sietí prišla z biologických systémov. Hrubo povedané '''ide o simuláciu mozgu'''. Jednou z veľmi významných vlastností neurónových sietí je, že svojim spôsobom predstavujú''' univerzálny aproximátor funkcií'''. Môže sa nám stať, že máme systém, ktorého popis je mimoriadne náročný alebo je systém natoľko zložitý, že jeho popis je skoro nemožný. Máme však dáta, ktoré do systému vstupujú, a k nim odpovedajúce výstupy. V takejto situácii, môžeme použiť vhodnú neurónovú sieť a pokúsiť sa ju naučiť chovať sa ako sledovaný systém pomocou''' trénovacích údajov''' (spomínaných vstupov a výstupov). Toto je veľmi dôležitý moment, ktorý determinuje aj aplikačné uplatnenie neurónových sietí v praxi. Pri štúdiu neurónových sietí môžeme rozlišovať tri oblasti:
'''o<sub>i</sub><sup>k+1</sup> = f( <math>\sum_{j=1}^{N}</math> w<sub>ij</sub><sup>k</sup> × o<sub>j</sub><sup>k</sup> − Θ <sub>i</sub><sup>k+1</sup> )''' ; kde
* ''teória neurónových sietí'' - matematický rozbor činnosti neurónových sietí.
* 0 < '''i''' ≤ M,
* 0 < '''j''' ≤ N
* '''o<sub>i</sub><sup>k+1</sup>''' je výstupná hodnota i toho neurónu k+1 vrstvy
* '''k''' je index vrstvy
* '''Θ <sub>i</sub><sup>k+1</sup>''' je prah excitácie i toho neurónu k+1 vrstvy
* '''w<sub>ij</sub><sup>k</sup>''' je váha spojenia medzi j-tým neurónom k vrstvy a i-tým neurónom k+1 vrstvy
* '''f()''' je ľubovoľná [[monotónna funkcia]]
 
* ''simulácia neurónových sietí'' - ide o simuláciu neurónových sietí pomocou počítačových systémov. Hlavným problémom simulácie je naučiť neurónovú sieť na niečo. Proces učenia je veľmi časovo náročný a vyžaduje veľké (najlepšie paralelné) výpočtové systémy. Vo svete je množstvo simulátorov neurónových sietí. V súčasnej dobe ako najvhodnejší sa zdá '''Stuttgartský simulátor neurónových siet'''í.
Samotná neurónová sieť je zložená z viac vrstiev o rôznom počte neurónov, rôznym spôsobom poprepájaných.
* ''implementácia neurónových sietí'' - ide o implementáciu naučenej neurónovej siete do harwarovej formy.
 
Základným elementom neurónovej siete je''' neurón'''. V porovnaní s ľudským neurónom sa pomocou počítačov dokáže nasimulovať omnoho rýchlejší neurón ako je ľudský. Problémom je však množstvo ľudských neurónov a množstvo spojení v mozgu. Podľa výskumov má ľudský mozog okolo 10<sup>11</sup> až 10<sup>14</sup> neurónov a počet prepojení na každý jeden neurón je 10<sup>3</sup> až 10<sup>4</sup>. Paradoxom teda ostáva fakt, že aj keď v dnešnej dobe je možné vyvinúť omnoho rýchlejší procesný element (neurón), nedokáže sa dosiahnuť taký '''masívny paralelizmus''', aký je realizovaný v ľudskom mozgu, ktorý napokon aj určuje jeho silu. Z uvedeného možno konštatovať, že sila ľudského mozgu spočíva vo využití obrovského množstva "pomalých" neurónov, organizovaných do veľmi zložitej masívne paralelnej siete, ktorej veľkosť a topológia je v súčasných simulačných procesoch zďaleka nenapodobniteľná.
 
== Rozdelenie ==
Řádek 28 ⟶ 26:
Každá z týchto architektúr je vhodná na iný typ úloh.
 
== Historický vývoj ==
* 1943 začína éra teórie neurónových sietí pod vedením amerických vedcov McCullocha a Pittsa. Dr. McCulloch bol psychiater a neuroanatóm, kým dr. Pitts bol matematik a celá aktivita, bola sústredená na Univerzite v Chicagu, kde v spomínanom roku 1943 títo dvaja páni prvýkrát definovali binárny neurón. Je zaujímavé, že John von Neumann, pri konštrukcii svojho prvého počítača''' ENIAC''' v roku 1946 bol do určitej miery inšpirovaný aj spomínanou prácou.
* 1948 Wiener vo svojej knihe '''Kybernetika''' naznačuje určité koncepty neurónových sietí
* 1949 Hebb vo svojej knihe '''The Organization of Behavior''' prvýkrát explicitne spomína pojem učenia a jeho vzťah k synaptickým váham a ich modifikácii.
* 1952 dr. Ashby napísal knihu''' Design of a Brain: The Origin of Adaptive Behavior'''. Táto publikácia mala zásadný význam pre rozvoj neurónových sietí.
* 1954 dr. Minsky napísal svoju Ph.D. dizertáciu na tému''' Neurónové siete''' a pozdejšie v roku 1961 napísal zásadný článok''' Step Toward Artificial Intelligence'''.
* 1956 páni Rochester, Holland, Habit a Duda sa prvýkrát pokúsili o počítačovú simuláciu NN
* 1958 prichádza dr. Rosenblat s novým prístupom k rozpoznávaniu pomocou tzv.''' perceptrónu''' a pozdejšie prichádza so svojou konvergenčnou teóriou perceptrónu, ktorá predstavuje počiatky '''neurodynamiky'''.
* 1960 prichádza s Widrow a Hoff a tzv. '''Adaline - Adaptive linear element''' a o 2 roky nato prichádza Widrow s tzv. '''Madaline - Multiple adaptive element'''. Tieto príspevky do značnej miery posunuli teoretickú bázu NN dopredu, hoci nedostatok výpočtovej techniky vytváral ohromné zábrany ďalšiemu rozvoju.
* roku 1965 mala dôležitý význam publikácia dr. Nilssona '''Learning Machines'''.
* v roku 1967 dr. Cowan predstavuje svoju "sigmoidálnu" aktivačnú funkciu
* v roku 1968 dr. Grossberg predstavuje svoj adaptívny model neurónu a používa nelineárne diferenciálne rovnice na jeho popis so zámerom ich použitia pre tzv. '''short term memory'''.
* v roku 1969 dr. Minsky a dr. Papert popisujú činnosť viacvrstvového perceptrónu.
* obdobie 1970-80 nazývame''' obdobím útlmu'''. Dôvodom, boli nedostatočné výpočtové kapacity včítane pamäťových možností. Určité práce v teoretickej oblasti boli urobené ale nie s takou dynamikou ako predtým
* 1975 dr. Little a Shaw popisujú pravdepodobnostný model neurónu
* v roku 1980 prichádza Grossberg s rozvojom tzv.''' Competitive learning''', ktorá po rozpracovaní a modifikácii zakladá novú triedu NN založenej na tzv.''' Adaptive resonance theory'''
* v roku 1982 dr. Hopfield použil termín '''energie NN''' pre pochopenie rekurentných sietí. Postupne rozvojom vzniká aj trieda tzv. Hopfieldových sietí. O rok pozdejšie v podstate formuloval princípy simulácie pamäte resp. uchovania informácie v dynamickom systéme.
* dr. Kirkpatrick a jeho kolegovia popisujú procedúru tzv. '''simulovaného ochladzovania'''. Toto inšpirovalo v roku 1985 dr. Hintona a kol. k návrhu stochastickej učiacej procedúry pre tzv. '''Boltzmanov stroj'''.
* v tom istom roku (1983) prišli páni Barto a kol. s tzv.''' reinforcement learning''' a jeho aplikáciou v oblasti riadenia technologických systémov.
* v roku 1986 prišli dr. Rumelhart a kol. s metódou '''učenia spätným šírením chyby'''. Táto metóda pre svoju relatívnu jednoduchosť je jednou z najrozšírenejších metód učenia NN.
* v roku 1988 prišli páni Broomhead a Lowe s procedúrou '''Radial Basis Functions''', pre dopredné siete, ktorá má korene v teórii potenciálnych funkcií, ktoré využili Duda a Hart v roku 1973 pre rozpoznávanie.
== Vlastnosti ==
 
Řádek 34 ⟶ 53:
Proces abstrakcie sa nazýva učenie, a môže prebiehať s učiteľom alebo bez učiteľa. Počas tohto procesu sa aktualizujú hodnoty váhových spojení. V literatúre je popísaných niekoľko učiacich algoritmov.{{chýba zdroj}} Po ukončení učenia, sa už hodnoty váh nemenia a sieť produkuje výstupy podľa uvedeného pravidla aplikovaného na vstupné hodnoty.
 
== Neurónové siete a nervový systém ==
Teória neurónových sietí vychádza z '''neurofyziologických poznatkov'''. Snaží sa vysvetliť správanie sa na princípe spracovania informácií v nervových bunkách. Niekedy sa umelé neurónové siete označujú aj ako '''modely mozgu bez mysle''' (angl. brain without mind), keďže sa snažia pochopiť nervový systém, ale nezaoberajú sa psychikou.
 
=== Neurón ===
[[File:Neuron slk.svg|thumb|279x279px]]
Hlavnou funkciou nervového systému je riadiť organizmus. Podkladom tejto funkcie je schopnosť nervového systému spracovávať informácie. Informácie sa v nervovom systéme prenášajú vo forme zmien membránového potenciálu nervových buniek, neurónov. Nervová bunka sa skladá z '''tela''' a niekoľkých výbežkov. Tieto možno rozdeliť na dva typy:''' dendrity''', ktoré predstavujú z informatického hľadiska vstupnú časť (predovšetkým na ne prechádza vzruch z iných buniek) a jeden '''neurit''' (axón), po ktorom sa vzruch šíri k iným bunkám.
 
=== Synapsa ===
'''Santiago Ramón y Cajal''' ako prvý dokázal, že nervový systém sa skladá z dobre ohraničených buniek(neurónová teória). Neuróny vytvárajú funkčné spojenia v mieste tesného kontaktu axónu jednej bunky s membránou inej bunky. Tieto spojenia sa nazývajú synapsy (termín synapsa ako prvý zaviedol Charles Sherrington od slova synapto - lat. tesne sa objímať). Synapsy, podľa toho ktoré časti nervových buniek ich tvoria, existujú axo-dendritické (prenos signálu z axónu na dendrit), axo-somatické (prenos axón – telo neurónu) a výnimočne aj axo-axonálne (prenos axón – axón). Na jednom neuróne sú stovky, tisícky a na niektorých dokonca mnoho desiatok tisíc synáps. Synapsa sa skladá z troch častí: z '''membrány presynaptického terminálu''' (rozšírené zakončenie axónu) synaptickej štrbiny a''' postsynaptickej membrány'''.
 
== Formálny neurón ==
Modely neurónu sú zväčša abstrakciou mechanizmu, ako nervové bunky spracúvajú informácie. Nie je možné vytvoriť presnú analógiu "výpočtových" schopností skutočného neurónu, a to hneď z viacerých dôvodov:
* Výpočtové procesy na neurónoch sú enormne''' komplexné'''. Jeden neurón obsahuje aj desiatky tisíc synáps, pričom pre ich efekt je významná ich lokalizácia. Veľkosť siete je z výpočtového hľadiska veľmi významný parameter a zároveň zložitosť formálneho (modelového) neurónu komplikuje aj matematickú analýzu správania sa siete.
* '''Fyziológia neurónu''' zostáva v mnohých otázkach predmetom výskumu.
* Otázky učenia neurónových sietí nie sú v nervovom systéme uspokojivo vysvetlené.
 
Formálny neurón pozostáva z nasledujúcich základných častí:
* vstup do neurónu (dendrit)
* prah neurónu θi - je hodnota , ktorá vlastne prispieva ku vstupu z externého sveta
* aktivačná funkcia neurónu ''f'' , ktorej výsledkom je x<sub>i</sub>
* výstupná funkcia neurónu o<sub>i</sub>
 
* synaptické váhy, ktoré sú na synaptických spojeniach (synapsiách), ktoré majú svoj smer a spájajú jednotlivé neuróny do neurónovej siete Súčasne podľa toku signálu po synapsii rozoznávane neuróny predsynaptické (zdrojové - pred synapsiou) postsynaptické (cieľové - po synapsii )
 
Poznámka: pri označovaní synaptických váh sa používa konvencia, kde „i“ je použité ako označenie postsynaptického neurónu a „j“ sa používa na označenie predsynaptického neurónu. Ide teda o synpapsiu vychádzajúcu z neuróna „j“, ktorá cieli k neurónu „i“.
== Použitie ==
* Rozpoznávanie vzoriek (napr. obrázkov a písma).
Řádek 62 ⟶ 106:
Pre výuku neurónových sietí existuje [[softvér]] ''Stuttgart Neural Network Simulator'' ([[SNNS]]). Pre simuláciu a vývoj sa využíva softvér [[Matlab]], presnejšie jedno z jeho rozšírení pre neurónové siete.
 
== ReferencieZdroje ==
* Kvasnička, V. a kol.: Úvod do teórie neurónových sietí. Vydavateľstvo IRIS, 1997.
* Willems, T.M. : Neural Networks in Control ? Dizertačná práca, Eindhoven University of Technology Eidhoven, Holandsko 1993.
* Peter Sinčák, Gabriela Andrejková: Neurónové siete - Inžiniersky prístup (1. diel)
 
== Externé odkazy ==