This is an old revision of the document!
−Table of Contents
Neurális hálók
Neuron modellezése
Az alábbi képen a biológiai neuront és annak mesterséges intelligencia modellekben használt analógját látjuk. A biológiai neuron az emberi agy alapvető építőeleme, amely információkat dolgoz fel és továbbít más neuronok felé. A neuron dendritekkel rendelkezik, amelyek a környező neuronoktól érkező jeleket fogadják. Ezeket a jeleket a sejt (amelyben a mag található) dolgozza fel, majd továbbküldi az axonon keresztül. Az axon végén található axon-végződések szinapszisokon keresztül kapcsolódnak más neuronokhoz, így biztosítva az információáramlást.
A mesterséges neuron, a fenti biológiai modell alapján működik, leegyszerűsítve annak alapvető működését. A mesterséges neuron bemeneteket fogad, amelyeket (matematikailag) súlyoz (ezzel vezérli a bemenet fontosságát), majd összegez. Az így kapott értéken egy aktivációs függvényt futtat, amely meghatározza, hogy a neuron “tüzel-e”, azaz továbbküldi-e a jelet. Az aktivációs függvény eredménye képezi a neuron kimenetét, amelyet továbbít a hálózat következő rétegeinek.
Hálózati Modell
Az alábbi kép egy mesterséges neurális hálózat egyszerű modelljét ábrázolja.
A hálózat bemeneti réteggel indul, amely a zöld színű x₁ és x₂ elemeket tartalmazza. Ezek a bemeneti változók képviselik azokat az adatokat, amelyeket a modell feldolgoz. A bemeneteket súlyokkal szorozzák, majd átadják a rejtett rétegek neuronjaiba, amelyeket a kék színű z₁, z₂ és z₃ jelöl.
A rejtett réteg(ek)ben minden neuron kiszámítja a saját kimenetét egy aktivációs függvény segítségével, amely a bemeneti jelek összegét alakítja át (nemlineáris módon). Ezek a kimenetek aztán tovább haladnak a következő rétegekbe (a példában csak 1 rejtett réteget használunk, ezért itt nincs továbbadás), míg végül elérik a kimeneti réteget, amelyet itt az y_pred (y predikció) narancssárga elem jelöl.
Az y_pred a modell végső előrejelzése, egy számérték, amely például egy osztályozási vagy regressziós (közelítési) probléma megoldásaként jelenik meg.
Ez az ábra segít megérteni a neurális hálózatok alapvető működési elvét: a bemenetek fokozatos átalakulását a különböző rétegeken keresztül, amelyek végül egy konkrét kimeneti értékhez vezetnek. Ezt a folyamatot a gépi tanulás során finoman hangolják (optimalizálják), például visszaterjesztés (backpropagation) és gradienscsökkentés (gradient descent) segítségével, hogy a modell pontos előrejelzéseket tudjon adni.
Ha egy kép a bement, akkor a pixeleit sorban is be lehet adni a hálónak (nem vesszük figyelembe, hogy a kép téglalap). A finomhangolás során - a bemutatott minták alapján - a háló megtanulja a pixelek közötti összefüggéseket, és választ tud majd adni, hogy mosolyog-e a képen látható személy, egy olyan képen is, amit korábban nem mutattak meg a hálónak (a modellnek). Megjegyzés: olyan modellek természetesen jobban működnek, amik figyelembe veszik a szomszédos pixeleket is (pl. konvolúciós hálok).
Az ábrán, a fully-connected layer azt jelenti, hogy a minden bementi neuron minden a következő réteg minden neuronjával össze van kapcsolva.
Modell paramétereinek kiszámítása
A neurális hálót, az összeköttetéseihez rendelt súlyok segítségével tudjuk használni. A bementből és a rejtett réteg két neuronjának z1 és z2 értékét az alábbi képlettel számolhatjuk:
z1=x1⋅w11+x2⋅w21 z2=x1⋅w12+x2⋅w22
A rejtett réteg teljesen összekötött (fully connected), ezért minden bemenet kapcsolódik minden rejtett neuronhoz.
A következő kimeneti réteg z3=ypred értékét, ami egyetlen neuronból áll így számíthatjuk:
z3=z1⋅w31+z2⋅w32
Egyben ez lesz a háló előrejelzése ypred.
Mátrixok alkalmazása háló modellekben
A fenti képleteket mátrixos és vektoros formában is felírhatjuk:
Rejtett réteg súlymátrixa: W1=[w11w12w21w22]
A kimeneti réteg vektor: W2=[w31w32]
Bemeneti és rejtett réteg vektorok: x=[x1x2],z=[z1z2]
Ezek alapján a rejtett réteget a bement és a súlymátrix alapján így számolhatjuk:
z=W1⋅x behelyettesítve: [z1z2]=[w11w12w21w22]⋅[x1x2]
A kimenet eredménye egy számérték (skalár) lesz:
ypred=[w31w32]⋅[z1z2]
Teljes mátrixos formában:
ypred=W2⋅W1⋅x
Példa konkrét számértékekkel
Tegyük fel hogy:
W1=[0.50.30.20.7],W2=[0.60.4],x=[0.80.6]
Rejtett réteg számítása:
z=[0.50.30.20.7]⋅[0.80.6]=[(0.5⋅0.8+0.3⋅0.6)(0.2⋅0.8+0.7⋅0.6)]=[0.580.58]
Kimeneti réteg számítása:
ypred=[0.580.58]⋅[0.60.4]=(0.52⋅0.6+0.66⋅0.4)=0.58
A súlyok módosítása a hiba függvényében
“Loss” a neurális háló teljesítményének mérésére szolgáló függvény, amely azt jelzi, hogy a háló által számolt kimenetek mennyire térnek el a várt kimenetektől.
Loss=12(y−ypred)2
Loss Deriváltja a Kimeneti Réteg Súlyaira
A back-propagation során a Loss függvény deriváltját (gradiensét) használjuk a súlyok frissítéséhez.
∂Loss∂w31=∂Loss∂ypred⋅∂ypred∂w31
1.) Első tényező: ∂Loss∂ypred a Loss függvény deriváltja a ypred-re:
∂Loss∂ypred=−(ytrue−ypred)=−e
ahol e=y−ypred a hiba.
2.) Második tényező: ∂ypred∂w31
Az ypred függ a rejtett kimenettől z1:
ypred=z1⋅w31+z2⋅w32
Ezért:
∂ypred∂w31=z1
Teljes derivált:
Összekapcsolva a két tényezőt:
∂Loss∂w31=−e⋅z1
hasonlóan:
∂Loss∂w32