Učenje z gradientnim sestopom, trije načini označevanja pri razvrščanju, dvoplastne mreže in problem prileganja. Daje izpitni nalogi 22 in 23.
Zvezne večplastne perceptrone uporabljamo za identificiranje neznane funkcijske relacije $f$ med dvema množicama $\mathcal{X}$ in $\mathcal{Y}$:
Identificiranje poteka na osnovi učne množice $UM$ — parov (vhod, želen izhod):
Predpostavimo: $t(x_i) = f(x_i)$.
Po učenju vrača nevronska mreža za poljuben vhod $x_i$ določen izhod $f_w(x_i)$. Ta lastnost velja za vse vhode, četudi morebiti ne pripadajo učni množici $UM$ in jih zato nismo uporabili v procesu učenja.
Pri delu z nevronskimi mrežami je ključnega pomena izbira ustrezne topologije. Topologija označuje organiziranost in število nevronov v posameznih plasteh.
Možno je pokazati, da s tem, ko izberemo topologijo nevronske mreže, hkrati določimo tudi razred funkcij, ki jih s takšno mrežo lahko realiziramo. Pri določanju topologije moramo torej približno oceniti, v kateri razred funkcij spada neznana funkcija $f$, ki jo identificiramo.
Poljuben problem lahko rešimo že s pomočjo zveznega triplastnega perceptrona!
Obtežen vhod $s_{1k}$ za $k$-ti nevron v prvi plasti:
Izhod $y_{1k}$ $k$-tega nevrona v prvi plasti: $y_{1k} = f_{1k}(s_{1k})$, kjer je $f_{1k}$ prenosna funkcija za ta nevron.
Običajno uporabljamo isto prenosno funkcijo $f$ za vse nevrone v mreži. Najbolj pogosti sta:
Problem učenja: adaptiranje sinaptičnih uteži $w$ tako, da bodo po končanem učenju izhodi $y$ za vsak vhod $x_i$ približno enaki želenim vrednostim $t(x_i)$.
Srednja kvadratna napaka (MSE) — kriterijska funkcija za merjenje uspešnosti prilagajanja:
Srednja kvadratna napaka večplastne nevronske mreže se zmanjša, če vektor sinaptičnih uteži $w$ v koraku $k$ spremenimo kot $w(k) = w(k-1) + \triangle w$, kjer
Stopnja učenja $\epsilon$ je majhno pozitivno število, $\nabla E(w)$ pa je gradientni vektor, odvisen od vektorja uteži $w$.
Učno pravilo gradientnega sestopa ne zagotavlja, da bomo resnično dosegli globalni minimum srednje kvadratne napake $E$. Lahko obtičimo v lokalnem minimumu — zato učni proces ponovimo z različnimi inicializacijami uteži.
Izpisano učno pravilo za izračun spremembe sinaptične uteži $w_i$:
Pri adaptiranju upoštevamo vse vhodne vzorce $x_k$ (glej prvo vsoto). Globalni čas učenja je število, kolikokrat smo spremenili uteži za vse vzorce iz učne množice.
Pri adaptaciji v vsakem učnem koraku uporabimo le en vzorec $x_k$ iz učne množice — prva vsota ni več potrebna.
Izhod: $y = f_w(x_i) = f(s(x_i))$, obteženi vhod:
Formule za učno pravilo gradientnega sestopa se poenostavijo:
Torej: ko že imaš izračunan izhod $y = f(s)$, je odvod preprosto $y(1-y)$ — ni ti treba računati eksponentov še enkrat. Pri linearni funkciji $f(s) = s$ pa je odvod kar 1.
Učimo enonevronski zvezni perceptron z dvema vhodoma po pravilu gradientnega sestopa: $S_N = \{[1,1],\, [1,-1],\, [-1,1]\}$, ciljne vrednosti $t([1,1]) = 0{,}9$, $t([1,-1]) = 0{,}1$, $t([-1,1]) = 0{,}1$. Začetni nabor uteži $\hat{w} = [0;\, 0{,}5;\, 0{,}5]$. Prenosna funkcija je linearna: $f(s(x_i)) = s(x_i) = w_0 + w_1x_1 + w_2x_2$.
Objekti so popisani kot vzorci v obliki množice značilnic: $x = [x_1, x_2, \dots, x_n]$. Pri razvrščanju izhodno vrednost $y = f_w(x)$ perceptrona uporabimo za določitev oznake razreda.
Obstajajo trije načini, kako uporabiti izhod $f_w(x)$ kot oznako za razred $C_A$ in $C_B$ (ob pogoju, da je prenosna funkcija sigmoidna):
V vseh načinih perceptron realizira odločitveno pravilo oz. ločilno mejo (tj. $(n-1)$-razsežna hiperravnina), ki razdeli prostor značilnic v podprostora $\mathcal{X}_A$ in $\mathcal{X}_B$:
Praktična trditev: veliko problemov razvrščanja v dva razreda, kjer je optimalna ločilna meja odprta, nelinearna in konveksna ter hkrati presek obeh razredov ni prevelik, lahko smiselno rešimo z enonevronskim zveznim perceptronom. Optimalno rešitev dobimo, kadar $|w| = \left(\sum_i w_i^2\right)^{1/2} \to \infty$.
Faza razvrščanja je enaka kot pri a). Faza učenja pa uporablja dva praga:
Hitrost učnega procesa se zelo poveča, saj adaptacijo uteži izračunamo zgolj na osnovi napačno razvrščenih vzorcev:
Učno pravilo gradientnega sestopa za vseh 9 uteži (opazi verižno pravilo — pri utežeh prve plasti nastopa še $\frac{df_3}{ds_3}$ in utež druge plasti):
Vsaka formula je zmnožek: (napaka na izhodu) × (odvod izhodnega nevrona) × [(utež, po kateri se napaka vrne) × (odvod skritega nevrona)] × (vhod, ki pripada tej uteži). Zadnji člen je $x_1$, $x_2$ ali $1$ (pri pragu $w_{i0}$) oz. $y_1$, $y_2$ pri drugi plasti. To je vzvratno razširjanje napake.
Dvoplastne perceptrone lahko na osnovi učne množice $UM$ oblike $(x_i, t(x_i))$ učimo takšne funkcije, ki bi potekala natančno skozi ali čim bolj blizu točk iz $UM$. Realizirana funkcija je odvisna od prenosne funkcije nevrona ter števila nevronov v prvi plasti.
S premajhnim številom nevronov v prvi plasti ne moremo realizirati
natančnega prileganja funkcije k podatkovnim točkam. Točke so preohlapno prilegane; perceptron
se preslabo prilagodi.
Izognemo se, če kompleksne topologije preveč ne poenostavimo.
Pri prevelikem številu nevronov bo realizirana funkcija potekala natančno
skozi podatkovne točke, hkrati pa bo močno oscilirala v intervalih med njimi. Točke so
prestrogo prilegane.
Izognemo se, če uporabljamo učne množice z veliko množico vzorcev.
Z dvoplastnim zveznim perceptronom s sigmoidno prenosno funkcijo za nevrone v prvi plasti in z enim linearnim nevronom v drugi plasti lahko aproksimiramo poljubno zvezno funkcijo $f: \mathbb{R}^n \mapsto \mathbb{R}$ v katerikoli domeni s poljubno natančnostjo. Prenosna funkcija nevrona v izhodni plasti je linearna funkcija, tj. $f_2(s) = s$.
Koristneje je uporabiti triplastni zvezni perceptron, saj je število nevronov manjše kot pri dvoplastnem, še posebej če ima aproksimirana funkcija nezveznosti.
Vsako funkcijo, ki jo lahko aproksimiramo poljubno dobro z odsekoma linearno funkcijo, lahko realiziramo s triplastnim zveznim perceptronom, ki ima en linearen nevron v izhodni plasti.
Čas učenja oz. število učnih korakov je lahko zelo veliko za zvezne perceptrone, predvsem zaradi počasnega spreminjanja uteži $\triangle\hat{w} = -\epsilon\nabla E$.
Metoda momenta: hitrost učenja izboljšamo, če k izračunani spremembi uteži $\triangle\hat{w}(k)$ v koraku $k$ prištejemo vektor, ki je proporcionalen izračunani spremembi uteži v koraku $k-1$:
Momentni parameter $\alpha$ je skalar iz intervala $[0, 1]$.
Kako pa določiti prag $T$ oz. utež $w_0$? Preprosto pravilo: vhodi nevrona morajo prispevati k njegovemu izhodu. To velja tedaj, kadar ločilna meja $\hat{w}\cdot\hat{x} = 0$, ki jo definira ta nevron, poteka skozi težišče $c$ vhodnih podatkov:
Nariši točke: (0,0) in (−1,−1) sta nasprotni oglišči kvadrata in sta v razredu A; (0,−1) in (−1,0) sta drugi dve oglišči in sta v razredu B. To je natanko problem XOR.
En nevron realizira hiperravnino (v 2D premico), z eno premico pa ni mogoče ločiti diagonalno nasprotnih oglišč. Napaka se ustavi pri ~0,5 in nikoli ne doseže 0 → problem ni rešljiv. Preveri to v pripomočku zgoraj (izberi »XOR«).
Pravilo dvojnega praga: za $x \in S_A$ je $E = 0$, če je $y_3 \geq a$. Tu $0{,}913 \geq 0{,}7$ ✓ → 0.
Za $x \in S_B$ je $E = 0$, če je $y_3 \leq b$. Tu $0{,}066 \leq 0{,}3$ ✓ → 0.
Skupni prispevek je 0. Odgovor c) je past — to bi bila formula pri ena in nič označevanju, kjer prispevajo vsi vzorci ne glede na to, ali so pravilno razvrščeni.
Natančen prehod skozi vse točke + oscilacije med njimi = klasično nadprileganje (prestrogo prileganje). Mreža se je naučila šuma, ne funkcije.
Rešitvi iz predavanj: več učnih vzorcev (nadprileganju se izognemo z velikimi učnimi množicami) ali manj nevronov v prvi plasti. Nasprotna težava — podprileganje — nastane, če topologijo preveč poenostavimo.