Gradientný zostup

hlboké učenie
matematika
gradientný zostup
Gradientný zostup cover image

Úvod

Predstavme si, že máme funkciu $f(x)$ a chceli by sme nájsť jej minimum. Čo by si robil ?

Jednoduché že? Potrebujeme vyriešiť iba nasledujúcu rovnicu:

$$f'(x) = 0$$

Ide o to, že nájsť vzorec $f'$ nie je vždy ľahké, pretože má tendenciu byť extrémne komplikované, najmä v hlbokom učení, kde sa zaoberáme komplexnými funkciami. Musíme teda nájsť inú metódu, ktorá nám poskytne minimum funkcie bez toho, aby sme museli hľadať vzorec derivácie $f'$.

Vybudujme trochu intuície

Predpokladajme, že máme funkciu f s príslušným grafom:

Graph 1

Začnime s náhodným bodom $x_{0}$. Cieľom je posunúť tento bod a priblížiť ho k $x*$ tak, aby $f'($x*$) = 0$. Takže problém možno rozdeliť na dve časti:

  • Ktorým smerom by sme mali posunúť bod $x$? Ľavá alebo pravá ?

  • Koľko by sme to mali posunúť?

Smer

Budujme trochu intuície, aby sme odpovedali na prvú otázku. Pozrite sa na nasledujúci bod:

Graph 2

Graph 3

Poznač si to:

  • keď je bod $x_{0}$ napravo od optimálneho bodu $x*$, jeho dotyčnica ide hore.

  • keď je bod $x_{0}$ napravo od optimálneho bodu $x*$, jeho dotyčnica klesá.

Smer čiary je určený znamienkom jej sklonu:

  • Čiara stúpa $\implikuje$ sklon $a$ je pozitívny.

  • Čiara klesá $\implikuje$ sklon $a$ je negatívny.

Všimnite si, že: \

Sklon dotyčnice funkcie v určitom bode $x_{0}$ nie je väčší ako derivácia v tomto bode $f'(x_{0})$:

$$ tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0}) $$

Takže ako odpoveď na otázku "Kam by sme sa mali presunúť $x_{0}$?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ napravo od $x*$ $\implies$ Musíme posunúť $x_{0}$ doľava.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ vľavo od $x*$ $\implies$ Potrebujeme presunúť $x_{0}$ doprava.

Kroky

Teraz druhá otázka: Koľko by sme mali presunúť x_{0}$ $ ?

Pozrite si nasledujúce príklady:

Graph 4

Graph 5

Môžeme konštatovať, že:

  • $x_{0}$ je blízko $x*$ => Sklon dotyčnice je malý => $f'(x_{0})$ je malý.

  • $x_{0}$ je vzdialené od $x*$ => Sklon dotyčnice je veľký => $f'(x_{0})$ je veľký.

Zodpovedaním oboch otázok sme dospeli k záveru, že iba znalosť derivácie v bode $x_{0}$ nám môže poskytnúť veľa informácií o smere a vzdialenosti optimálneho bodu $x_{0}$.

Gradientný zostup

Gradient zostup je formuláciou odpovedí na predchádzajúce dve otázky. Je to optimalizačný iteračný algoritmus, ktorý aproximuje minimum $x*$ funkcie počnúc náhodným počiatočným bodom $x_{0}$. Algoritmus je uvedený nasledovne:

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

kde:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ nie je viac ako derivácia $f$ v bode $x*{n}$.

  • $lr$ je kladná konštanta, ktorá určuje, aké veľké kroky budú.

Všimni si:

  • $x_{n}$ je napravo od $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - kladné $ => $x_{n}$ sa posunie doľava.

  • $x_{n}$ je naľavo od $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + kladné $ => $x_{n}$ sa posunie doprava.

  • $x_{n}$ takmer $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ takmer $0$ => Malá aktualizácia $x_{ n}$.

Kvíz

  • Kedy sa zostup gradientu prestane opakovať:

  • Keď je $x_{n}$ dostatočne malý.

  • Keď sa $x_{n}$ blíži k $x_{0}$ .

  • Keď $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX

– Ako vyberieme $x_{0}$:

  • Vyberáme to náhodne. XXX

  • Berieme to v okolí $x{n}$.

  • Závisí to od problému.

  • Prečo potrebujeme gradientný zostup:

  • Pretože počítače nie sú dostatočne výkonné na výpočet derivácií.

  • Pretože je mimoriadne ťažké nájsť odvodené vzorce modelov hlbokého učenia. XXX

  • Pretože funkcie majú viac ako jedno lokálne minimum.


Career Services background pattern

Kariérne služby

Contact Section background image

Ostaňme v kontakte

Code Labs Academy © 2024 Všetky práva vyhradené.