Johdatus tekoälyn taustalla olevaan matematkkaan Informaatoteknologan tedekunta Jyväskylän ylopsto 4. luento 24.11.2017
Neuroverkon opettamnen - gradenttmenetelmä Neuroverkkoa opetetaan syöte-tavote-parella (x, y) el opetusesmerkellä. Neuronen parametrt alustetaan ja verkon syötteelle x antamaa tulosta t verrataan valtulla vrhefunktolla tavotteeseen y. Vrhefunkton arvo lasketaan valtulla opetusesmerkkoukolla. Tavotteena on vrhefunkton mnmont. Kakken neuronen vakutus vrheeseen ja vrhefunkton E osttasdervaatat E E w ja b verkon kakken panojen w ja vakotermen b suhteen lasketaan esmerkks vastavrta-algortmlla. Osttasdervaatosta saadaan gradentt.
Neuroverkon opettamnen - gradenttmenetelmä Vrhefunkton gradentt E kertoo nopemman kasvun ja sten gradentn vastavektor E nopemman vähenemsen suunnan. Sopvlla askellla nopemman vähenemsen suuntaan srtymällä löydetään (menetelmään sopvlle funktolle) lokaal mnm. Kun plokerroksen parametreja on muutettu nn, että verkko tom halutulla tavalla opetusesmerkelle, sen tomntaa tarkastetaan testesmerkellä. Seuraavaks tutustutaan vrhefunkton gradentn laskemseen vastavrta-algortmlla.
Vastavrta-algortm - ulostulokerros - esmerkk Esmerkk Ulostulokerroksessa on 2 ja vmesessä plokerroksessa 3 neurona. Lasketaan vrhefunkton osttasdervaatat ulostulokerroksen panojen suhteen.
Vastavrta-algortm - ulostulokerros - esmerkk ulostulokerroksen aktvontfunkto ϕ(t) = t ulostulokerroksen vakotermt b L 1 = bl 2 = 0 vrhefunkto E = 1 2 y t 2 = 1 2 ( (t 1 y 1 ) 2 +(t 2 y 2 ) 2). ulostulokerroksen neuronen tulokset t j = ϕ(z j ) = z j = 3 k=1 w L kj al 1 k, j = 1, 2.
Vastavrta-algortm - ulostulokerros - esmerkk Lasketaan vrhefunkton osttasdervaatta ulostulokerroksen 1. neurona vastaaven panojen w L 1 suhteen. Ulostulokerroksen 2. neuronn tulos on t 2 = z 2 = 3 k=1 w L k2 al 1 k. = Panot w 11, w 21 ja w 31 evät vakuta ulostuloon t 2. = Vrhefunktossa (t 2 y 2 ) 2 on vako osttasdervonnessa panojen w 11, w 21 ja w 31 suhteen. = Kaklla = 1, 2, 3 on E w L 1 = 1 w1 L 2 (t 1 y 1 ) 2 = (t 1 y 1 ) w L 1 (t 1 y 1 ).
Vastavrta-algortm - ulostulokerros - esmerkk Summan t 1 = z 1 = 3 k=1 w L k1 al 1 k termt, jossa on wk1 L, k, ja y 1 ovat w1 L :n suhteen vakota. = w1 L (t 1 y 1 ) = w1 L = E w L 1 Vastaavast saadaan E w L 2 3 k=1 w L k1 al 1 k = (t 1 y 1 )a L 1, = 1, 2, 3. = (t 2 y 2 ) w L 2 = a L 1, = 1, 2, 3 (t 2 y 2 )= (t 2 y 2 )a L 1.
Vastavrta-algortm - ulostulokerros Ylenen tlanne, osttasdervaatat panojen w L suhteen Ulostulokerroksessa m neurona, aktvontfunkto ϕ, vrhefunkto Vrhefunktossa E = 1 2 y t 2 = 1 ( m (t k y k ) 2). 2 (t k y k ) 2 = ( ϕ ( N L 1 =1 vako panon w L suhteen kun j k = E w L k=1 ) ) 2 wk L al 1 + bk L y k = 1 w L 2 (t j y j ) 2 = (t j y j ) w L (t j y j ).
Vastavrta-algortm - ulostulokerros Ylenen tlanne, osttasdervaatat panojen w L suhteen Ketjusääntö = w L (t j y j ) = w L t j = w L ϕ(zj L ) = ϕ (zj L ) w L zj L. Summassa zj L = N l 1 k=1 w kj L al 1 k + bj L muut termt pats w LaL 1 ovat vakota panon w L suhteen = w L = E w L zj L = ( w L w L a L 1 = (t j y j )ϕ (z L j )a L 1. ) = a L 1
Vastavrta-algortm - ulostulokerros
Vastavrta-algortm - ulostulokerros Ylenen tlanne, osttasdervaatat panojen w L suhteen Osttasdervaattakaavan ndeksstä j rppuvaa osaa (t j y j )ϕ (z j ) merktään usen δ L j, jollon E w L Lasku kuten yllä ja ketjusääntö = δ L j a L 1. = δ L j = (t j y j )ϕ (z L j ) = E z L j = E a L j a L j z L j = E aj L ϕ (zj L ). δ L j on ulostulokerroksen neuronn j lttyvä vrhe.
Vastavrta-algortm - ulostulokerros Ylenen tlanne, osttasdervaatat vakotermen b L j Samaan tapaan kun panolle w L, saadaan suhteen E b L j = (t j y j )ϕ (z j ) = δ L j. Neuronn lttyvää vrhettä δj L ja ketjusääntöä käyttämällä saadaan kaavat yleselle vrhefunktolle E = E z L j E w L = E z L j z L j w L = δ L j a L 1 ja E b L j = E z L j z L j b L j = δ L j.
Vastavrta-algortm - plokerrokset Met, mks osttasdervaattoja panojen w l suhteen e lasketa erotusosamäären E(w + he ) E(w ) h avulla? (Panot järjestetty jonoon, e on. kantavektor.) Vastavrta: Osttasdervaatat kerroksen l suhteen saadaan laskettua rekursvsest kerroksen l + 1 osttasdervaattojen avulla. Alota ulostulokerroksesta ja jatka kerros kerrokselta koht syötekerrosta.
Vastavrta-algortm - plokerrokset - osttasdervaatat panojen w l suhteen Musta: z l j = N l 1 =1 Ketjusääntö = wa l l 1 + bj l, aj l = ϕ(zj l ), δj l = E zj l. E w l = E z l j z l j w l = δ l j a l 1. Osttasdervaattojen ketjusääntö ja ketjusääntö = δ l j = E z l j = N l+1 k=1 = N l+1 k=1 E z l+1 k δ l+1 k w l+1 jk ϕ (z l j ) z l+1 k z l j = N l+1 k=1 δ l+1 z l+1 a k j l k aj l zk l
Vastavrta-algortm - plokerrokset - osttasdervaatat panojen w l suhteen E w l N l+1 = a l 1 ϕ (zj l ) k=1 δ l+1 k w l+1 jk.
Vastavrta-algortm - plokerrokset - osttasdervaatat vakotermen b l j suhteen Samanlasella laskulla saadaan osttasdervaatat vakotermen suhteen: E b l j = E z l j z l j b l j N l+1 = δj l 1 = ϕ (zj l ) δ l+1 k w l+1 jk. k=1 E w l N l+1 = a l 1 δj l = a l 1 ϕ (zj l ) k=1 δ l+1 k w l+1 jk Vrhefunkton gradentt Vrhefunkton gradentt koostuu termestä E E b l j = δ l j. w l = a l 1 δj l ja
Vastavrta-algortm - huomota Jos kerroksen l 1 syöte a l 1 on pen, nn kerroksen l osttasdervaatat E ovat penä. w l Jos osttasdervaatta panojen suhteen on pen, nn panot muuttuvat vastavrta-algortmssa vähän ja neuron opp htaast. Aktvontfunkton dervaatat vakuttavat vrheen osttasdervaattohn ja sten neuroneden parametren muutokseen. Jos aktvontfunkton dervaatta on pen, nn parametrt muuttuvat vähän ja neuront oppvat htaast.
Vastavrta-algortm - huomota Verkon käyttötarkotukseen sopvan vrhefunkton ja aktvontfunktoden valnta on tärkeää. Kertaa aktvontfunktoden ja nden dervaattojen käyttäytymnen! Verkon er kerroksssa vodaan käyttää er aktvontfunktota. (Käytä laskussa ja kaavossa verkon kerrosta vastaava alandeksejä ϕ l.)
Gradenttmenetelmä ja vastavrta-algortm - verkon opettamsen vaheet 1 Syötä opetusesmerkkoukon A kakk opetusesmerkt x verkolle. 2 Kaklle opetusesmerkelle x A: 1 Laske vastavrta-algortmssa tarvttavat neuronkohtaset summat z l j ja ulostulot a l j. 2 Laske vrhefunkton osttasdervaatat vastavrta-algortmn avullla (ensn ulostulokerroksen panojen ja vakotermen suhteen, stten kerros kerrallaan alaspän). 3 Korjaa neuronen parametrt gradenttmenetelmän avulla.
Gradenttmenetelmä ja vastavrta-algortm - korjatut parametrt Jos parametreja korjataan jokasen syötteen jälkeen (stokastnen gradenttmenetelmä), nn yksttästen neuronen uudet panot vastavrta-algortmn jälkeen ovat w l w l α E w l = w l αa l 1 δ l j ja b l j b l j α E b l j mssä α on verkon oppmsnopeus. = b l j αδ l j,
Gradenttmenetelmä ja vastavrta-algortm - korjatut parametrt Jos koko opetusesmerkkoukko (ta yhtä syötettä somp osa stä) syötetään verkolle ennen pävtystä, nn uudet parametrt matrsa vektormuodossa lmotettuna ovat w l w l α N x A δ l x(a l 1 x ) T ja b l b l α N δx, l x A mssä α on verkon oppmsnopeus ja N opetusesmerkkoukon A alkoden lukumäärä.
Gradenttmenetelmän er versot Stokastnen gradenttmenetelmä osttasdervaatat lasketaan ja parametrt korjataan jokasen syötteen jälkeen nopea teto verkon oppmsesta helppo ymmärtää ja toteuttaa häröherkkyys vo härtä lokaaln mnmn löytymstä theä pävttämnen hdasta
Gradenttmenetelmän er versot (Sats)gradenttmenetelmä - (batch) gradent descent, vrhe lasketaan jokasen opetusesmerkn jälkeen, parametrt pävtetään opetusesmerkkoukon jälkeen vähemmän pävtyksä - laskennallsest tehokkaamp kun stokastnen verso vähemmän pävtyksä - vrheen penenemsen suhteen vakaamp kun stokastnen verso (saattaa supeta lan akasn ja huonommlla parametrella kun stokastnen verso) koko opetusesmerkkoukon tedot kerralla mustssa, hdas oppmsnopeus solla opetusesmerkkoukolla välmuoto mnsatsgradenttmenetelmä!
Lneaaralgebraa Neuroverkon parametrehn lttyvät kaavat annetaan monest vektoren- ja matrsen avulla. Kerroksen l parametrt ovat vakotermt b l = (b l 1,..., bl N l ), panotetut summat z l = (z l 1,..., zl N l ) neuronen tulokset a l = (a l 1,..., al N l ) ja panot jollon W l = w11 l w12 l... w1n l l w21 l w22 l... w2n l l... wn l l 1 1 wn l l 1 2... wn l l 1 N l, z l = a l 1 W l + b l ja a l = ϕ(z l ) = (ϕ(z l 1),..., ϕ(z l N l )).
Lneaaralgebraa Vastavrta-algortmn, gradenttmenetelmän ja muden algortmen toteutus tehdään ohjelmstokrjastojen tehokkaden vektor- ja matrslaskentapaketten (esm. NumPy) avulla. Yksttäsä parametreja e kannata kästellä slmukolla. Lneaaralgebran opskelu alotetaan yleensä lneaarsen yhtälöryhmän ratkasemsta. Stä on kyse myös neuroverkon parametren etsnnässä.
Kahden lneaarsen yhtälön yhtälöryhmä Tarkastellaan yhtälöpara { a 11 x + a 12 y = b 1, a 21 x + a 22 y = b 2, mssä a, b R kaklla, j {1, 2}. Onko para (x, y), joka toteuttaa yhtälöparn molemmat yhtälöt? Tällasen parn, el yhtälöparn ratkasun olemassaolo ja ykskästtesyys rppuu kertomsta a.
Kahden lneaarsen yhtälön yhtälöryhmä Esmerkk Tutktaan yhtälöpareja { { x y = 7, x y = 7, (a) (b) x + y = 5, 2x 2y = 14 (c) { x y = 7, 2x 2y = 13. (a): Laske puolttan yhteen ja jaa kahdella = x = 6. Sota x = 6 toseen yhtälöön = y = 5 6 = 1. (6, 1) on yhtälöparn anoa ratkasu. (b): tonen yhtälö on ensmmänen yhtälö kerrottuna 2:lla. Tämän yhtälön toteuttavat kakk part (x, y), jolle y = x 7. Yhtälöparlla on äärettömän monta ratkasua. (c): Kerro ensmmänen yhtälö 2:lla. Uudessa yhtälöparssa molempen yhtälöden vasen puol on 2x 2y. Koska 14 13, nn yhtälöparlla e ole ratkasua.
Kahden lneaarsen yhtälön yhtälöryhmä - geometrnen tulknta Paren yhtälöt ovat suoren yhtälötä tasossa. Ne psteet, jotka ovat molemmlla suorlla ovat yhtälöparn ratkasuja. Kaks suoraa ovat joko ersuuntasa ta samansuuntasa (er ta sama kulmakerron). Ersuuntaset suorat lekkaavat tosensa täsmälleen yhdessä psteessä.
Yhtälöryhmä, m lneaarsta yhtälöä ja n tuntematonta Onko n luvun joukkoa x 1, x 2, x n, jotka toteuttavat kakk m yhtälöä a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2... a m1 x 1 + a m2 x 2 + + a mn x n = b m, mssä a, b R kaklla {1, 2,..., m}, j {1, 2,..., n}? Ratkasemsessa käytetään kerronmatrsa (Gauss-Jordan), a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2.... a m1 a m2 a mn b m jota muunnetaan rvoperaatolla muotoon, josta ratkasu (ta sen olemassaolemattomuus) saadaan peräkkäsllä sotukslla.
Vektort Vektort ja matrst koostuvat järjestetystä alkosta. Matrsen ja vektoreden välsä laskutomtuksa varten tarvtaan sekä pystyettä vaakavektort. Vektor Olkoot x 1, x 2,..., x n R. Järjestetty joukko x = (x 1, x 2,..., x n ) on n-ulottenen (rv)vektor. Järjestetty joukko x 1 x 2 x =. x n on n-ulottenen (sarake)vektor. Luvut x 1, x 2,..., x n ovat vektorn komponentteja.
Vektort Vektoreden samuus, kertomnen vakolla ja yhteenlasku Olkoot u = (u 1, u 2,..., u n ) ja v = (v 1, v 2,..., v n ) n-vektoreta. Olkoon c R. u = v jos ja van jos u = v kaklla {1, 2,..., n} cu = (cu 1, cu 2,..., cu n ) u + v = (u 1 + v 1, u 2 + v 2,..., u n + v n ). Reaallukujen laskusäännöt = u + v = v + u u + (v + w) = (u + v) + w c(u + v) = cu + cv kaklla n-vektorella u, v ja w ja kaklla c R.
Vektort Ssätulo Jos a = (a 1, a 2,..., a n ) R n ja b = (b 1, b 2,..., b n ) R n, nn vektoreden a ja b ssätulo/pstetulo on a b =< a, b >= n a b. =1 Esmerkk 3-vektorelle a = (1, 2, 3) ja b = (3, 2, 1) on a + b = (1 + 3, 2 + 2, 3 1) = (4, 0, 2) a b = 1 3 + ( 2) 2 + 3 ( 1) = 3 4 3 = 4.
Matrst Matrs Olkoot m, n N. Olkoot a R kaklla {1, 2,..., m} ja j {1, 2,..., n}. Järjestetty taulukko a 11 a 12 a 1n a 21 a 22 a 2n A = (a ) =... a m1 a m2 a mn on m n-matrs, jossa on m-rvä ja n-saraketta. a :t matrsn A alkota/komponetteja rvvektort (a 1, a 2,..., a n ), {1, 2,..., m},rvejä ja sarakevektort sarakketa