Gradiens Descent
Frissítve a November 15, 2024 -en 3 percek olvasása

Bevezetés
Képzeljük el, hogy van egy $f(x)$ függvényünk, és szeretnénk megtalálni a minimumát. mit tennél ?
Egyszerű igaz? Csak a következő egyenletet kell megoldanunk:
$$f’(x) = 0$$
A helyzet az, hogy a $f’$ képletének megtalálása nem mindig egyszerű, mivel általában rendkívül bonyolultak, különösen a mély tanulásban, ahol összetett függvényekkel foglalkozunk. Tehát találnunk kell egy másik módszert, amely megadja nekünk a függvény minimumát anélkül, hogy meg kellene találnunk a $f’$ derivált képletét.
Építsünk némi intuíciót
Tegyük fel, hogy van egy f függvényünk a megfelelő gráfral:
Kezdjük egy véletlenszerű $x_{0}$ ponttal. A cél az, hogy ezt a pontot mozgassuk, és egyre közelebb tegyük $x*$-hoz úgy, hogy $f’($x*$) = 0$. Tehát a probléma két részre osztható:
-
Milyen irányba mozgassuk a $x$ pontot? Balra vagy Jobbra?
-
Mennyit mozgassuk meg ?
Az irány
Építsünk némi intuíciót az első kérdés megválaszolásához. Vessen egy pillantást a következő pontra:
Vegye figyelembe, hogy:
-
ha a $x_{0}$ pont az optimális $x*$ ponttól jobbra van, az érintővonal felfelé megy.
-
ha a $x_{0}$ pont az optimális $x*$ ponttól jobbra van, az érintővonal lefelé megy.
Egy vonal irányát a meredekségének előjele határozza meg:
-
Egy vonal $\implies$ felfelé megy, az $a$ meredeksége pozitív.
-
Egy vonal lefelé megy $\implies$, az $a$ meredeksége negatív.
Megjegyzés: \
Egy függvény érintővonalának meredeksége egy bizonyos $x_{0}$ pontban nem több, mint az adott $f’(x_{0})$ pont deriváltja:
$$ tangent(x*{0}): g(x) = f’(x*{0}).(x-x*{0}) + f(x*{0}) $$
Tehát válaszként a “Hova helyezzük át $x_{0}$ ?” kérdésre:
-
$f’(x_{0}) < 0$ $\implies$ $x_{0}$ $x*$ $\implies$ jobb oldalán El kell mozgatnunk $x_{0}$-t balra.
-
$f’(x_{0}) > 0$ $\implies$ $x_{0}$ a $x*$ balra $\implies$ A $x_{0}$-t jobbra kell mozgatnunk.
A lépések
Most pedig a második kérdés: Mennyit mozgassunk $x_{0}$ ?
Vessen egy pillantást a következő példákra:
Arra következtethetünk, hogy:
-
$x_{0}$ közel van a $x*$-hoz => Az érintő meredeksége kicsi => $f’(x_{0})$ kicsi.
-
$x_{0}$ távol van $x*$-tól => Az érintő meredeksége nagy => $f’(x_{0})$ nagy.
Mindkét kérdés megválaszolásával arra a következtetésre jutottunk, hogy csak a $x_{0}$ pont deriváltjának ismerete adhat sok betekintést az optimális $x_{0}$ pont irányáról és távolságáról.
Gradiens süllyedés
A gradiens süllyedés az előző két kérdésre adott válaszok megfogalmazása. Ez egy iteratív optimalizálási algoritmus, amely egy véletlenszerű $x_{0}$ kezdőpontból kiindulva közelíti meg a függvény minimális $x*$ értékét. Az algoritmus a következő:
$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$
ahol:
-
$ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ nem több, mint $f$ deriváltja a $x*{n}$ pontban.
-
A $lr$ egy pozitív állandó, amely meghatározza, hogy mekkora lépések lesznek.
Figyeld meg, hogy:
-
$x_{n}$ a $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ jobb oldalán található 1} = x_{n} - pozitív $ => $x_{n}$ balra mozog.
-
$x_{n}$ a következőtől balra van: $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + pozitív $ => $x_{n}$ jobbra mozog.
-
$x_{n}$ közel $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ közel $0$ => Kis frissítés $x_{ n}$.
Kvíz
-
Mikor áll le a gradiens süllyedés az iterációban:
-
Amikor $x_{n}$ elég kicsi.
-
Amikor $x_{n}$ közel van a $x_{0}$-hoz.
-
Amikor $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX
-
Hogyan válasszunk $x_{0}$:
-
Véletlenszerűen választjuk ki. XXX
-
$x_{n}$ szomszédságában vesszük.
-
Ez a problémától függ.
-
Miért van szükségünk a gradiens süllyedésre:
-
Mert a számítógépek nem elég erősek a származékok kiszámításához.
-
Mert rendkívül nehéz megtalálni a mély tanulási modellek derivált képleteit. XXX
-
Mert a függvényeknek egynél több lokális minimumuk van.
- Sajátítsd el a Data Science and AI Code Labs Academy segítségével! Csatlakozzon online bootcampünkhöz – Rugalmas rész- és teljes munkaidős lehetőségek állnak rendelkezésre.*