RBF sítě Organizační dynamika: ► Dvouvrstvá síť (výstupní neuron má bias) ► vstupy: x = (xi,...,x„) ► m skrytých neuronů Jejich hodnoty značíme c/)0,(/>i,. m kde o(x),i(x),.. .,m(x) abych zdůraznil, že se jedná o hodnoty skrytých neuronů pro vstup sítě x. ► jeden výstup: y (pro jednoduchost; lze zobecnit na libovolný počet) Parametry sítě: ► Výstupní neuron je jako ADALINE: má váhový vektor w e Rm+1 ► Každý skrytý neuron / má tzv. střed c,- e R" (odpovídá váhám ve standardní vícevrstvé síti) a šířku a, e R" (odpovídá strmosti ve standardní síti, tj. je to parametr aktivační funkce) RBF site Aktivní dynamika: Vnitřní potenciály skrytých neuronů: X - C; Zde q je střed skrytého neuronu j. Aktivační funkce skrytých neuronů (p0, i, • • •, m jsou obecně libovolné diferencovatelné (a cp0 = 1). Budeme uvažovat: E a každé e > 0 existuje RBF síť taková, že její funkce y splňuje: |ř(x)-y(x)| < £ VxeR" 3 RBF sítě Adaptivní dynamika: Dána množina tréninkových vzorů T = {(xA,dA),{x2,d2),...,(xp,dp)] Zde xk = (Xfci... ,xkn) e Rn je vstup /c-tého vzoru a dk e IR je očekávaný výstup. Chybová funkce: E=\ Z -d*)2 Cílem je nalézt následující parametry tak, aby byla chyba E minimalizována: ► váhy Wj výstupního neuronu ► středy cs skrytých neuronů ► šířky oj skrytých neuronů Sítě typu RBF - gradient Učení lze provádět pomocí standardního gradientního sestupu. Gradient lze snadno spočítat přímým derivováním: Rychlost tohoto učení je srovnatelná s rychlostí zpětné propagace pro standardní (sigmoidální) sítě. RBF - dvoufázový trénink Velkou výhodou RBF sítí je, že jejich trénink lze rozdělit do dvou (téměř) nezávislých fází: ► trénink skrytých neuronů, tj. ► umístění středů q - nastavení velikosti šířek (Ty ► trénink vah w výstupního neuronu 6 RBF - středy a šířky Rozmístění středů: Pozorování: Máme velké množství dat (vstupů), pro malou část z nich máme předepsán požadovaný výstup (tréninková množina). Je dobré umístit středy neuronů do oblastí, které obsahují hodně datových bodů. Středy lze proto umístit pomocí učení bez učitele - Kohonenovo učení (tj. /c-means clustering), mapy apod. Toto lze provádět na mnohem větší množině dat, pro které nepotřebujeme předepsaný výstup Často se ovšem používá i jednoduché rovnoměrné rozmístění středů (pokud víme, že data jsou více méně pravidelně rozmístěna) nebo umístění středů do pozice náhodně vybraných vstupů. Nastavení šířek: Aktivační funkce by neměly být ani příliš strmé ani příliš ploché. Údajně dobrou heuristikou je jednotná šířka a = Dmax/ V2m kde Dmax je maximální (Euklidovská) vzdálenost středů a m je počet skrytých neuronů. RBF váhy Pro fixní hodnoty parametrů skrytých neuronů (tj. fixní středy a šířky) se jedná o ADALINE. Můžeme proto použít příslušné metody k minimalizaci chyby E. Analytické řešení: Fixujeme všechny středy a šířky chyba E je funkcí w (píšeme E(w)). Gradient funkce E(w) je roven T • («í> - w-d) kde d = (d-i,...,dp)T, w = (wQ,...,wm)T a <í> je matice p x (m + 1) jejíž ;'-tý řádek obsahuje hodnoty skrytých neuronů pro ;'-tý vstup, tj. pro každé ;' = 1,... ,p a j = 1,..., m máme t *ii = 1 a *;o-+i) = + • d kde í>+ = (<í>T • <$>) 1 • <$>T potom řeší T ■ ( ■ w - d) = 0 a tedy minimalizuje E(w). RBF sítě - regularizace Naučená síť by měla dobře generalizovat. Neměla by příliš „opisovat" tréninkové vzory (tj. neměla by být přetrénovaná). Intuice: Funkce sítě, která příliš opisuje vzory se hodně kroutí -omezíme kroucení. Definujeme novou chybovou fci Zde y > 0 je míra vlivu regularizace. Váhy které minimalizují E'(w), jsou řešením: M- w = í>T • d kde Mi ij (Pozn. pro y = 0 dostaneme M = T ■ , tj. minimalizaci E(w)) RBF sítě - výhody Srovnejme s vícevrstvou sítí se sigmoidálními jednotkami (dále budu značit MP (multi-layer perceptron)) ► Teoreticky lze aproximovat libovolnou spojitou fci (stejně jako MP) ► Dvoufázové učení: jednotlivé fáze jsou řádově rychlejší než učení MP (tj. zpětná propagace) ► RBF sítě jsou vhodné pro klasifikaci (více než MP) díky jejich lokálnímu charakteru. Vektory které jsou daleko od tréninkových vzorů, dostanou malou hodnotu (toto nemusí platit pro MP). ► jsou vhodné pro aplikace s měnícími se daty (rychlé učení umožňuje on-line adaptaci na nová data - téměř nemožné s MP) ► snadná regularizace (lineární) RBF sítě - nevýhody Opět srovnejme s MR ► Teoretické výsledky o aproximaci nefungují v praxi (odhady na potřebný počet neuronů jsou nadsazené podobně jako u MP) ► Dvoufázové učení může být deformované pokud požadované funkční hodnoty nerespektují rozmístění vstupů (např. pokud je požadovaná funkce konstantní v oblasti s mnoha vzory ale velmi variabilní v oblasti s málo vzory) ► RBF potřebují mnohem více dat i neuronů pro stejnou přesnost jako MP. ► MP aproximují funkci globálně: každý vzor adaptuje většinu neuronů a informace je tedy distribuována po síti ► RBF aproximují lokálně: pouze několik málo neuronů reaguje na daný vstup Z toho také plynou lepší extrapolační vlastnosti MP. ► RBF sítě mají větší problém s prokletím dimenzionality (exponenciální nárůst jednotek s počtem dimenzí). Nejsou schopny odhalit nízkou variabilitu předepsané funkce v daném směru. RBF sítě - nevýhody Omezený Boltzmannův stroj (OBS) Organizační dynamika: ► Cyklická síť se symetrickými spoji, neurony jsou rozděleny do dvou skupin: ► V - viditelné ► S - skryté Množina spojů je V x S (tj. úplný bipartitní graf) ► Množinu všech neuronů značíme N *■ označme £y vnitřní potenciál a y, výstup (stav) neuronu j - stav stroje: ý e {0,1}|N|. ► označme wp váhu spoje od neuronu ;' k neuronu j. ► obvykle se uvažuje bias, pro zjednodušení jej vynecháme. 13 mezený Botzmannův stroj Aktivní dynamika: Hodnoty viditelných neuronů jsou iniciálně nastaveny na hodnoty z množiny {0,1}. V ř-tém kroku aktualizujeme neurony takto: ► ř liché: náhodně zvolíme nové hodnoty skrytých neuronů, pro j e S í ( 1 + exp ieV *■ t sudé: náhodně zvolíme nové hodnoty viditelných neuronů, pro j e V P[>f = i] = i/ í ( 1 + exp ieS Rovnovážný stav Omezený Boltzmannův stroj se po jisté době dostane do termální rovnováhy. Tj. existuje čas ř* takový, že pro libovolný stav stroje y* e {0,1 }|N| platí P [;('*> =/]*pN(/) Zde pN(y*) = ^e-£^*)/Tkde Z= Y e~EM/T 76(0,1 )INI tj. Boltzmannovo rozložení Síť tedy reprezentuje rozložení pN. Omezený Boltzmannův stroj - učení Pro daný stav viditelných neuronů a e {-1,1}'V| označme pravděpodobnost stavu viditelných neuronů a v termální rovnováze bez ohledu na stav skrytých neuronů. Adaptivní dynamika: Nechť Pd je pravděpodobnostní rozložení na množině stavů viditelných neuronů, tj. na {0,1}|V|. Rozložení pd může být dáno tréninkovou posloupností T = ^,x2l...,Xp tak, že kde #(a,T) je počet výskytů a v posloupnosti T Cílem je nalézt konfiguraci sítě W takovou, že pv odpovídá p^. /?e(-1,1)lsl pd{a) = #{a,T)/p 16 Omezený Boltzmannův stroj - učení Vhodnou mírou rozdílu mezi rozděleními pv a Pd je relativn entropie zvážená pravděpodobnostmi vzorů (tzv. Kullback Leibler distance) Pd(a) S{w)= pd{a)\n (Odpovídá maximální věrohodnosti vůči posloupnosti T v případě, že pa je definováno pomocí T) Omezený Boltzmannův stroj - učení £(w) budeme minimalizovat pomocí gradientního sestupu, tj. budeme počítat posloupnost vektorů vah w(°\ w^\... ► váhy v vv(°) jsou inicializovány náhodně blízko 0 ► v ř-tém kroku (zde ř = 1,2,...) je vypočteno takto: p p ji kde Aw(0 = _£(ř).^(^(ř-1)) j' y ' dWjjy ' je změna váhy w,, v ř-tém kroku a 0 < e(t) < 1 je rychlost učení v ř-tém kroku. Zbývá spočítat (odhadnout) ^(w). (mezený Boltzmannův stroj - učení Lze ukázat, že d8 dWjj V" Hixed V] Ji llree " {yjy)fixed Je Poměrná hodnota y/y, po jednom kroku výpočtu za předpokladu, že hodnoty viditelných neuronů jsou fixovány dle rozložení pd. ► (y^ V-ř je průměrná hodnota yjl ^ v termální rovnováze bez fixace viditelných neuronů. Problém: výpočet (y^ trvá dlouho (musíme opakovaně přivést stroj do termální rovnováhy). (yf Vf ^)free se Prot° nahrazuje (yjyi)recon c°ž je průměrná hodnota yf^yf^ za předpokladu, že iniciální hodnoty viditelných neuronů jsou voleny dle p je množina všech neuronů, do nichž vede spoj z j 22 Aktivní dynamika: ► vnitřní potenciál neuronu j: ti=E wJiYi ► aktivační funkce pro všechny neurony stejná! ► Stav nevstupního neuronu j e Z \ X po skončení výpočtu je Ti = o{£j) (yy- závisí na konfiguraci w a vstupu x, proto budu občas psát y;{w,x)) *■ Síť počítá funkci z R|X| do R|Y|. Výpočet probíhá po vrstvách. Na začátku jsou hodnoty vstupních neuronů nastaveny na vstup sítě. V kroku i jsou vyhodnoceny neurony z i-lé vrstvy. luboké sítě - adaptivní dynamika Tréninková posloupnost T vzorů tvaru (x:/d:)/(x2/d2),...,(xp,3p) kde každé xk e {0,1 }|X| je vstupní vektor a každé dk e {0,1 je očekávaný výstup sítě. Pro každé je Y označme dkj očekávaný výstup neuronu j pro vstup xk (vektor dk lze tedy psát jako (dkj)-€Y)- Chybová funkce p E(w) = YjEk(Ú) kde E*(w) = ô H ~ dkif jeY 24 Proč hluboké sítě ... když jedna vrstva stačí k aproximaci libovolné rozumné funkce? ► Jedna vrstva je často značně neefektivní, tj. může vyžadovat obrovský počet skrytých neuronů pro reprezentaci dané funkce Výsledky z teorie Booleovských obvodů ukazují, že nutný počet neuronů může být exponenciální vzhledem k dimenzi vstupu ... ok, proč neučit hluboké sítě pomocí obyčejné zpětné propagace? ► Rychlost učení rapidně klesá s počtem vrstev ► Hluboké sítě mají tendenci se snadno přetrénovat 25 Hluboké sítě - adaptivní dynamika Předpokládejme k vrstvou síť.Označme ► W, matici vah mezi vrstvami / - 1 a i ► F; funkci počítanou částí sítě s vrstvami 0,1,..., / tedy F) je funkce počítaná jednovrstvou sítí skládající se ze vstupní a první vrstvy sítě, Fk je funkce celé sítě Všimněte si, že pro každé / lze vrstvy / - 1 a i společně s maticí W, chápat jako omezený Boltzmannův stroj 6,- (předpokládáme T = 1) Učení ve dvou fázích: ► předtrénování bez učitele: Postupně pro každé i — \ ,...,k trénuj OBS Bj na náhodně volených vstupech z posloupnosti F,-i (xi),..., F,_i (xp) pomocí algoritmu pro učení OBS (zde F0(x,) = x) (tedy B,- se trénuje na tréninkových vzorech transformovaných vrstvami 0,...,/-1) ► doladění sítě s učitelem např. pomocí zpětné propagace 26 Hluboké sítě Po první fázi dostaneme k vrstvou síť, která reprezentuje rozložení na datech. Z tohoto rozložení lze samplovat takto: ► přiveď nejvyšší OBS do termální rovnováhy (to dá hodnoty neuronů v nejvyšších dvou vrstvách) ► propaguj hodnoty do nižších vrstev (tj. proveď jeden krok aktualizace stavů mezilehlých OBS) ► stav neuronů v nejspodnější vrstvě potom bude představovat vzorek dat; pravděpodobnost s jakou se tam objeví konkrétní stav je pravděpodností onoho stavu v rozložení reprezentovaném sítí 27