9. Zvezni večplastni perceptroni

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.

Osnovni pojmi ključno

Zvezne večplastne perceptrone uporabljamo za identificiranje neznane funkcijske relacije $f$ med dvema množicama $\mathcal{X}$ in $\mathcal{Y}$:

Kaj se mreža uči
$$f: \mathcal{X} \longmapsto \mathcal{Y}, \qquad \mathcal{X} \subset \mathbb{R}^n \wedge \mathcal{Y} \subset \mathbb{R}^m$$

Identificiranje poteka na osnovi učne množice $UM$ — parov (vhod, želen izhod):

Učna množica
$$UM = \{(x_i,\, t(x_i)) \mid x_i \in \mathcal{X} \wedge t(x_i) \in \mathcal{Y}\}$$

Predpostavimo: $t(x_i) = f(x_i)$.

Posplošitev oz. generalizacija

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.

Izbira topologije

Pri delu z nevronskimi mrežami je ključnega pomena izbira ustrezne topologije. Topologija označuje organiziranost in število nevronov v posameznih plasteh.

🔑 Topologija določi razred funkcij

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.

Splošni zvezni večplastni perceptroni razumevanje

Poljuben problem lahko rešimo že s pomočjo zveznega triplastnega perceptrona!

Obtežen vhod $s_{1k}$ za $k$-ti nevron v prvi plasti:

Obteženi vhod nevrona v 1. plasti
$$s_{1k} = \hat{w}_{1k}\hat{x} = w_{1k,0} + w_{1k,1}x_1 + w_{1k,2}x_2 + \dots + w_{1k,n_0}x_{n_0}$$

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:

na listu
A. Linearna prenosna funkcija
$$y = f(s) = k_1 s + k_0$$
na listu
B. Sigmoidna prenosna funkcija
$$y = f(s) = \frac{1}{1 + e^{-s}}$$
Originalni prosojnici (str. 120–121)
120121

Učno pravilo gradientnega sestopa ključno

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:

na listu
Srednja kvadratna napaka (9)
$$E = \frac{1}{2}\sum_{x_i \in S_N}\sum_{j=1}^{n_3}\big(t_j(x_i) - y_j(x_i)\big)^2$$
Učno pravilo gradientnega sestopa (vzvratno učenje)

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

$$\triangle w = -\epsilon \nabla E(w)$$

Stopnja učenja $\epsilon$ je majhno pozitivno število, $\nabla E(w)$ pa je gradientni vektor, odvisen od vektorja uteži $w$.

⚠️ Kaj gradientni sestop NE zagotavlja

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$:

na listu
Pravilo za izračun spremembe uteži
$$\triangle w_i = -\epsilon\frac{\partial E}{\partial w_i} = \sum_{x_k \in S_N}\sum_{j=1}^{n_3}\epsilon\big(t_j(x_k) - y_j(x_k)\big)\frac{\partial y_j}{\partial w_i}$$
Globalno oz. paketno učenje

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.

Lokalno oz. inkrementalno učenje

Pri adaptaciji v vsakem učnem koraku uporabimo le en vzorec $x_k$ iz učne množice — prva vsota ni več potrebna.

Enonevronski zvezni perceptroni naloga 22

A. Učenje

Izhod: $y = f_w(x_i) = f(s(x_i))$, obteženi vhod:

na listu $$s(x_i) = \hat{x}\hat{w} = \sum_{j=0}^{n} w_j x_{i,j}$$

Formule za učno pravilo gradientnega sestopa se poenostavijo:

na listu
Srednja kvadratna napaka za en nevron
$$E = \frac{1}{2}\sum_{x_i \in S_N}\big(t(x_i) - y(x_i)\big)^2$$
na listu
Adaptacija posamezne uteži
$$\triangle w_j = \epsilon\sum_{x_i \in S_N}\big(t(x_i) - y(x_i)\big)\frac{df}{ds}x_{i,j}$$
na listu
Adaptacija razširjenega vektorja uteži
$$\triangle \hat{w} = \epsilon\sum_{x_i \in S_N}\big(t(x_i) - y(x_i)\big)\frac{df}{ds}\hat{x}_i$$
💡 Odvod sigmoide — koristno si zapomniti
$$\frac{df}{ds} = f'(s) = \left(\frac{1}{1+e^{-s}}\right)' = f(s)\big(1 - f(s)\big)$$

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.

Zgled s predavanj

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$.

  1. Trenutni izhodi: $y([1,1]) = 1$, $y([1,-1]) = 0$, $y([-1,1]) = 0$.
    $E = \frac{1}{2}\left[(0{,}9-1)^2 + (0{,}1-0)^2 + (0{,}1-0)^2\right] = 0{,}015$
  2. Nevron ni naučen → odvod prenosne funkcije: $\frac{df}{ds} = (s)' = 1$
  3. Vstavimo v enačbo za adaptacijo: $$\triangle\hat{w} = \epsilon(-0{,}1)\begin{bmatrix}1\\1\\1\end{bmatrix} + \epsilon(0{,}1)\begin{bmatrix}1\\1\\-1\end{bmatrix} + \epsilon(0{,}1)\begin{bmatrix}1\\-1\\1\end{bmatrix} = \begin{bmatrix}0{,}1\\-0{,}1\\-0{,}1\end{bmatrix}$$
  4. Nov razširjen vektor pri $\epsilon = 1$: $\hat{w}_{\text{nov}} = [0;\,0{,}5;\,0{,}5] + [0{,}1;\,-0{,}1;\,-0{,}1] = \mathbf{[0{,}1;\,0{,}4;\,0{,}4]}$

B. Razvrščanje vzorcev v dva razreda

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):

  1. razvrščanje s hiperravninsko ločilno mejo z ena in nič označevanjem,
  2. razvrščanje s hiperravninsko ločilno mejo z označevanjem z dvojnim pragom,
  3. razvrščanje s hiperravninsko ločilno mejo z označevanjem z enojnim pragom.

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$:

Ločilna meja perceptrona
$$x_n = -\frac{1}{w_n}\left(w_0 + w_1x_1 + \dots + w_{n-1}x_{n-1}\right)$$

a. Z ena in nič označevanjem

1. Faza učenja
2. Faza razvrščanja

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$.

b. Z označevanjem z dvojnim pragom naloga 23

Faza razvrščanja je enaka kot pri a). Faza učenja pa uporablja dva praga:

🔑 Kdaj je prispevek k napaki enak nič

Hitrost učnega procesa se zelo poveča, saj adaptacijo uteži izračunamo zgolj na osnovi napačno razvrščenih vzorcev:

na listu
Adaptacija pri dvojnem pragu
$$\triangle\hat{w} = \epsilon\left[\sum_{x \in \neg S_A}(a - y(x))^2\frac{df}{ds}\hat{x} + \sum_{x \in \neg S_B}(b - y(x))^2\frac{df}{ds}\hat{x}\right]$$

c. Z označevanjem z enojnim pragom

⚠️ Razmislek — zakaj je ta način nevaren
Originalne prosojnice (str. 124–129)
124125126 127128129

Dvoplastni zvezni perceptroni naloga 23

A. Trinevronski dvoplastni zvezni perceptron

Prehod signala skozi mrežo
$$y_1 = f_1(s_1), \quad s_1 = w_{10} + w_{11}x_1 + w_{12}x_2$$ $$y_2 = f_2(s_2), \quad s_2 = w_{20} + w_{21}x_1 + w_{22}x_2$$ $$y_3 = f_3(s_3), \quad s_3 = w_{30} + w_{31}y_1 + w_{32}y_2$$

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):

na listu
Uteži druge (izhodne) plasti
$$\triangle w_{30} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}$$ $$\triangle w_{31} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}y_1(x)$$ $$\triangle w_{32} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}y_2(x)$$
na listu
Uteži prve (skrite) plasti
$$\triangle w_{10} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{31}\frac{df_1}{ds_1}$$ $$\triangle w_{11} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{31}\frac{df_1}{ds_1}x_1$$ $$\triangle w_{12} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{31}\frac{df_1}{ds_1}x_2$$ $$\triangle w_{20} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{32}\frac{df_2}{ds_2}$$ $$\triangle w_{21} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{32}\frac{df_2}{ds_2}x_1$$ $$\triangle w_{22} = \epsilon\sum_{x \in S_N}(t(x) - y_3(x))\frac{df_3}{ds_3}w_{32}\frac{df_2}{ds_2}x_2$$
💡 Vzorec, ki si ga je vredno zapomniti

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.

B. Razred funkcij, realiziranih z dvoplastnimi perceptroni

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.

Podprileganje (premalo nevronov)

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.

Nadprileganje (preveč nevronov)

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.

Teorem 1

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.

Teorem 2

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.

Hitrost učenja in inicializacija sinaptičnih uteži razumevanje

A. Hitrost učenja

Č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$:

na listu
Metoda momenta
$$\triangle\hat{w}_{\text{nov}}(k) = \triangle\hat{w}(k) + \alpha\,\triangle\hat{w}(k-1)$$

Momentni parameter $\alpha$ je skalar iz intervala $[0, 1]$.

B. Skaliranje vhodov in izhodov

C. Inicializacija sinaptičnih uteži

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:

na listu
Težišče in prag
$$c = \frac{1}{N}\sum_i x_i \qquad\qquad w_0 = -w_1c_1 - w_2c_2 \quad \text{(2D primer)}$$
Originalne prosojnice (str. 130–136)
130131132 133134135 136

Preveri se

1Razred A = {[0,0], [−1,−1]}, razred B = {[0,−1], [−1,0]}. Kolikšen je vektor uteži enonevronskega perceptrona po učenju (E ≈ 0)?
Razlaga

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«).

2Pri označevanju z dvojnim pragom (a = 0,7, b = 0,3) da mreža za vzorec iz A izhod y₃ = 0,913, za vzorec iz B pa y₃ = 0,066. Kolikšen je njun skupni prispevek k napaki E?
Razlaga

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.

3Mreža gre natanko skozi vse učne točke, med njimi pa močno oscilira. Kaj se je zgodilo in kako to popraviš?
Razlaga

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.