- Terminológia (A-tól D-ig)
- AI képességvezérlés
- AIOps
- albumációk
- Eszköz teljesítménye
- Autoencoder
- Visszaszaporítás
- Bayes-tétel
- Big adatok
- Chatbot: Útmutató kezdőknek
- Számítási gondolkodás
- Számítógépes látás
- Zavart mátrix
- Konvolúciós neurális hálózatok
- Kiberbiztonság
- Data Fabric
- Adattörténetmondás
- Data Science
- Adattárolás
- Döntési fa
- Deepfakes
- Deep Learning
- Mély megerősítésű tanulás
- DevOps
- DevSecOps
- Diffúziós modellek
- Digitális iker
- Dimenzionalitás csökkentés
- Terminológia (E-től K-ig)
- Edge AI
- Érzelem AI
- Együttes tanulás
- Etikai hackelés
- ETL
- Megmagyarázható AI
- Egyesített tanulás
- FinOps
- Generatív AI
- Generatív versenytársak hálózata
- Generatív vs. diszkriminatív
- Gradiens Boosting
- Gradiens Descent
- Few-Shot Learning
- Képosztályozás
- IT-műveletek (ITOps)
- Incidens automatizálás
- Befolyásolás Mérnökség
- K-Means klaszterezés
- K-Legközelebbi szomszédok
- Terminológia (L-től Q-ig)
- Terminológia (R-től Z-ig)
- Erősítő tanulás
- Felelős mesterséges intelligencia
- RLHF
- Robotikus folyamat automatizálás
- Strukturált vs strukturálatlan
- Érzelmi elemzés
- Felügyelt vs nem felügyelt
- Támogatja a vektoros gépeket
- Szintetikus adatok
- Szintetikus média
- Szöveg osztályozása
- TinyML
- Transzfer tanulás
- Transzformátor neurális hálózatok
- Turing teszt
- Vektoros hasonlóság keresése
AI 101
Mi az a Backpropagation?
Tartalomjegyzék
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.