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