==== Uvod do Neuronovych Sieti ==== * [[http://ii.fmph.uniba.sk/~farkas/Courses/NeuralNets/ns-otazky.pdf|Zadanie otazok]] * [[http://ii.fmph.uniba.sk/~farkas/Courses/ns.html|Farkasova Stranka]] * [[http://www.faqs.org/faqs/ai-faq/neural-nets/part1/preamble.html|Sarlov Neural Nets FAQ na USENETe]] nedopracovane otazky su dosledok znizovania casoveho okna a zvysovania unavy.. nic moc overall. ==== 9. Principal Component Analysis ==== Vyratame si korelacnu maticu a pomocou nej ziskame hlavne vektory a hlavne komponenty pre dane data. toto mozem pouzit na dekorelaciu dat alebo redukciu dimenzie, alebo rekonstrukciu poskodenych dat, alebo kopresiu. Viacej napriklad tu: http://csnet.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf ==== 10. Self Organized Maps ==== === Učenie so súťažením === Vzor sa hodi sieti, a podla nejakeho kriteria sa vyberie najlepsie reagujuci neuron. Bud je to Euklidovska vzdialenost vzoru a vektoru vah daneho neuronu (ktora musi byt najmensia zo vsetkych), alebo je to velkost odozvy w^t * x. Co je vlastne to iste, ked si rozpiseme ako sa rata euklidovska vzdialenost. Sutazenie ma este jeden rozmer - medzi neuronmi existuju lateralne vazby. Neurony blizko vitazneho neuronu su excitovane, neurony kusok dalej zase inhibovane. Suvisi to s principmi samorganizacie - teda existencia lokalnych pozitivnych spatnych vazieb. Blablabla.. som is easy gonda is dead. === Et Cetera .. === **Neurobiologická motivácia algoritmu SOM, laterálna interakcia a jej náhrada v SOM, sumarizácia algoritmu, voľba parametrov modelu, DP verzia algoritmu.** blablabla vieme.. ==== 11. Self Organized Maps ==== === Vektorová kvantizácia=== **Learning vector Quantization** Pre data sa vyberie M prototypov - kedze ma byt M tried na klasifikaciu. Tieto prototypy su reprezentovane neuronmi a vahami ktore k nim zo vstupnych dat vedu. Nainicializuju sa napriklad tak ze kazdemu neuronu sa nastavia vahy na nejaky vektor zo vstupnych dat. Potom sa robi normalne kompetitivne ucenie, kde sa vyberie nahodny vektor x z mnoziny vstupnych dat a hlada sa prototyp (neuron), ktory ma najbzlizsiu euklidovsku vzdialenost ku x. Ten ktory vyhra je potom updatnuty takto: \\ \\ w(new) = w(old) + m( x - w(old) ), kde m je pocet prototypov. \\ Potom co su neurony natrenovane, sa moze siet pouzit na klasifikaciu dat. Ak je to dvojrozmerny priestor, tak prototypy definuju jadra Voronoivho diagramu. Very easy. Pouziva sa aj na kompresiu. (namiesto vektoru sa posiela kod prototypu kde patri - napriklad v telefonnej komunikacii) === topografické zobrazenie príznakov === Kedze v SOM-ke vyhravaju s vitaznym neuronom aj jeho topologicky susedia, nastava zhromazdovanie podobnych klastrov vedla seba. === redukcia dimenzie === blabla.. ak mame 2d SOM tak data sa zredukuju do 2d priestoru. === magnifikačný faktor === vela podobnych dat a malo inych, ked napriklad je narusena gausovsa distribucia vstupov, sposobi ze siet sa lepsie nauci rozoznavat tieto data ktore jej boli viacej prezentovane a vo vyslednej mape zaberaju vacsi priestor. "Som aproximuje hustotu rozlozenia vstupnych dat" === náčrt matematických problémov analýzy algoritmu === netusim.. ==== 12. Hybridne model NS: Radial Basis Functions ==== Paradny popis principu fungovania RBF: http://www.statsoft.com/textbook/stneunet.html#radial\\ \\ === Aktivacne vzorce === Siet pozostava z jednej skrytej vrstvy, ktora je zlozena z jednotiek, jadier, ktore interpretuju hypergule (preto **radialna** aktivacna funkcia). Iny sposob ako ich chapat je ze su to jadra gaussovskych distribucii. Vystupna vrstva moze byt len lienarnou kombinaciou vystupov skryteho layeru. (moze pretoze sa daju pouzivat aj nelinearne metody) {{gnd:rbf_activ.gif|}} === Bazove funkcie === Tieto funkcie popisuju jadro + fallof hypergule, pricom klasifikacia vlastne znamena vzdialenost vzoru od jadra nejakej hypergule. Gaussia, Cauchy, Multiquadrics, Quadrics:\\ {{gnd:rbf_basis.gif|}} === Priznakovy priestor === Sa sklada z rozmiestnenych jadier RBF jednotiek, z ktorych kazde ma inu charakteristiku, a fallof. Bod v priznakovom priestore sa vyhodnoti z hladiska jeho vzdialenosti ku centram hyperguli, ktore su reprezentovane RBF jednotkami. Je dobre ked sa hypergule ciastocne prekryvaju, pretoze to zvysuje schopnost generalizacie, na druhej strane to ale znizuje schopnost klasifikacie. Pokial by sa neprekryvali, dochadza ku over-fittingu vstupnych dat a moze sa stat ze bod medzi dvoma hypergulami nebude spravne zaradeny.. === Problem interpolacie === Najst funkciu, ktora spravne interpoluje data. RBF to robia linearnou kombinaciou jednotiek h(i). Teda w^t*h(i) = d(i), i = 1,2...n. Ked isi to dame do matice, a zjednodusime, vyjde nam ze w = H^-1 * d. Urobim ale inverznu maticu ku matici H je mozne len vtedy ak tato maitce je nesingularna. Michelliho teorem vravi, ze matica H, kde h(i,j) = SIGMA(i,j)[||x(i) - x(j)||] je nesingularna. SIGMA(i,j) je prave nejaka radialna funkcia. === Aproximacne vlastnosti === Blablabla, tak ako v tom anglickom texte. RBF sa fasa rychlo ucia oproti MLP, ale zase vyzaduju vacsi priestor, a je problem najst vhodne rozlozenie centier v priznakovom priestore. ==== 13. Hybridne model NS: Radial Basis Functions, TRN, DCS ==== === RBF - sposoby trenovania vah === Trening RBF prebieha v dvoch stadiach - prve stadium je nelinearny trening RBF centier a druhy je nejaka lienarna optimalizacia vystupov z RBF layera. * Fixed centers selected at random - centra RBF hypergul sa nahodne rozhodia po celom priestore priznakov. Je to fajn ked maju data gaussovsku distribuciu. Je mozne im aj davat rozlicne velkosti, ale treba k tomu nejaku heuristiku dalsiu. * Self-organized selection of centers (metoda k-means) - centra sa prejdu nejakym SOM-like algoritmom a na jeho konci optimalne pokryju cely priestor priznakov. * Supervised selection of centers - nad vyberom centier stoji vsevidiace oko Velkeho Brata bwahaha.. Gradientove metoy, etc.. === TRN - Topology Representing Network === Ni na nete nic nenachadzam, tak vravim ze to je intepretacia dat pomocou grafu, v ktorom je mozne killovat a pridat hrany. === DCS - Dynamic Cell Structures === Podobne ako TRN ale este navyse sa pridavaju nove nody do grafu, tam kde je najvacsia chyba medzi dvoma nodami. Nova noda ziska priemerne hodnoty jej susedov. === Porovnanie RBF a MLP === * MLP deli priestor pomocou hyperrovin, MLP zase priestor deli pomocou "horucich" jadier hypergul. (teplo teplejsie .. uaa!). * Rozdielnost aktivacnych funkcii * RBF staci jeden skryty layer * RBF sa uci ovela rychlejsie * MLP extrapoluje aj nezname data, RBF len tie ktore su blizko centier.. * etc.. ==== 14. RNS - Time Delayed Neural Network ==== === Recurent Neural Networks === Klasicke modely NN maju problem rozlisit casovy kontext a naslednost vstupov. Ich pamat je obmedzena len pre sucasny vstup, a vystup nezavysi od sekvencie poslednych vstupov (kontextu). Aplikacie v ktorych sa vyzaduje takato funkcnost su viacere: rozpoznavanie reci, predpovedanie casovych radov, rozpoznavanie casovych radov a podobne. \\ \\ Prve taketo modely NN boli len ciastocne rekurentne. Pouzivali vrstvu "kontextovych" neuronov, ktorych vystup sa posielal skrytej vrstve: \\ * Elmanov model: kontextova vrstva dostava feedback od skrytej vrstvy * Jordanov model: kontextova vrstva dostava feedback od vystupnej vrstvy. Pouzitie "decay units": c(i+1) = ALFA*(c(i)) + y(i), 0 < ALFA < 1 * Stornettov model: kontextova vrstva dostava decay loop na vstupe ( c(i+1) = ALFA*(c(i)) + x(i) ), podobne ako IIR filtre * Mozerov model: plne prepojenie medzi kontextovymi a vstupnymi neuronmi, ucenie odlisne od backpropu === Time Delayed Neural Network === Z toho co som pochopil sa jedna klasicku feeforward neuronovu siet, v ktorej ale existuje delay. S delayom sa pracuje tak, ze ak sa sieti prezentuje nejaka sekvencia, tato sekvencia sa po jej prezentacii vlozi do delay fronty s dlzkou n. Po n cykloch z fronty vypadne. Kazdy neuron si teda svoju aktivaciu rata nie cez net input ale cez delayovany net input. Delayovany net input je tiez vazeny. Teda ak mame dlzku delay fronty rovnu n, potom net input bude: \\ \\ net = a0x(0) + a1x(1) + ... + anx(n), kde x(n) je vstupny vektor pred casom n. Akurati si niesom isty ci vahy a0 az an su rovnake alebo nie.\\ \\ Pokial som pochopil spravne z netu, siet sa trenuje rovnako ako obycajna feeforward. Predpokladam ze asi su vsetky vahy ku delayovanym inputom rovnake, alebo sa spravi average vah a potom sa kazda z nich updatne rovnakym dielom. \\ \\ Vyuzitia su speech recognition, time-series predition, etc - veci ktore vyzaduju aj casovy kontext. Nevyhody su tie, ze delay ma dlzku okna n, a tuto dlzku okna treba vzdy nejakym sposobom nastavit, pricom existuju aplikacie pre ktore ziadna dlzka n nieje vhodna, pretoze je konecna. ==== 15. RNS - Back Propagation Through Time ==== Rozsirenie feedforward sieti o casovu dimenziu. Podobne ako TDNN. Do delay fronty sa ale uklada vystup neuronu v case x. Fronta ma opat dlzku n. Vstupom do input layeru je sekvencia dlzky n. Neuron v case x+1 dostane na vstup: vystupy od neuronov v case x, x+1 cast sekvencie, a svoj vystup v case x. Vsetky tieto vstupy maju rovnake vahy.\\ === Trening === Trenovanie sa deje po "prezuti" celej sekvencie. U poslednej casti sekvencie sa vypocita delta ako nasobok f(net) a e(i). U predoslych casti sekvencie napriklad t, sa rata nasobok f(net) * [e(i) + suma vahy * delty (t+1)]. Vyrata sa takisto celkova chyba ako 1/2 * suma cez cas sum cez chyby neuronov. Vaha sa updatne ako alfa * suma cez cas delta(i) v case t * x(t-1).\\ {{gnd:bptt.gif|}} Nevyhody podobne ako u TDNN - dlzka sekvencie je fixna. [[http://www.willamette.edu/~gorr/classes/cs449/rnn1.html|popis]] ==== 16. RNS - Real Time Recurrent Learnig ==== Kompletne prepojena rekurentna neuronova siet. (alebo aspon minimalne sa tvari ze "we now make network connectivity very very unconstrained". Uci sa modifikaciou backpropu, ktory funguje realtime. Chyba sa rata len ked dany vystup ma nejaky "ciel". Pocita sa chyba v case t, a z nej sumaciu cez vsetky neurony s cielom celkova chyba v case t. Potom sa to zacina zamotavat: na updatovanie vah sa pouziva specialny operator: {{gnd:rtrl_operator.gif|}} ktory: The key to understanding RTRL is to appreciate what this factor expresses. It is essentially a measure of the sensitivity of the value of the output of unit k at time t to a small change in the value of wij, taking into account the effect of such a change in the weight over the entire network trajectory from t0 to t. Note that wij does not have to be connected to unit k. (!) Thus this algorithm is non-local, in that we need to consider the effect of a change at one place in the network on the values computed at an entirely different place. Pouziva sa aj technika "Teacher forcing", kde sa niekedy vystupy nahradia idealnymi vystupmi (cielmi). Tie su potom feebackovane naspat do siete. === Chyba & Vahy === {{gnd:rtrl.gif|}} [[http://www.willamette.edu/~gorr/classes/cs449/rtrl.html|popis]] ==== 17. Hopfieldov model, Deterministicka verzia ==== Hoppfieldov model bol popisany Johnom Hopfieldom v aprili 1982. Jedna sa o jedinu vrstvu kompletne poprepajanych neuronov. Vystupy jednotlivych neuronov su zapojene do vstupov ostatnych neuronov. Kazdy neuron ma aj externy vstup. Jedna sa o formu rekurentnej siete.\\ \\ * Neurony su binarne, stavy bud -1 a 1, alebo 0 a 1, takto Hopfieldov model pripomina celularne automaty * Neurony niesu napojene same na seba. * Vahy medzi neuronmi su symetricke === Pravidlo aktivacie === {{gnd:hopfield_rule.png|}} === Zmena stavu === Aktivacnou funkciou (napr. sgn()) prezenieme net (pravidlo aktivacie) od ktoreho odcitame treshold.. === Energia === Hopfieldov system ma prisudenu energiu, ktora vyjadruje jeho stav vo fazovom priestore: {{gnd:hopfield_energy.png|}} === Princip === Hopfieldov model je vlastne dynamicky system. Energeticka rovnica popisuje fazovy priestor. Siet ako autoasociativna pamat. Sieti sa ponukne utrzok dat a siet si ich po istej chvili konvergovania vo fazovom priestore cele zrekonstruuje. Funguje to tak ze zapamatane data predstavuju vo fazovom priestore globalne minima, a vlastne su to atraktory, ktore pritahuju tie ci one vzorky, ktore sa sieti poskytnu. Z napisaneho vyplyva ze aktivacna rovnica sluzi na minimalizaciu energie. * Synchronny model (vahy sa updatuju naraz) * Asynchronny model (vyberie sa nahodny neuron a vahy sa updatnu) * Hybridny model ==== 18. Hopfieldov model, stochasticka verzia ==== Pracuje sa s terminom T "teplota" (teda vlastne entropia). Stavy sa mozu premenit na ine stavy na zaklade pravdepodobnosti. Najprv sa urci pravdepodobnost zmeny na zaklade rovnic a potom sa zjavne hodi kockou. === Rovnice === {{gnd:hopfield_stocha.gif|}} Dovysvetlenie: Spurious attractors su lokalne minima kde sa siet moze zastavit. Tieto stavy v stochastickom modeli vylucime tak ze do dat uvedieme sum (cez pravdepodobnostny pristup)