Tanítóval történ ellen rzött tanulás (Supervised Learning)
1. Bevezetés Az ellen rzött tanulás esetén mindig van információnk a rendszer kívánt válaszáról. A tanítóval történ tanításnál összetartozó be- és kimeneti mintapárok állnak rendelkezésre. A modellünket megpróbáljuk úgy kialakítani, hogy minél jobban közelítse a rendszer m ködését. A tanítás célja tehát a modell struktúrájának és/vagy paramétereinek olyan módon való változtatása, hogy m ködése a lehet legkisebb mértékben térjen el a modellezend rendszert l. A feladat tehát egy modell-illesztési feladat (1. ábra). n
u
Ismeretlen rendszer g(u,n)
d Kritérium függvény C(d,y)
Modell (w,u)
C
y
Paraméter módosító algoritmus
Neurális hálózatok esetében a modell változtatását, a modell-illesztés folyamatát paramétereken keresztül valósítjuk meg. A modell-illesztési feladat általánosan a következ formában adható meg: a d = g (u, n ) függvénykapcsolathoz keressük az y = gˆ (w, u ) modellt, ahol w a változtathatóságot biztosító paramétervektor, n a zajhatások vektora, u a bemeneti vektor. A feladat tehát az y és a d közötti eltérés minimalizálása a w függvényében. A minimalizálási feladatot egy célszer en választott C (d , y ) kritériumfüggvény segítségével végezzük. A modell-illesztés alapvet en kétféleképpen képzelhet el. Az explicit eljárásoknál külön történik az információszerzés folyamata a kiértékelés fázisától, míg az implicit eljárásoknál iteratív, önjavító eljárással kapjuk meg az eredményt. A mi esetünkben az utóbbi felfogás érdekes, a továbbiakban tehát ilyen eljárásokkal foglalkozunk. Az implicit eljárások abban különböznek egymástól, hogy a paraméterek változtatása milyen módszerrel történik.
2. Kritériumfüggvények A neurális hálózatoknál alkalmazott tanító eljárások az esetek nagy részében a hálózat struktúráját nem, csak a paramétereit változtatják. Ez azt jelenti, hogy egy adott hálózat esetén a megfelel súlytényez k kialakítása a cél. A kritériumfüggvény ennek megfelel en a hálózat várt és tényleges kimeneti értékeinek összhasonlítását végzi, és ennek alapján történik a súlymódosítás. A leggyakoribb hibakritérium a négyzetes hibakritérium, amelyet a zaj várható jelenléte miatt várható értékként értelmezünk:
{
}
C (d, y ) = E (d − y ) (d − y ) = E T
j
(d
− yj )
2
j
A négyzetes hibafüggvény könny kezelhet sége mellett egyéb el nyökkel is rendelkezik: alkalmazásával az optimumfeladat megoldása általában matematikailag kedvez , illetve a négyzetes hibának a hibateljesítmény révén fizikai értelmezés is adható. Használatosak egyéb hibafüggvények is, mint például az abszolútérték függvény, különböz abszolútérték-hatvány függvények. Speciális esetekben alkalmaznak logaritmikus, hiperbolikus, trigonometrikus függvényekb l el állított hibafüggvényeket is. 3. Gradiens alapú széls érték-keres eljárások A széls érték-keres eljárásokkal azt a w értéket keressük, ahol a kritériumfüggvény w szerinti gradiense zérus: ∂C ∇[C (w )] = = 0. ∂w
Az iteratív eljárások úgy változtatják a súlyvektor értékét valamilyen algoritmus szerint, hogy a fenti gradiens elérje, vagy általunk meghatározott mértékben megközelítse a 0 értéket. A gradiens alapú eljárások konvergenciája csak kvadratikus hibafelület esetén bizonyítható, ami neurális hálózatok esetén csak ritkán teljesül, ezért az eljárások többsége közelít jelleg , és nem feltétlenül ad jó megoldást. Széls érték-keresés paramétereiben linearizálható modellek esetén A továbbiakban a diszkrét esetre korlátozzuk a tárgyalást. A kimenet a k-adik id pillanatban: y (k ) = w T (k )x(k ) , így a kritériumfüggvény értéke ugyanakkor:
{(
) }= E{d (k )}− 2p w(k ) + w (k )Rw(k ) ,
C (k ) = E d (k ) − w T (k )x(k )
2
2
T
T
ahol R a bemeneti korrelációs mátrix, p pedig az optimális kimenet és a bemeneti komponensek közötti keresztkorreláció vektora (általános esetben mátrixa). A gradienst felírva a következ t kapjuk: ∂C ∇(k ) = = 2R w (k ) − w * = 2(Rw (k ) − p ) . ∂w
(
)
Az optimális megoldás a 0 gradienshez tartozik, amelyet a Wiener-Hopf egyenlet szerint kaphatunk meg: w * = R −1p . A legtöbb esetben a bemenet és az optimális kimenet statisztikai jellemz i nem ismertek olyan mértékben, hogy a korrelációs mátrixok meghatározhatók legyenek, ezért a legtöbb eljárás kevesebb ismeretet igényel, vagy valamilyen iteratív úton próbál eljutni a megoldáshoz. Newton módszer A gradiens el z felírását: balról megszorozva
(
∇(k ) = 2R w (k ) − w *
)
1 −1 R -gyel, átrendezés után a 2 1 w * = w (k ) − R −1∇(k ) 2
alakot kapjuk, amely négyezetes hibafelület esetén egy lépésben szolgáltatja a megoldást. Ha a hibafelület nem négyzetes, akkor iteratív megoldást alkalmazhatunk: w (k + 1) = w (k ) − µR −1∇(k ) , ahol 0 < µ < 1 a tanulási aránytényez . A Newton módszer hátránya, hogy igényli R ismeretét, azonban sok közelít módszer létezik. A „legmeredekebb lejt ” módszer
A módszer a negatív gradiens irányában „ereszkedik” a hibafelületen. Az iteratív formula:
w (k + 1) = w (k ) + µ (− ∇(k )) A µ lépésköz megválasztása függ az R autokorrelációs mátrixtól. A konvergencia feltétele:
0<µ <
1
λmax
A lépésköz megválasztásához az R mátrix valamilyen ismerete szükséges. Sokszor elegend az autokorrelációs mátrix nyomának ismerete, minthogy az legnagyobb sajátérték ennél kisebb. A fenti összefüggés ekkor így módosul:
0<µ <
1 . tr(R )
A mátrix nyoma a bemeneti értékek átlagos négyzetes értékeib l becsülhet .
Konjugált gradiensek módszere
Az Rw * = p
egyenlet megoldása egyszer síthet a konjugált irányok ismeretében. A konjugált irányokat azok a q 0 , q1 ,...., q N −1 vektorok jelölik ki, amelyekre fennáll, hogy:
q Ti Rq j = 0, i ≠ j A {q i } vektorok lineárisan függetlenek és egy a paraméterek terét kifeszít bázist alkotnak. A segítségükkel a következ írható fel az optimális megoldásra: w* − w 0 =
N −1 i =1
α iqi
Ezután definiálhatjuk a súlymódosító eljárást: w (k +1) = w (k ) + α k q(k ) , ahol
w (k ) = w (0 ) +
k −1 j =0
α j q j , és w ( N ) = w * ,
azaz N lépésben elérjük az optimumot. α k meghatározása vagy az R mátrixból történik, vagy ha az nem áll rendelkezésre (ez az általános eset), akkor olyan értéket veszünk, amelyre a hibakritérium értéke minimális, α k = arg min α {C (w (k ) + αq(k ))}. A {q i } konjugált irányok meghatározása iteratívan történik. A kezd irányt a
kezd pontbeli negatív gradiens iránya adja meg, q 0 = −∇(0 ) , a következ irányok pedig az aktuális gradiens és a megel z irány lineáris kombinációjaként alakulnak ki: q k +1 = −∇(k + 1) + β k q k ,
ahol
βk =
∇ T (k + 1)(∇(k + 1) − ∇(k )) . q Tk (∇(k + 1) − ∇(k ))
Nem kvadratikus hibafelület esetén az algoritmus nem éri el az optimumot N lépésben, ilyenkor célszer az algoritmus újraindítása úgy, hogy ismét meghatározunk egy kezdeti negatív gradienst. A fenti eljárások közös jellemz je, hogy valamilyen információt igényelnek az R autokorrelációs mátrixról (kivéve egyes esetekben a konjugált gradiensek módszerét). Mivel neurális hálózatoknál az esetek nagyobb részében nem áll rendelkezésre a kívánt információ az R mátrixról, ezért több közelít eljárás is elterjedt, amelyek a kritériumfüggvény Taylor-soros közelítésén alapulnak.
Felírva a kritériumfüggvény Taylor-soros közelítését az els három tagra: C (w ) ≅ C (w (k )) + ∇C (w (k )) (w − w (k )) + T
ahol H=
1 (w − w(k ))T H(w − w (k )) , 2
∂∇C (w (k )) ∂w
az ún. Hesse-féle mátrix. A Hesse-féle mátrix közelítésén alapuló technikák (quasi-Newton methods) elterjedten alkalmazottak. LMS algoritmus
Az LMS algoritmus a fentiekt l eltér en hibakritériumként a pillanatnyi hiba négyzetét veszi, amivel egy pillanatnyi derivált képezhet :
ˆ (k ) = ∂ε (k ) = −2ε (k )x(k ) . ∇ ∂w (k ) Ezzel a gradiens vektorral a legmeredekebb lejt módszert alkalmazva a következ paramétermódosító összefüggésre jutunk: 2
w (k + 1) = w (k ) + 2 µε (k )x(k ) . 4. Neurális hálózatok tanítási algoritmusai (tanítóval ellen rzött tanítás) Neurális hálózatok tanításánál hibakritériumként az LMS algoritmusnál bevezetett hibakritériumot használjuk, mivel a bemeneti jel statisztikai jellemz i ismeretlenek, így az autokorrelációs mátrix sem ismert. A továbbiakban tehát a következ hibakritériummal dolgozunk:
C (w ) = ε (k ) = (d (k ) − y (k )) , 2
2
amellyel neurális hálózatok esetén a következ gradienst képezhetjük:
∇(k ) = −2ε (k ) f ′(s(k ))x(k ) . Hibavisszaterjesztéses algoritmus (Error backpropagation)
A fenti eljárások neurális hálózatokon való alkalmazásának bemutatását a többréteg hálózatok tanításánál alkalmazott hibavisszaterjesztéses algoritmus bemutatásával kezdjük. A tanítási összefüggések L rétegre. A kimeneti réteg esetén:
[
]
T
[
W ( L ) (k + 1) = W ( L ) (k ) + 2 µx ( L ) (k ) ε (k ) f ′(s ( L ) ) = W ( L ) (k ) + 2 µx ( L ) (k ) δ
( L)
(k )
]
T
A rejtett rétegek esetén:
[ ]
W (l ) (k + 1) = W (l ) (k ) + 2 µx (l ) (k ) δ
δ i(l ) (k ) =
N l +1 r =1
(l ) T
δ r(l +1) (k ) wri(l +1) (k ) f ′(si(l ) (k ) )
A δ értékek az L. rétegt l kezdve visszafelé számítandók. Az algoritmus az LMS algoritmuson alapul, amelyben a legmeredekebb lejt módszert használtuk a paramétermódosító összefüggés felírására. (l ) i
kvázi- Newton módszerek
A módszerek a kritériumfüggvény Taylor-sorával való közelítésén alapulnak: C (w ) ≅ C (w (k )) + ∇C (w (k )) (w − w (k )) + T
1 (w − w (k ))T H(w − w (k )) 2
A paramétermódosítás összefüggésére adódó formulát a fenti összefüggés deriválásával kaphatjuk meg: w (k + 1) = w (k ) − H (w (k )) ∇C (w (k )) , −1
A Hesse-féle mátrix kiszámítása azonban vagy nagyon id igényes, vagy az esetek nagyobb részében az adatok elégtelensége miatt lehetetlen, ezért az eljárások közelít módszereket alkalmaznak. Newton-Rapshon módszer A módszer a kritériumfüggvény Taylor-soros közelítésének els két tagját használja fel, amelyb l a következ paramétermódosító összefüggést kapjuk: w (k +1) = w (k ) −
C (w (k )) ∇C (w (k )) , T ∇C (w (k )) ∇C (w (k ))
Konjugált gradiensek módszere Az el z ekben már láthattuk ezt a módszert, így a következ kben az algoritmus adjuk meg. a. Válasszuk meg a kezdeti értékeket w (0 ) , k = 0 , q 0 = −∇(0 ) .
b. Ha ∇(0 ) = 0 , akkor állítsuk le az eljárást. c. Határozzuk meg α k értékét: α k = arg min α {C (w (k ) + αq(k ))} d. Végezzük el a súlymódosítást és az új pontban határozzuk meg a gradiens értékét. Ha az 0, akkor állítsuk le az eljárást. e. Határozzuk meg az új konjugált irányt:
q k +1 = −∇(k + 1) + β k q k ,
és
βk =
∇ T (k + 1)(∇(k + 1) − ∇(k )) . q Tk (∇(k + 1) − ∇(k ))
f. Ha k = N , akkor kezdjük az a. lépést l újra ez eljárást, amennyiben nem kielégít a hiba mértéke, különben k = k + 1 , és folytassuk a c. lépést l. Levenberg-Marquardt algoritmus Az algoritmus a Hesse-féle mátrix közelítésén alapul, súlymódosító összefüggése
(
w (k + 1) = w (k ) − ∇ T (k )∇(k ) + µI
) ∇(k )C (w(k )) . −1