Descenso Gradiente

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

Introdución

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

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

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

O caso é que atopar a fórmula de ff' 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 ff'.

Construímos algo de intuición

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

Graph 1

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

  • En que dirección debemos mover o punto xx ? 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 x0x_{0} está á dereita do punto óptimo xx* a súa recta tanxente sobe.

  • cando o punto x0x_{0} está á dereita do punto óptimo xx* 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\implica que a pendente aa é positiva.

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

Ten en conta que: \

A pendente da recta tanxente dunha función nun determinado punto x0x_{0} non é máis que a derivada nese punto 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})

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

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

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

Os pasos

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

Bótalle un ollo aos seguintes exemplos:

Graph 4

Graph 5

Podemos concluír que:

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

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

Respondendo a ambas as preguntas, chegamos á conclusión de que só o coñecemento da derivada no punto x0x_{0} pode darnos moita información sobre a dirección e a distancia do punto óptimo x0x_{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 xx* mínimo da función a partir dun punto inicial aleatorio x0x_{0}. O algoritmo explícase como segue:

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

onde:

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

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

Teña en conta que:

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

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

  • xnx_{n} preto de xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} preto de 00 => Pequena actualización de xnx_{ n}.

Cuestionario

  • Cando deixa de iterar o descenso do gradiente:

  • Cando xnx_{n} é o suficientemente pequeno.

  • Cando xnx_{n} está preto de x0x_{0} .

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

  • Como eliximos x0x_{0}:

  • Escollemos ao azar. XXX

  • Levámolo no barrio de xnx_{n}.

  • Depende do problema.

  • Por que necesitamos un descenso en pendiente:

  • 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.


Máster Data Science and AI con Code Labs Academy! Únete ao noso Bootcamp en liña: opcións flexibles a tempo parcial e a tempo completo dispoñibles.


Career Services background pattern

Servizos de Carreira

Contact Section background image

Mantémonos en contacto

Code Labs Academy © 2025 Todos os dereitos reservados.