A Gradient Descent, a legnépszerűbb ML algoritmus megértése

A gradiens süllyedés az egyik legnépszerűbb és legszélesebb körben használt algoritmus a gépi tanulási modellek képzéséhez.

A gépi tanulási modellek jellemzően paraméterekkel (súlyokkal és torzításokkal) és költségfunkcióval rendelkeznek annak értékelésére, hogy egy adott paraméterkészlet mennyire jó. Számos gépi tanulási probléma arra utal, hogy megtalálja a modell számára olyan súlykészletet, amely minimalizálja a költségfüggvényt.

Például, ha az előrejelzés p , a cél t , és a hibamutatónk négyzethiba, akkor a költségfüggvény J (W) = (p - t) ² .

Vegye figyelembe, hogy a megjósolt p érték az X bemenettől , valamint a gépi tanulási modelltől és a W paraméterek (aktuális) értékeitől függ . Az edzés során az a célunk, hogy olyan W- értékeket találjunk , amelyek (p - t) ² kicsiek. Ez azt jelenti, hogy jóslatunk p közel lesz a t célhoz .

A gradiens süllyedés iteratív módszer. Kezdjük a modell paramétereinek (súlyok és torzítások) néhány értékkészletével, és lassan javítjuk őket.

Egy adott súlykészlet javítása érdekében megpróbáljuk megérteni az aktuális súlyokhoz hasonló súlyok költségfüggvényének értékét (a gradiens kiszámításával). Ezután haladunk abba az irányba, amely csökkenti a költségfüggvényt.

Ha több ezer alkalommal megismételjük ezt a lépést, folyamatosan minimalizáljuk a költségfüggvényünket.

Pszeudokód a gradiens süllyedéshez

Gradiens csökkenési alkalmazunk, hogy minimalizáljuk a költségfüggvényt J (W) paraméterezett egy modell paraméterek W .

A gradiens (vagy derivált) megmondja a költségfüggvény lejtését vagy meredekségét. Ezért a költségfüggvény minimalizálása érdekében a gradienssel ellentétes irányba haladunk.

  1. Véletlenszerűen inicializálja a W súlyokat .
  2. Számítsa ki a költségfüggvény wrt paramétereinek G gradienseit . Ez részleges differenciálással történik: G = ∂J (W) / ∂W. A G gradiens értéke függ a bemenettől, a modell paramétereinek aktuális értékeitől és a költségfüggvénytől. Lehet, hogy újra meg kell vizsgálnia a differenciálás témáját, ha kézzel számolja a színátmenetet.
  3. Frissítse a súlyokat egy G-vel arányos összeggel, azaz W = W - ηG
  4. Addig ismételje, amíg a J ( w ) költség nem csökken, vagy más, előre meghatározott felmondási feltétel nem teljesül.

A 3. lépésben η a tanulási arány, amely meghatározza a minimum eléréséhez szükséges lépések nagyságát. Nagyon óvatosnak kell lennünk ezzel a paraméterrel kapcsolatban. A η magas értékei túlléphetik a minimumot, és nagyon alacsony értékek nagyon lassan érik el a minimumot.

Népszerű választás a felmondási kritériumok szempontjából, hogy a J ( w ) költség nem csökken egy validációs adatkészleten.

Intuíció a gradiens süllyedéshez

Képzelje el, hogy bekötött szemmel járzord terepen, és célja a legalacsonyabb magasság elérése.

Az egyik legegyszerűbb stratégia, amelyet használhat, az, hogy minden irányban megérezze a talajt, és tegyen egy lépést abba az irányba, ahol a talaj a leggyorsabban ereszkedik.

Ha folyamatosan ismételgeti ezt a folyamatot, akkor a tónál, vagy még jobb, valahol a hatalmas völgyben lehet.

A durva terep analóg a költségfüggvénnyel, és a költségfüggvény minimalizálása analóg az alacsonyabb magasságok elérésének megkísérlésével.

Vakon vagytok, mivel nincs luxusunk a függvény értékét minden lehetséges paraméterkészletnél értékelni (vagy „látni”).

A körülötted lévő terep meredekségének érzése analóg a gradiens kiszámításával, és egy lépés megtétele analóg a paraméterek frissítésének egy iterációjával.

Egyébként - kis félretételként - ez a bemutató az ingyenes Data Science Course és az ingyenes Machine Learning Course része a Commonlounge-on. A tanfolyamok sok gyakorlati feladatot és projektet tartalmaznak. Ha érdekel az Data Science / ML elsajátítása, mindenképpen javasoljuk, hogy ellenőrizze.

Színátmenetes származású változatok

A gradiens süllyedésnek több változata van, attól függően, hogy az adatok mekkora részét használják fel a gradiens kiszámításához.

E változások fő oka a számítási hatékonyság. Egy adatkészletnek több millió adatpontja lehet, és a gradiens kiszámítása a teljes adatkészletre számítási szempontból költséges lehet.

  • A kötegelt gradiens süllyedés kiszámítja a W paraméterre írt költségfüggvény gradiensét a teljes edzési adatokra . Mivel egy paraméterfrissítés végrehajtásához ki kell számolnunk a teljes adatkészlet gradiensét, a kötegelt gradiens süllyedés nagyon lassú lehet.
  • A sztochasztikus gradiens süllyedés (SGD) kiszámítja az egyes frissítések gradiensét egyetlen , véletlenszerűen kiválasztott x_i képzési adatpont segítségével . Az elképzelés az, hogy az így kiszámított gradiens sztochasztikus közelítés a teljes képzési adatok felhasználásával kiszámított gradienshez. Minden frissítés kiszámítása sokkal gyorsabb, mint a kötegelt gradiens süllyedés, és sok frissítés mellett ugyanabban az általános irányban haladunk.
  • A mini-batch gradiensgyengülés , kiszámítjuk a gradiens minden kis mini-adag edzés adatait. Vagyis először az edzés adatait felosztjuk kis tételekre (mondjuk tételenként M mintára). Mini kötegenként egy frissítést hajtunk végre. Az M a problémától függően általában 30–500 tartományban van. Általában a mini-kötegelt GD-t használják, mert a számítási infrastruktúrát - a fordítókat, a CPU-kat, a GPU-kat - gyakran optimalizálják a vektor-összeadások és a vektor-szorzások elvégzésére.

Ezek közül az SGD és a mini-batch GD a legnépszerűbb.

Egy tipikus szcenárióban többször is átadjuk a képzési adatokat, mielőtt a felmondási feltételek teljesülnének. Minden passzust korszaknak nevezünk . Ezenkívül vegye figyelembe, hogy mivel a frissítési lépés számítási szempontból sokkal hatékonyabb az SGD-ben és a mini-batch GD-ben, általában 100–1000 frissítést hajtunk végre a felmondási feltételek teljesülésének ellenőrzése között.

A tanulási arány kiválasztása

Általában a tanulási arány értékét manuálisan választják meg. Általában egy kis értékkel kezdünk, például 0,1, 0,01 vagy 0,001, és annak alapján adaptáljuk, hogy a költségfüggvény nagyon lassan csökken-e (növekszik a tanulási arány), vagy robbanásszerűen / szabálytalanul csökken (csökken a tanulási arány).

Bár a tanulási arány kézi kiválasztása továbbra is a legelterjedtebb gyakorlat, számos módszert javasoltak, például az Adam optimalizáló, az AdaGrad és az RMSProp segítségével a megfelelő tanulási arány automatikus kiválasztását.

Társszerzők: Keshav Dhandhania és Savan Visalpara.

Eredetileg az ingyenes Machine Learning Course és az ingyenes Data Science Course részeként jelent meg a www.commonlounge.com oldalon.