Zejście gradientowe

głębokie uczenie się
matematyka
opadanie gradientowe
Zejście gradientowe cover image

Wstęp

Wyobraźmy sobie, że mamy funkcję f(x)f(x) i chcielibyśmy znaleźć jej minimum. Co byś zrobił ?

Proste, prawda? Musimy tylko rozwiązać następujące równanie:

f(x)=0f'(x) = 0

Rzecz w tym, że znalezienie wzorów na ff' nie zawsze jest łatwe, ponieważ są one niezwykle skomplikowane, szczególnie w głębokim uczeniu się, gdzie mamy do czynienia ze złożonymi funkcjami. Musimy więc znaleźć inną metodę, która zapewni nam minimum funkcji bez konieczności znajdowania wzoru na pochodną ff'.

Zbudujmy trochę intuicji

Załóżmy, że mamy funkcję f z odpowiednim wykresem:

Graph 1

Zacznijmy od losowego punktu x0x_{0}. Celem jest przesunięcie tego punktu i przybliżenie go coraz bardziej do xx* tak, aby f(f'(x*)=0) = 0. Zatem problem można podzielić na dwie części:

  • W którą stronę powinniśmy przesunąć punkt xx? Lewo czy prawo ?

  • O ile powinniśmy to przesunąć?

Kierunek

Aby odpowiedzieć na pierwsze pytanie, zbudujmy trochę intuicji. Spójrz na następujący punkt:

Graph 2

Graph 3

Pamiętaj, że:

  • gdy punkt x0x_{0} znajduje się na prawo od optymalnego punktu xx*, jego styczna podnosi się.

  • gdy punkt x0x_{0} znajduje się na prawo od optymalnego punktu xx*, jego linia styczna biegnie w dół.

Kierunek linii wyznacza znak jej nachylenia:

  • Linia idzie w górę \implikuje\implikuje, a nachylenie aa jest dodatnie.

  • Linia opadająca \implikuje\implikuje, a nachylenie aa jest ujemne.

Zauważ, że: \

Nachylenie stycznej funkcji w pewnym punkcie x0x_{0} nie jest większe niż pochodna w tym punkcie f(x0)f'(x_{0}):

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

Zatem w odpowiedzi na pytanie „Gdzie powinniśmy przenieść x0x_{0} ?”:

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0} na prawo od xx*     \implies Musimy przesunąć x0x_{0} w lewo.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0} na lewo od xx*     \implies Musimy przesunąć x0x_{0} w prawo.

Kroki

A teraz drugie pytanie: Ile powinniśmy przenieść x0x_{0} ?

Przyjrzyj się następującym przykładom:

Graph 4

Graph 5

Możemy stwierdzić, że:

  • x0x_{0} jest bliskie xx* => Nachylenie stycznej jest małe => f(x0)f'(x_{0}) jest małe.

  • x0x_{0} jest odległe od xx* => Nachylenie stycznej jest duże => f(x0)f'(x_{0}) jest duże.

Odpowiadając na oba pytania, doszliśmy do wniosku, że dopiero znajomość pochodnej w punkcie x0x_{0} może dać nam wiele informacji na temat kierunku i odległości optymalnego punktu x0x_{0}.

Zejście gradientowe

Zejście gradientowe to sformułowanie odpowiedzi na dwa poprzednie pytania. Jest to iteracyjny algorytm optymalizacji, który przybliża minimum xx* funkcji, zaczynając od losowego punktu początkowego x0x_{0}. Algorytm jest przedstawiony w następujący sposób:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

Gdzie:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}} jest niczym więcej niż pochodną ff w punkcie xnx*{n}.

  • lrlr to dodatnia stała, która określa, jak duże będą kroki.

Zauważ, że:

  • xnx_{n} znajduje się na prawo od xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xndodatnix_{n+ 1} = x_{n} - dodatni => xnx_{n} przesuwa się w lewo.

  • xnx_{n} znajduje się na lewo od xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn+1=xn+dodatnix*{n +1} = x*{n} + dodatni => xnx_{n} przesuwa się w prawo.

  • xnx_{n} blisko xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} blisko 00 => Mała aktualizacja do xnx_{ n}.

Quiz

  • Kiedy opadanie gradientu przestaje iterować:

  • Kiedy xnx_{n} jest wystarczająco małe.

  • Kiedy xnx_{n} jest bliskie x0x_{0} .

  • Gdy dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 . XXX

  • Jak wybrać x0x_{0}:

  • Wybieramy losowo. XXX

  • Przyjmujemy to w okolicach xnx{n}.

  • To zależy od problemu.

  • Dlaczego potrzebujemy zejścia gradientowego:

  • Ponieważ komputery nie są wystarczająco mocne, aby obliczać instrumenty pochodne.

  • Ponieważ niezwykle trudno jest znaleźć wzory na pochodne modeli głębokiego uczenia się. XXX

  • Ponieważ funkcje mają więcej niż jedno minimum lokalne.


Career Services background pattern

Usługi związane z karierą

Contact Section background image

Pozostańmy w kontakcie

Code Labs Academy © 2025 Wszelkie prawa zastrzeżone.