paint-brush
A sztochasztikus átlagos gradiens megértése által@kustarev
31,969 olvasmányok
31,969 olvasmányok

A sztochasztikus átlagos gradiens megértése

által Andrey Kustarev
Andrey Kustarev HackerNoon profile picture

Andrey Kustarev

@kustarev

Director of Portfolio Management at WorldQuant. Expert in quantitative finance....

4 min read2024/06/06
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript
tldt arrow
hu-flagHU
Olvasd el ezt a történetet magyarul!
en-flagEN
Read this story in the original language, English!
ln-flagLN
Tanga lisolo oyo na lingala!
lo-flagLO
ອ່ານເລື່ອງນີ້ເປັນພາສາລາວ!
ps-flagPS
دا کیسه په پښتو ژبه ولولئ!
lt-flagLT
Skaitykite šią istoriją lietuvių kalba!
hr-flagHR
Pročitajte ovu priču na hrvatskom!
lv-flagLV
Izlasi šo stāstu latviešu valodā!
ht-flagHT
Li istwa sa a an kreyòl ayisyen!
hy-flagHY
Կարդացեք այս պատմությունը հայերեն։
uk-flagUK
Читайте цю історію українською!
mg-flagMG
Vakio amin'ny teny malagasy ity tantara ity!
id-flagID
Baca cerita ini dalam bahasa Indonesia!
More
HU

Túl hosszú; Olvasni

A gradiens süllyedés egy népszerű optimalizálás, amelyet a megadott célfüggvények globális minimumainak meghatározására használnak. Az algoritmus a célfüggvény gradiensét használja a függvény meredekségének bejárására, amíg az el nem éri a legalacsonyabb pontot. A Full Gradient Descent (FG) és a Stochastic Gradient Descent (SGD) az algoritmus két népszerű változata. Az FG minden iteráció során a teljes adatkészletet használja, és magas számítási költség mellett magas konvergencia sebességet biztosít. Az SGD minden iterációnál az adatok egy részhalmazát használja az algoritmus futtatásához. Sokkal hatékonyabb, de bizonytalan konvergenciával. A Sztochasztikus Átlag Gradiens (SAG) egy másik változat, amely mindkét korábbi algoritmus előnyeit biztosítja. A korábbi gradiensek átlagát és az adatkészlet egy részhalmazát használja fel, hogy magas konvergencia rátát biztosítson alacsony számítási igény mellett. Az algoritmus tovább módosítható a hatékonyság növelése érdekében vektorizálás és mini kötegek segítségével.

People Mentioned

Mention Thumbnail

Machine Learning

@machinelearning2

Companies Mentioned

Mention Thumbnail
Every
Mention Thumbnail
Gradient
featured image - A sztochasztikus átlagos gradiens megértése
Andrey Kustarev HackerNoon profile picture
Andrey Kustarev

Andrey Kustarev

@kustarev

Director of Portfolio Management at WorldQuant. Expert in quantitative finance.

0-item

STORY’S CREDIBILITY

Original Reporting

Original Reporting

This story contains new, firsthand information uncovered by the writer.


A gradiens süllyedés a legnépszerűbb optimalizálási technika a gépi tanulás (ML) modellezésében. Az algoritmus minimálisra csökkenti az előrejelzett értékek és az alapigazság közötti hibát. Mivel a technika minden adatpontot figyelembe vesz a hiba megértéséhez és minimalizálásához, teljesítménye a betanítási adatok méretétől függ. Az olyan technikákat, mint a sztochasztikus gradiens süllyedés (SGD), a számítási teljesítmény javítására tervezték, de a konvergencia pontossága árán.


A Sztochasztikus Átlag Gradiens egyensúlyban tartja a klasszikus megközelítést, amely Full Gradient Descent és SGD néven ismert, és mindkét előnyt kínálja. Mielőtt azonban használni tudnánk az algoritmust, először meg kell értenünk annak jelentőségét a modelloptimalizálás szempontjából.

A gépi tanulási célok optimalizálása gradiens süllyedés segítségével

Minden ML algoritmushoz tartozik egy veszteségfüggvény, amelynek célja a modell teljesítményének minimalizálása vagy javítása. Matematikailag a veszteség a következőképpen definiálható:

image

Ez egyszerűen a tényleges és az előrejelzett kimenet közötti különbség, és ennek a különbségnek a minimalizálása azt jelenti, hogy modellünk közelebb kerül az alapigazság értékekhez.


A minimalizálási algoritmus gradiens süllyedést használ a veszteségfüggvény bejárására és a globális minimum meghatározására. Minden bejárási lépés magában foglalja az algoritmus súlyozásának frissítését a kimenet optimalizálása érdekében.


Sima Gradiens Descent

A hagyományos gradiens süllyedési algoritmus a teljes adatkészletben kiszámított összes gradiens átlagát használja. Egyetlen képzési példa életciklusa a következőképpen néz ki:


image


A súlyfrissítési egyenlet a következőképpen néz ki:

image

Ahol W a modell súlyait, dJ/dW pedig a veszteségfüggvény deriváltja a modell súlyához képest. A hagyományos módszer nagy konvergencia rátával rendelkezik, de számításilag költségessé válik, ha több millió adatpontot tartalmazó nagy adatkészletekkel foglalkozik.

Sztochasztikus gradiens süllyedés (SGD)

Az SGD módszertana ugyanaz marad, mint a sima GD, de ahelyett, hogy a teljes adatkészletet használná a gradiensek kiszámításához, egy kis köteget használ a bemenetekből. A módszer sokkal hatékonyabb, de túlságosan megkerülheti a globális minimumokat, mivel minden iteráció az adatoknak csak egy részét használja fel a tanuláshoz.

Sztochasztikus átlagos gradiens

A sztochasztikus átlagos gradiens (SAG) megközelítést középútként vezették be a GD és az SGD között. Kiválaszt egy véletlenszerű adatpontot, és frissíti annak értékét az adott ponton lévő gradiens és az adott adatponthoz tárolt múltbeli gradiensek súlyozott átlaga alapján.


Az SGD-hez hasonlóan az SAG minden problémát konvex, differenciálható függvények véges összegeként modellez. Bármely adott iterációnál a jelenlegi gradienseket és a korábbi gradiensek átlagát használja a súlyfrissítéshez. Az egyenlet a következő alakot ölti:


image


Konvergencia ráta

A két népszerű algoritmus, a teljes gradiens (FG) és a sztochasztikus gradiens süllyedés (SGD) között az FG algoritmus jobb konvergencia rátával rendelkezik, mivel minden iteráció során a teljes adatkészletet felhasználja a számításhoz.

Bár az SAG szerkezete hasonló az SGD-hez, konvergencia rátája összehasonlítható, és néha jobb is, mint a teljes gradiens megközelítés. Az alábbi 1. táblázat összefoglalja a kísérletek eredményeit Schmidt et. al .

Forrás: https://arxiv.org/pdf/1309.2388

Forrás: https://arxiv.org/pdf/1309.2388

További módosítások

Elképesztő teljesítménye ellenére számos módosítást javasoltak az eredeti SGD algoritmuson a teljesítmény javítása érdekében.


  • Újrasúlyozás a korai iterációkban: A SAG konvergencia lassú marad az első néhány iteráció során, mivel az algoritmus az irányt n-nel normalizálja (az adatpontok teljes száma). Ez pontatlan becslést ad, mivel az algoritmus még sok adatpontot nem látott. A módosítás azt javasolja, hogy n helyett m-rel normalizáljunk, ahol m a legalább egyszer látott adatpontok száma az adott iterációig.
  • Mini kötegek: A Sztochasztikus Gradiens megközelítés mini kötegeket használ több adatpont egyidejű feldolgozására. Ugyanez a megközelítés alkalmazható az SAG esetében is. Ez lehetővé teszi a vektorizálást és a párhuzamosítást a számítógép hatékonyságának javítása érdekében. Csökkenti a memóriaterhelést is, ami jelentős kihívás az SAG algoritmus számára.
  • Lépésméretű kísérletezés: A korábban említett lépésméret (116 liter) elképesztő eredményeket ad, de a szerzők tovább kísérleteztek az 1 literes lépésmérettel. Ez utóbbi még jobb konvergenciát biztosított. A szerzők azonban nem tudták bemutatni a javuló eredmények formális elemzését. Arra a következtetésre jutottak, hogy a lépésmérettel kísérletezni kell, hogy megtalálják az optimálisat az adott problémára.


Végső gondolatok

A gradiens süllyedés egy népszerű optimalizálás, amelyet a megadott célfüggvények globális minimumainak meghatározására használnak. Az algoritmus a célfüggvény gradiensét használja a függvény meredekségének bejárására, amíg az el nem éri a legalacsonyabb pontot.

A Full Gradient Descent (FG) és a Stochastic Gradient Descent (SGD) az algoritmus két népszerű változata. Az FG minden iteráció során a teljes adatkészletet használja, és magas számítási költség mellett magas konvergencia sebességet biztosít. Az SGD minden iterációnál az adatok egy részhalmazát használja az algoritmus futtatásához. Sokkal hatékonyabb, de bizonytalan konvergenciával.


A Sztochasztikus Átlag Gradiens (SAG) egy másik változat, amely mindkét korábbi algoritmus előnyeit biztosítja. A korábbi gradiensek átlagát és az adatkészlet egy részhalmazát használja fel, hogy magas konvergencia rátát biztosítson alacsony számítási igény mellett. Az algoritmus tovább módosítható a hatékonyság növelése érdekében vektorizálás és mini kötegek segítségével.


X REMOVE AD