- 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 Gradiens Descent?
Tartalomjegyzék
Mi az a gradiens süllyedés?
Ha olvasott a neurális hálózatok képzéséről, szinte biztosan találkozott már a „gradiens süllyedés” kifejezéssel. Színátmenet az elsődleges módszer a neurális hálózat teljesítményének optimalizálására, csökkentve a hálózat veszteség/hibaarányát. A gradiens süllyedés azonban kissé nehezen érthető lehet azok számára, akik még nem ismerik a gépi tanulást, és ez a cikk arra törekszik, hogy megfelelő megérzéseket adjon a gradiens süllyedés működéséhez.
A gradiens süllyedés egy optimalizálási algoritmus. Egy neurális hálózat teljesítményének javítására szolgál a hálózat paramétereinek módosításával oly módon, hogy a hálózat előrejelzései és a hálózat tényleges/várt értékei (amelyeket veszteségnek nevezünk) közötti különbség a lehető legkisebb legyen. A gradiens süllyedés felveszi a paraméterek kezdeti értékeit, és számításon alapuló műveleteket használ, hogy az értékeket azokhoz az értékekhez igazítsa, amelyek a lehető legpontosabbá teszik a hálózatot. Nem kell sok számítást ismernie ahhoz, hogy megértse a gradiens süllyedés működését, de értenie kell a színátmeneteket.
Mik azok a színátmenetek?
Tételezzük fel, hogy van egy grafikon, amely leírja a neurális hálózat által elkövetett hibák mennyiségét. A grafikon alja a legalacsonyabb hibapontokat jelöli, míg a grafikon teteje az, ahol a legnagyobb a hiba. Szeretnénk a grafikon tetejétől lefelé haladni az aljára. A gradiens csak egy módja annak, hogy számszerűsítsük a hiba és a neurális hálózat súlya közötti kapcsolatot. E két dolog kapcsolata lejtőként ábrázolható, helytelen súlyokkal, amelyek több hibát okoznak. A lejtő/lejtő meredeksége azt jelzi, hogy a modell milyen gyorsan tanul.
A meredekebb lejtő azt jelenti, hogy a hiba nagymértékben csökken, és a modell gyorsan tanul, míg ha a lejtő nulla, a modell egy fennsíkon van, és nem tanul. A lejtőn lefelé haladhatunk a kisebb hiba felé, ha modellünkhöz gradienst, mozgásirányt (a hálózat paramétereinek változását) számítunk.
Csak kissé toljuk el a metaforát, és képzeljük el a dombok és völgyek sorozatát. Le akarunk jutni a domb aljára, és megtalálni a völgynek azt a részét, amelyik a legkisebb veszteséget jelenti. Amikor elindulunk a domb tetején, nagy léptekkel lefelé haladva biztosak lehetünk benne, hogy a völgy legalsó pontja felé tartunk.
Azonban ahogy közeledünk a völgy legalacsonyabb pontjához, a lépéseinknek kisebbnek kell lenniük, különben túlléphetjük a valódi legalacsonyabb pontot. Hasonlóképpen előfordulhat, hogy a hálózat súlyainak módosításakor a korrekciók valóban távolabbra vihetik a legkisebb veszteség pontjától, és ezért a korrekcióknak idővel kisebbnek kell lenniük. Egy dombról a legalacsonyabb veszteségű pont felé történő leereszkedéssel összefüggésben a gradiens egy vektor/utasítás, amely részletezi az utat, amelyen meg kell haladnunk, és hogy mekkora legyen a lépéseink.
Most már tudjuk, hogy a gradiensek olyan utasítások, amelyek megmondják, hogy melyik irányba haladjunk (mely együtthatókat érdemes frissíteni), és milyen nagy lépéseket kell megtennünk (mennyit kell frissíteni az együtthatókat), megvizsgálhatjuk a gradiens kiszámításának módját.
Gradiens és Gradient Descent számítása
A gradiens süllyedés végrehajtásához először a gradienseket kell kiszámítani. sorrendben a gradiens kiszámításához, ismernünk kell a veszteség/költség függvényt. A derivált meghatározásához a költségfüggvényt fogjuk használni. A számításban a derivált csak egy függvény lejtésére vonatkozik egy adott pontban, tehát alapvetően csak a domb lejtését számítjuk ki a veszteségfüggvény. A veszteséget úgy határozzuk meg, hogy az együtthatókat a veszteségfüggvényen keresztül futtatjuk. Ha a veszteségfüggvényt „f”-ként ábrázoljuk, akkor kijelenthetjük, hogy a veszteség kiszámításának egyenlete a következő (csak az együtthatókat futtatjuk a választott költségfüggvényünkön):
Veszteség = f (együttható)
Ezután kiszámítjuk a deriváltot, vagy meghatározzuk a meredekséget. A veszteség deriváltjának lekérése megmondja, hogy melyik irány felfelé vagy lefelé halad a lejtőn, azáltal, hogy megadja a megfelelő előjelet, amellyel együtthatóinkat korrigálhatjuk. A megfelelő irányt „delta”-ként fogjuk képviselni.
delta = derivált_függvény(veszteség)
Meghatároztuk, hogy melyik irány lefelé a legalacsonyabb veszteség pontja felé. Ez azt jelenti, hogy frissíthetjük az együtthatókat a neurális hálózat paramétereiben, és remélhetőleg csökkenthetjük a veszteséget. Frissítjük az együtthatókat az előző együtthatók alapján, mínusz az irány (delta) és a változás nagyságát szabályozó argumentum (a lépésünk nagysága) által meghatározott megfelelő értékváltozásból. A frissítés méretét szabályozó argumentumot a „tanulási arány” és „alfa”-ként fogjuk ábrázolni.
együttható = együttható – (alfa * delta)
Ezután csak ismételjük ezt a folyamatot, amíg a hálózat a legalacsonyabb veszteség pontja körül konvergál, aminek közel nullának kell lennie.
Nagyon fontos a tanulási sebesség (alfa) megfelelő értéke kiválasztása. A választott tanulási sebesség nem lehet sem túl kicsi, sem túl nagy. Ne feledje, hogy ahogy közeledünk a legkisebb veszteség pontjához, lépéseinknek kisebbnek kell lenniük, különben túllépjük a legkisebb veszteség valódi pontját, és a másik oldalon kötünk ki. A legkisebb veszteség pontja kicsi, és ha a változás mértéke túl nagy, a hiba ismét növekedhet. Ha a lépésméretek túl nagyok, a hálózat teljesítménye továbbra is a legalacsonyabb veszteség pontja körül ugrál, túllépve az egyik, majd a másik oldalon. Ha ez megtörténik, a hálózat soha nem fog konvergálni a valódi optimális súlykonfigurációhoz.
Ezzel szemben, ha a tanulási ráta túl kicsi, a hálózatnak rendkívül sok időbe telhet, amíg konvergál az optimális súlyokhoz.
A gradiens süllyedés típusai
Most, hogy megértettük, hogyan működik általában a gradiens süllyedés, vessünk egy pillantást a különbözőre a gradiens süllyedés típusai.
Kötegelt gradiens süllyedés: A gradiens süllyedés ezen formája végigfut az összes betanítási mintán az együtthatók frissítése előtt. Ez a fajta gradiens süllyedés valószínűleg a gradiens süllyedés számítási szempontból leghatékonyabb formája, mivel a súlyok csak akkor frissülnek, ha a teljes köteg feldolgozása megtörtént, ami azt jelenti, hogy összesen kevesebb frissítés történik. Ha azonban az adatkészlet nagyszámú betanítási példát tartalmaz, akkor a kötegelt gradiens leereszkedés meghosszabbíthatja a betanítást.
Sztochasztikus gradiens süllyedés: A sztochasztikus gradiens süllyedésben csak egyetlen betanítási példa kerül feldolgozásra a gradiens süllyedés és a paraméterfrissítés minden iterációjához. Ez minden képzési példánál előfordul. Mivel csak egy betanítási példa kerül feldolgozásra a paraméterek frissítése előtt, ez általában gyorsabban konvergál, mint a Batch Gradient Descent, mivel a frissítések hamarabb történnek. Mivel azonban a folyamatot a betanítási halmaz minden elemén el kell végezni, meglehetősen hosszú ideig tarthat a befejezés, ha az adatkészlet nagy, ezért szükség esetén más gradiens süllyedéstípusok valamelyikét kell használni.
Mini-Batch Gradient Descent: A Mini-Batch Gradient Descent úgy működik, hogy a teljes képzési adatkészletet felosztja alszakaszokra. Kisebb mini kötegeket hoz létre, amelyek a hálózaton keresztül futnak, és amikor a mini-kötegelt felhasználták a hiba kiszámításához, az együtthatók frissítésre kerülnek. A Mini-batch Gradient Descent középutat talál a sztochasztikus gradiens süllyedés és a kötegelt gradiens süllyedés között. A modellt gyakrabban frissítik, mint a Batch Gradient Descent esetében, ami valamivel gyorsabb és robusztusabb konvergenciát jelent a modell optimális paraméterei között. Számítási szempontból is hatékonyabb, mint a sztochasztikus gradiens süllyedés
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.
Talán tetszene
Mély tanulás kontra neurális hálózatok
Az új neurokomputációs agymodell előmozdíthatja az AI-kutatást
A csapat megközelítést fejleszt a neurális hálózatok összehasonlítására
A mesterséges intelligencia hardvertechnológiája utánozza a neurális hálózat topológiájának változásait
Biometrikus hitelesítés fogcsikorgatással
A számítógép-alkatrész az emberi agy szinapszisait utánozza