Gradiento nusileidimas

gilus mokymasis
matematika
nusileidimas nuo gradiento
Gradiento nusileidimas cover image

Įvadas

Įsivaizduokite, kad turime funkciją $f(x)$ ir norėtume rasti jos minimumą. ka darytum tu?

Paprasta tiesa? Mums tereikia išspręsti šią lygtį:

$$f'(x) = 0$$

Reikalas tas, kad rasti $ f'$ formulę ne visada lengva, nes jos būna labai sudėtingos, ypač gilaus mokymosi metu, kai susiduriame su sudėtingomis funkcijomis. Taigi turime rasti kitą metodą, kuris galėtų mums pateikti funkcijos minimumą, nerandant išvestinės $f'$ formulės.

Sukurkime intuiciją

Tarkime, kad turime funkciją f su atitinkamu grafiku:

Graph 1

Pradėkime nuo atsitiktinio taško $x_{0}$. Tikslas yra perkelti šį tašką ir padaryti jį vis arčiau $x*$, kad $f'($x*$) = 0$. Taigi problemą galima suskirstyti į dvi dalis:

  • Kuria kryptimi turėtume perkelti tašką $x$? Kairė ar dešinė?

  • Kiek turėtume jį perkelti?

Kryptis

Sukurkime intuiciją, kad galėtume atsakyti į pirmąjį klausimą. Pažvelkite į šį punktą:

Graph 2

Graph 3

Atkreipkite dėmesį, kad:

  • kai taškas $x_{0}$ yra optimalaus taško $x*$ dešinėje, jo liestinės linija pakyla aukštyn.

  • kai taškas $x_{0}$ yra į dešinę nuo optimalaus taško $x*$, jo liestinės linija nusileidžia.

Linijos kryptis nustatoma pagal jos nuolydžio ženklą:

  • Linija kyla aukštyn $\implies$, nuolydis $a$ yra teigiamas.

  • Linija nusileidžia $\implies$, nuolydis $a$ yra neigiamas.

Atkreipkite dėmesį, kad: \

Funkcijos liestinės linijos nuolydis tam tikrame taške $x_{0}$ yra ne didesnis kaip išvestinė tame taške $f'(x_{0})$:

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

Taigi kaip atsakymą į klausimą "Kur turėtume perkelti $x_{0}$?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ į dešinę nuo $x*$ $\implies$ Turime perkelti $x_{0}$ į kairę.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ kairėje nuo $x*$ $\implies$ Turime perkelti $x_{0}$ į dešinę.

Žingsniai

Dabar antras klausimas: Kiek turėtume perkelti $x_{0}$?

Pažvelkite į šiuos pavyzdžius:

Graph 4

Graph 5

Galime daryti tokią išvadą:

  • $x_{0}$ yra arti $x*$ => liestinės nuolydis mažas => $f'(x_{0})$ mažas.

  • $x_{0}$ yra nutolusi nuo $x*$ => Liestinės nuolydis didelis => $f'(x_{0})$ yra didelis.

Atsakydami į abu klausimus padarėme išvadą, kad tik žinios apie išvestinę taške $x_{0}$ gali suteikti mums daug informacijos apie optimalaus taško $x_{0}$ kryptį ir atstumą.

Gradiento nusileidimas

Gradiento nusileidimas yra dviejų ankstesnių klausimų atsakymų formulavimas. Tai optimizavimo iteracinis algoritmas, kuris apytiksliai apskaičiuoja minimalų funkcijos $x*$ dydį, pradedant nuo atsitiktinio pradinio taško $x_{0}$. Algoritmas nurodytas taip:

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

kur:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ yra ne daugiau kaip $f$ išvestinė taške $x*{n}$.

  • $lr$ yra teigiama konstanta, kuri lemia, kokie dideli žingsniai bus.

Atkreipkite dėmesį, kad:

  • $x_{n}$ yra dešinėje nuo $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} – teigiamas $ => $x_{n}$ juda į kairę.

  • $x_{n}$ yra kairėje nuo $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + teigiamas $ => $x_{n}$ juda į dešinę.

  • $x_{n}$ arti $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ arti $0$ => nedidelis $x_{ atnaujinimas n} $.

Viktorina

– Kada gradiento nusileidimas nustoja kartotis:

– Kai $x_{n}$ yra pakankamai mažas.

– Kai $x_{n}$ yra arti $x_{0}$ .

– Kai $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX

– Kaip pasirinkti $x_{0}$:

  • Renkamės atsitiktinai. XXX

  • Paimame jį netoli $x{n}$.

– Tai priklauso nuo problemos.

  • Kodėl mums reikia gradiento nusileidimo:

– Todėl, kad kompiuteriai nėra pakankamai galingi, kad skaičiuotų išvestines.

– Nes labai sunku rasti giluminio mokymosi modelių išvestines formules. XXX

– Kadangi funkcijos turi daugiau nei vieną vietinį minimumą.


Career Services background pattern

Karjeros paslaugos

Contact Section background image

Palaikykime ryšį

Code Labs Academy © 2024 Visos teisės saugomos.