csonk Mi az a Backpropagation? - Egyesüljetek.AI
Kapcsolatba velünk
AI mesterkurzus:

AI 101

Mi az a Backpropagation?

mm
korszerűsített on

Mi az a Backpropagation?

A mély tanulási rendszerek rendkívül összetett mintákat képesek megtanulni, és ezt a súlyok beállításával érik el. Hogyan kell pontosan beállítani egy mély neurális hálózat súlyát? Át vannak igazítva egy folyamat hívott visszaszaporítás. Visszaterjesztés nélkül a mély neurális hálózatok nem lennének képesek olyan feladatokat ellátni, mint a képek felismerése és a természetes nyelv értelmezése. A visszaterjesztés működésének megértése kritikus fontosságú a mély neurális hálózatok általános megértéséhez, ezért beszéljük meg a visszaterjesztést, és nézzük meg, hogyan használják a folyamatot a hálózat súlyainak beállítására.

A visszaszaporítást nehéz lehet megérteni, és a visszaszaporításhoz használt számítások meglehetősen összetettek lehetnek. Ez a cikk arra törekszik, hogy intuitív módon megértse a visszaszaporítást, kevés bonyolult matematikai felhasználással. Mindazonáltal némi vitára van szükség a visszaterjesztés mögötti matematikáról.

A visszaterjesztés célja

Kezdjük a visszaterjesztés céljának meghatározásával. A mély neurális hálózat súlya a neurális hálózat egységei közötti kapcsolatok erőssége. Amikor a neurális hálózat létrejön, feltételezéseket teszünk arról, hogy az egy rétegben lévő egységek hogyan kapcsolódnak a hozzá csatlakozó rétegekhez. Ahogy az adatok áthaladnak a neurális hálózaton, a súlyokat kiszámítják és feltételezéseket tesznek. Amikor az adatok elérik a hálózat végső rétegét, előrejelzés készül arról, hogy a szolgáltatások hogyan kapcsolódnak az adatkészletben lévő osztályokhoz. Az előrejelzett és a tényleges értékek közötti különbség a veszteség/hiba, és a visszaterjesztés célja a veszteség csökkentése. Ez a hálózat súlyainak beállításával érhető el, így a feltételezések jobban hasonlítanak a bemeneti jellemzők közötti valódi kapcsolatokhoz.

Mély neurális hálózat képzése

A visszaszaporítás előtt a neurális hálózat, akkor egy neurális hálózat szabályos/előremutató betanítását kell végrehajtani. Amikor egy neurális hálózatot létrehozunk, a rendszer inicializál egy súlykészletet. A súlyok értéke a hálózat betanításával módosul. A neurális hálózat előrehaladó képzési lépése három különálló lépésként fogható fel: neuronaktiválás, neuronátvitel és előrehaladás.

Amikor egy mély neurális hálózatot tanítunk, több matematikai függvényt kell használnunk. A mély neurális hálózat neuronjai a bejövő adatokból és egy aktiválási függvényből állnak, amely meghatározza a csomópont aktiválásához szükséges értéket. Egy neuron aktiválási értékét több komponensből számítjuk ki, ami a bemenetek súlyozott összege. A súlyok és a bemeneti értékek az aktiválás kiszámításához használt csomópontok indexétől függenek. Az aktiválási érték kiszámításakor egy másik számot is figyelembe kell venni, egy torzítási értéket. A torzítási értékek nem ingadoznak, így nem szorozódnak a súllyal és a bemenetekkel együtt, csak összeadódnak. Mindez azt jelenti, hogy a következő egyenlet használható az aktiválási érték kiszámításához:

Aktiválás = összeg(súly * bemenet) + torzítás

A neuron aktiválása után egy aktiválási funkciót használnak annak meghatározására, hogy mi lesz a neuron tényleges kimenetének kimenete. A különböző aktiválási funkciók optimálisak a különböző tanulási feladatokhoz, de az általánosan használt aktiválási funkciók közé tartozik a szigmoid funkció, a Tanh függvény és a ReLU függvény.

Miután a neuron kimeneteit kiszámítottuk az aktiválási értéknek a kívánt aktiválási függvényen keresztül történő futtatásával, az előre terjedés megtörténik. Az előre terjesztés csak az egyik réteg kimeneteit veszi, és a következő réteg bemeneteivé teszi. Az új bemenetek az új aktiválási függvények kiszámítására szolgálnak, és ennek a műveletnek a kimenete átkerül a következő rétegbe. Ez a folyamat egészen a neurális hálózat végéig tart.

Visszaterjesztés a hálózatban

A visszaterjesztés folyamata beveszi egy modell képzési igazolványának végső döntéseit, majd meghatározza ezekben a döntésekben a hibákat. A hibák kiszámítása a hálózat kimeneteinek/döntéseinek és a hálózat várt/kívánt kimeneteinek szembeállításával történik.

Miután a hálózat döntéseiben előforduló hibákat kiszámoltuk, ez az információ visszaterjesztésre kerül a hálózaton keresztül, és a hálózat paraméterei módosulnak. A hálózat súlyainak frissítésére használt módszer a számításon, pontosabban a láncszabályon alapul. A kalkulus megértése azonban nem szükséges ahhoz, hogy megértsük a háttérszaporítás gondolatát. Csak tudd, hogy amikor egy neuron kimeneti értéket adunk meg, a kimeneti érték meredekségét egy átviteli függvénnyel számítjuk ki, így származtatott kimenetet állítunk elő. A visszaszaporítás során egy adott neuron hibáját az alábbiak szerint számítjuk ki képlet:

error = (expected_output – tényleges_kimenet) * a neuron kimeneti értékének meredeksége

Amikor a kimeneti réteg neuronjain dolgozunk, az osztályértéket használják várt értékként. A hiba kiszámítása után a hiba a rejtett réteg neuronjainak bemeneteként kerül felhasználásra, ami azt jelenti, hogy ennek a rejtett rétegnek a hibája a kimeneti rétegben található neuronok súlyozott hibája. A hibaszámítások visszafelé haladnak a hálózaton a súlyozási hálózat mentén.

A hálózat hibáinak kiszámítása után frissíteni kell a súlyokat a hálózatban. Mint említettük, a hiba kiszámítása magában foglalja a kimeneti érték meredekségének meghatározását. A meredekség kiszámítása után a gradiens süllyedés néven ismert eljárás használható a súlyok beállítására a hálózatban. A gradiens egy lejtő, amelynek szöge/meredeksége mérhető. A meredekség kiszámítása úgy történik, hogy az „y over” vagy az „emelkedés” a „futás” fölé kerül. A neurális hálózat és a hibaarány esetében az „y” a számított hiba, az „x” pedig a hálózat paraméterei. A hálózat paraméterei kapcsolatban állnak a számított hibaértékekkel, és ahogy a hálózat súlyozása módosul, a hiba növekszik vagy csökken.

A „gradiens süllyedés” a súlyok frissítésének folyamata, hogy a hibaarány csökkenjen. A visszaterjesztés a neurális hálózat paraméterei és a hibaarány közötti kapcsolat előrejelzésére szolgál, amely beállítja a hálózatot a gradiens süllyedéshez. A gradiens süllyedésű hálózat betanítása magában foglalta a súlyok kiszámítását előre terjedéssel, a hiba visszaterjesztését, majd a hálózat súlyainak frissítését.

Blogger és programozó szakterületekkel Gépi tanulás és a Deep Learning témákat. Daniel abban reménykedik, hogy segíthet másoknak az AI erejét társadalmi javára használni.