PV021: Neuronové sítě Tomáš Brázdil i Organizační poznámky Zdroje: ► hlavní zdroj: přednáška ► Jiří Šíma a Jan Neruda, Teoretické otázky neuronových sítí http://www2.cs.cas.cz/~sima/kniha.pdf (nás se týká především Část I.) ► (přednáška je založena na částech dalších knih, např. Christopher M. Bishop, Pattern Recognition and Machine Learning) Závěrečné hodnocení: ► projekt ► dvoučlenné týmy; implementace vybraného modelu + analýza vlastních dat ► implementace v jazycích C++ nebo Java bez využití knihoven pro strojové učení a data mining ► data pokud možno reálná, která je nutno připravit pro analýzu ► ústní zkouška (cokoliv z přednášky včetně důkazů, které budu psát na tabuli) Strojové učení obecně ► Strojové učení = konstrukce systémů, které se mohou učit z dat (a tudíž je není třeba explicitně programovat) ► spam filter ► učí se na databázi "označkovaných" emailů ► poté samostatně rozpozná nový spam ► čtečka rukou psaných písmen ad« a ► ucí se na databázi rukou psaných ^ ^ 1/1 _L n písmen s označením správné odpovědi j^s A g ► poté samostatně rozpoznává písmena L <. / T 1 *ee, e ► a další obrovské množství aplikací... ► Základní požadavky na daný učící algoritmus: ► reprezentace: schopnost zachytit strukturu učících dat ► generalizace: schopnost dobře fungovat na nových datech 3 Strojové učení - přístupy Učení (obvykle) spočívá v konstrukci matematického modelu dat a jeho následné aplikaci na nová data. Existuje mnoho druhů modelu: ► rozhodovací stromy ► induktivní logické programování ► Bayesovské sítě (a tzv. grafické modely) ► neuronové sítě ► support vector machines ► skryté Markovovy modely ► ... Neuronové sítě, vycházející z modelu lidského mozku, jsou přirozeným základem pro učící algoritmy! Co jsou umělé neuronové sítě ► Umělý neuron je hrubou matematickou aproximací biologického neuronu. ► (Umělá) neuronová síť se skládá ze vzájemně propojených (umělých) neuronů. "Schopnosti" sítě jsou zakódovány v síle spojů mezi neurony. Zdroj obrázku: http://tulane.edu/sse/crab/people/schrader/ Proč umělé neuronové sítě .. Modelování biologických neuronových sítí (computational neuroscience). ► zjednodušený matematický model pomáhá identifikovat důležité mechanismy ► Jak mozek přijímá a zpracovává informace? ► Jak uchovává informace? Jak se mozek vyvíjí? ► neurovědy jsou silně multidisciplinární - precizní (matematický) popis usnadňuje komunikaci mezi odborníky na jednotlivé podoblasti Této oblasti se nebudu příliš věnovat! 6 Proč umělé neuronové sítě Neuronové sítě ve strojovém učení. ► Většinou mnohem "primitivnější" modely, které se postupně odchylují od biologické motivace. ► Silně zaměřené na aplikace v různých oblastech, např. ► řízení a rozhodování - autonomní řízení vozidel, řízení výrobních procesů, zpráva přírodních zdrojů ► hry - vrhcáby, poker ► finančnictví - vývoj cen akcií a měnových kurzů, analýza rizik, dělení klientů do specifických skupin ► medicína - diagnostika, zpracování signálu (EKG, EEG, ...), analýza obrazu (MRI, rentgen,...) ► další rozpoznávání vzorů - rozpoznávání řeči, textu, obrazu, radarových a sonarových signálů ► zpracování signálu - filtrace, odstranění šumu Této oblasti se budu věnovat! Významné vlastnosti neuronových sítí ► Masivní paralelismus ► mnoho pomalých výpočetních prvků zpracovává informace paralelně na mnoha úrovních ► Adaptace a učení ► dítě se naučí poznat králíka poté, co se mu ukáže několik králíků ► Schopnost generalizace ► po shlédnutí několika králíků je dítě schopno poznat další (jiné) králíky ► Odolnost vůči nepřesnosti vstupu ► rozmazaná fotka králíka může být stále klasifikována správně jako obraz králíka ► Odolnost vůči poškození ► mnoho experimentů prokázalo, že i poškozená neuronová síť je stále schopna uspokojivě fungovat ► poškozená síť se může přeadaptovat, stávající neurony mohou převzít funkci poškozených 8 Cíl předmětu ► Na co se zaměříme ► Základní techniky a principy neuronových sítí (NS) ► Přehled základních modelů NS a jejich použití ► Co si (doufám) odnesete ► Znalost základních modelů NS (perceptron, vícevrstvá síť, hluboké sítě, Hopfieldova síť, Boltzmannův stroj, Kohonenova mapa) ► Znalost jednoduchých aplikací těchto modelů ► Znalost základních principů učení NS ► Přehled elementárních "implementačních" technik pro učení a aplikaci NS ► přehled některých souvisejících modelů a technik (redukce dimenze dat, PCA) 9 Základy neuronových sítí ► Biologický neuron a neuronová síť ► Formální neuron ► Neuronové sítě a jejich dynamika Biologická neuronová síť ► Nervová soustava člověka se skládá z přibližně 1011 neuronů (centimetr krychlový lidského mozku obsahuje až 50 milionů nervových buňek) ► Každý neuron je spojen s přibližně 104 neurony ► Neurony jsou velmi komplexní systémy Velmi hrubý popis funkce nervové soustavy: Vnější podněty jsou přijímány receptory (např. buňky oka). ► Informace jsou dále přenášeny pomocí periferní nervové soustavy (PNS) do centrální nervové soustavy (CNS -mícha, mozek) kde jsou zpracovávány (integrovány) ► Po zpracování informace jsou (pomocí PNS) případně aktivovány efektory (např. svalové buňky) Biologická neuronová síť - příklad Cell body of Gray Zdroj: N. Campbell and J. Reece; Biology, 7th Edition; ISBN: 080537146X Mozková kůra Biologický neuron Dendrity Zakončení axoiiu Schwannova buňka Axon Myelinová pochva Buněčné jádro Zdroj: http://www.web-books.com/eLibrary/Medicine/Physiology/Nervous/Nervous.htm umace a akční potenciál ► Klidový potenciál v těle neuronu « -70 mV *■ Vnější podněty mění potenciál v axonovém hrbolku *■ Po překročení prahu « -50 mV je generován akční potenciál« 40 mV *- Poté nastane krátká refrakce « -80 mV *■ akční potenciál se šíří axonem, v axonovém zakončení vyvolá chemický Zdroj obraz9u?^rtf3 fytywv^. ^fflex^col^ameQ^p™^ Akční potenciál - podrobněji Copyright 0 Pearson Eduealtcn. Inc.. publisfilng as Benjamin Cum m Higs. íření akčního potenciálu axonem (Í)AP begins ^at axon hillock ŕ r r ■A @ electrical current spreads... (^current spread is the electrical d event that triggers V-gated channels (A thus the AP) a tiny bit down the axon ■*(A)electrical current spreads... w-> f§)current spread is the electrica *■ event that triggers V-gated channels (& thus the AP) a tiny bit down the axon ^f&electrical current \^-^7^ spreads^ etcetera... Zdroj: D. A. Tamarkin; STCC Foundation Press Synaptický přenos Copyright O Pserson Education Inc.. publishing as Benjamín Currirriiriqs. Figure 48.11(a), page 972, Campbell's Biology, 5th Edition Formální neuron bez biasu ► x-i,..., xn jsou reálné vstupy („dendrity") ► w-|,.. .,wn jsou reálné váhy („propustnost synapsí") ► £ je vnitřní potenciál; většinou £ = L/Li wixi ► y je výstup daný y = a(£) kde o aktivační funkce; např. ostrá nelinearita kde h je reálný práh. Formální neuron (s biasem) bias x0 = 1 x-i,.. .,xn jsou reálné vstupy x0 je speciální vstup, který má vždy hodnotu 1 w0, w-i,..., wn jsou reálné váhy £ je vnitřní potenciál; většinou £ = w0 + £,"=1 w,-X/ y je výstup daný y = a(£) kde a je aktivační funkce; např. osřrá nelinearita ( práh aktivační funkce je roven 0; reálný práh byl nahrazen vstupem x0 = 1 a váhou w0 = -h) Neuron a lineární separace ► vnitřní potenciál 22 Zde n = 8 • 8 tedy počet pixelů v obrazcích. Vstupy jsou binární vektory dimenze n (tmavý bod « 1, světlý bod « 0). 23 lineární separace x,- = O wo + wixi = 0 B B Červená přímka nesprávně klasifikuje Zelená klasifikuje správně (může být výsledkem korekce učícího algoritmu) B 24 Neuron a lineární separace *1 (0,1) | (1,1) o—© (0,0) Neexistuje přímka, která by oddělila body 1 od bodů 0. (0,1) *2 25 Neuronové sítě ► Neuronová síť se skládá z formálních neuronů, které jsou vzájemně propojeny tak, že výstup jednoho neuronu je vstupem obecně více neuronů. ► Architektura sítě je určena počtem a vzájemným propojením neuronů. ► Stav sítě je vektor hodnot všech neuronů. (Stavy sítě s n neurony jsou prvky R") ► Stavový prostor sítě je množina všech stavů. ► Konfigurace sítě je vektor hodnot všech vah v síti. (Konfigurace sítě s m spoji jsou prvky Rm) ► Váhový prostor sítě je množina všech konfigurací. 26 Neurony rozdělujeme ► Výstupní ► Skryté ► Vstupní Neuronové sítě Dynamiku sítě dělíme do tří režimů - Organizační ► architektura sítě a její případná změna ► Aktivní ► počáteční stav sítě (hodnoty neuronů) a jeho změny v čase (při pevné architektuře a konfiguraci) (mimo jiné určuje způsob výpočtu vnitřních potenciálů E, a aktivační funkce o všech neuronů) ► Adaptivní ► počáteční konfigurace sítě (hodnoty vah) a její změna v čase (učení) 28 Organizační dynamika Organizační dynamika určuje strukturu sítě. Rozlišujeme dva typy architektury: ► Cyklická (resp. rekurentní), pokud obsahuje orientovaný cyklus. O—O O Acyklická (resp. dopředná) Q O O Organizační dynamika - vícevrstvé sítě Výstupní Skryté Vstupní (XQ OD Neurony jsou rozděleny do vrstev (vstupní a výstupní vrstva, obecně několik skrytých vrstev) Vrstvy číslujeme od 0; vstupní vrstva je nultá ► Např. třívrstvá síť se skládá z jedné vstupní, dvou skrytých a jedné výstupní vrstvy. Neurony v /-té vrstvě jsou spojeny se všemi neurony ve vrstvě ; + 1. Vícevrstvou síť lze zadat počty neuronů v jednotlivých vrstvách (např. 2-4-3-2) 30 Aktivní dynamika určuje, jakým způsobem síť počítá. Mějme síť s n neurony z nichž k je vstupních a l výstupních. ► Vstup sítě je vektor k reálných čísel, tedy prvek Rfc. (někdy se omezíme pouze na jistou podmnožinu Rk) Vstupní prostor sítě je množina všech vstupů. ► Počáteční stav Vstupní neurony jsou nastaveny na hodnoty ze vstupu sítě (každá složka vstupu má přiřazen příslušný vstupní neuron) Ostatní neurony jsou iniciálně nastaveny na 0. ► Výpočet (obvykle) probíhá v diskrétních krocích. V každém kroku se provede následující: 1. Podle pravidla aktivní dynamiky je vybrán jeden neuron (sekvenční výpočet) nebo více neuronů (paralelní výpočet). 2. Vybraný neuron změní svůj stav v závislosti na hodnotách svých vstupů. (Hodnota neuronu, který nemá vstupy, zůstává konstantní.) Výpočet je konečný pokud se od jistého kroku dál nemění stav sítě. ► Výstup sítě je vektor hodnot všech výstupních neuronů (tedy prvek Rr). Výstup se mění v průběhu výpočtu! Pro vícevrstvé sítě používáme následující pravidlo aktivní dynamiky: V /-těm kroku vyhodnoť právě všechny neurony v /-té vrstvě. Aktivní dynamika - funkce sítě Definice Mějme neuronovou síť s n neurony z nichž k je vstupních a í výstupních. Nechť A cRka6c Rr. Předpokládejme, že výpočet této sítě skončí pro každý vstup z A. Řekneme, že tato síť počítá funkci F : A —> B pokud pro každý vstup v e A je F(v) výstupem sítě po skončení výpočtu. Podle toho, zda je funkce sítě diskrétní nebo spojitá rozlišujeme diskrétní a analogové neuronové sítě. Příklad 1 Tato síť počítá funkci z R2 do R. 33 Aktivní dynamika - aktivační funkce Aktivní dynamika určuje aktivační funkci a pro každý neuron. ► Ostrá nelinearita •<«-{; ► Logistická sigmoida oU) =--—— kde A e R je prametr strmosti. 1 + e_A« ► Hyperbolický tangens 1 - 34 Aktivní dynamika - vnitřní potenciál Aktivní dynamika určuje způsob výpočtu vnitřního potenciálu £ každého neuronu. Pokud nebude uvedeno jinak, předpokládáme, že Později využijeme další možnosti, např. r- 11 ~» ~* 11 £ = ||x - w\\ kde INI je daná vektorová norma (nejčastěji Euklidovská), x = (x-i,.. .,xn) jsou vstupy neuronu a w = (w-,,..., wn) jsou váhy. n Wi ■ X; 35 Aktivní dynamika - XOR 1010 1001 ► Aktivační funkce je ostrá nelinearita ► Síť počítá funkci XOfí(x-|,x2) X1 x2 y 1 1 0 1 0 1 0 1 1 0 0 0 Neuron a lineární separace 3-2xi- 2x2 = 0 Aktivační funkce ostrá nelinearita Adaptivní dynamika Adaptivní dynamika určuje, jakým způsobem se síť učí. ► počáteční konfigurace váhy mohou být nastaveny buď náhodně nebo na základě předběžné znalosti vstupů sítě ► učící pravidlo pro (postupnou) adaptaci vah cílem je adaptovat váhy tak, aby síť počítala danou funkci 39 Adaptivní dynamika - učící pravidla ► učení s učitelem ► Požadovaná funkce je zadána množinou tréninkových vzorů což jsou dvojice tvaru (vstup, výstup). ► Při učení se hledá konfigurace sítě, která nejlépe odpovídá daným vzorům (vzhledem k danému kvalitativnímu kritériu). ► učení bez učitele ► Tréninková množina obsahuje pouze vstupy sítě. ► Cílem je odhalit strukturu v množině vstupů (shlukování, samoorganizace) Učení s učitelem - ilustrace klasifikace v rovině pomocí jednoho neuronu tréninkové vzory jsou tvaru (bod, hodnota) kde hodnota je buď 1 nebo 0 podle toho zda je bod ze skupiny A nebo B po předložení nesprávně klasifikovaného vzoru skupiny A (červená přímka), učící algoritmus pootočí přímku ve směru nesprávně klasifikovaného bodu (zelená přímka). Učení bez učitele - ilustrace 0 ► hledáme dva reprezentanty „shluků" A q ► červené křížky odpovídají • x< reprezentantům před aplikací ^ X učícího algoritmu, zelené po aplikaci ► učící algoritmus může např. napočítat množinu bodů, které jsou nejblíže danému reprezentantovi a potom reprezentanta posunout do těžiště této množiny bodů 42 Výhody umělých neuronových ► Masivní paralelismus ► neurony mohou být vyhodnocovány současně ► Adaptace a učení ► existuje mnoho učících algoritmů, které „programují" neuronové sítě na základě příkladů požadovaného chování ► Schopnost generalizace a odolnost vůči nepřesnosti vstupu ► informace jsou v síti kódovány přibližně pomocí vah mnoha neuronů ► na vstup podobný vstupu tréninkového vzoru, reaguje naučená síť podobným výstupem ► takto je schopna extrahovat charakteristické vlastnosti dat ► Odolnost vůči poškození ► poškození se obvykle projevuje postupnou ztrátou přesnosti výsledků 43