Descenso Gradiente

aprendizaxe profunda
matemáticas
descenso de gradientes
Descenso Gradiente cover image

Introdución

Imaxina que temos unha función $f(x)$ e queremos atopar o seu mínimo. Que farías?

Simple non? Só necesitamos resolver a seguinte ecuación:

$$f'(x) = 0$$

O caso é que atopar a fórmula de $f'$ non sempre é doado xa que adoitan ser extremadamente complicados, especialmente na aprendizaxe profunda onde tratamos funcións complexas. Polo tanto, necesitamos atopar outro método que nos proporcione o mínimo dunha función sen necesidade de atopar a fórmula da derivada $f'$.

Construímos algo de intuición

Supoñamos que temos unha función f coa gráfica correspondente:

Graph 1

Comecemos cun punto aleatorio $x_{0}$. O obxectivo é mover este punto e achegalo cada vez máis a $x*$ de tal xeito que $f'($x*$) = 0$. Polo tanto, o problema pódese dividir en dúas partes:

  • En que dirección debemos mover o punto $x$ ? Esquerda ou dereita?

  • Canto debemos movelo?

A dirección

Imos construír algo de intuición para responder á primeira pregunta. Bótalle un ollo ao seguinte punto:

Graph 2

Graph 3

Teña en conta que:

  • cando o punto $x_{0}$ está á dereita do punto óptimo $x*$ a súa recta tanxente sobe.

  • cando o punto $x_{0}$ está á dereita do punto óptimo $x*$ a súa recta tanxente baixa.

A dirección dunha recta vén determinada polo signo da súa pendente:

  • Unha liña sube $\implica$ que a pendente $a$ é positiva.

  • Unha liña baixa $\implica$ que a pendente $a$ é negativa.

Ten en conta que: \

A pendente da recta tanxente dunha función nun determinado punto $x_{0}$ non é máis que a derivada nese punto $f'(x_{0})$:

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

Entón, como resposta á pregunta "Onde debemos mover $x_{0}$?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ á dereita de $x*$ $\implies$ Necesitamos mover $x_{0}$ á esquerda.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ á esquerda de $x*$ $\implies$ Necesitamos mover $x_{0}$ cara á dereita.

Os pasos

Agora para a segunda pregunta, Canto debemos mover $x_{0}$ ?

Bótalle un ollo aos seguintes exemplos:

Graph 4

Graph 5

Podemos concluír que:

  • $x_{0}$ está próximo a $x*$ => A pendente da tanxente é pequena => $f'(x_{0})$ é pequena.

  • $x_{0}$ está distante de $x*$ => A pendente da tanxente é grande => $f'(x_{0})$ é grande.

Respondendo a ambas as preguntas, chegamos á conclusión de que só o coñecemento da derivada no punto $x_{0}$ pode darnos moita información sobre a dirección e a distancia do punto óptimo $x_{0}$.

Descenso en gradiente

O descenso en gradiente é a formulación das respostas das dúas preguntas anteriores. É un algoritmo iterativo de optimización que aproxima o mínimo $x*$ da función a partir dun punto inicial aleatorio $x_{0}$. O algoritmo explícase como segue:

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

onde:

  • $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ non é máis que a derivada de $f$ no punto $x*{n}$.

  • $lr$ é unha constante positiva que determina o grandes que van ser os pasos.

Teña en conta que:

  • $x_{n}$ está á dereita de $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - $ positivo => $x_{n}$ móvese cara á esquerda.

  • $x_{n}$ está á esquerda de $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + $ positivo => $x_{n}$ móvese cara á dereita.

  • $x_{n}$ preto de $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ preto de $0$ => Pequena actualización de $x_{ n}$.

Cuestionario

  • Cando deixa de iterar o descenso do gradiente:

  • Cando $x_{n}$ é o suficientemente pequeno.

  • Cando $x_{n}$ está preto de $x_{0}$ .

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

  • Como eliximos $x_{0}$:

  • Escollemos ao azar. XXX

  • Tomámolo nas proximidades de $x{n}$.

  • Depende do problema.

  • Por que necesitamos un descenso en gradiente:

  • Porque os ordenadores non son o suficientemente potentes para calcular derivadas.

  • Porque é moi difícil atopar as fórmulas derivadas dos modelos de aprendizaxe profunda. XXX

  • Porque as funcións teñen máis dun mínimo local.


Career Services background pattern

Servizos de Carreira

Contact Section background image

Mantémonos en contacto

Code Labs Academy © 2024 Todos os dereitos reservados.