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ó: 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: A súlyfrissítési egyenlet a következőképpen néz ki: Ahol a modell súlyait, 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. W dJ/dW 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: 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 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. 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. Újrasúlyozás a korai iterációkban: 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. Mini kötegek: 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. Lépésméretű kísérletezés: 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.