Introdución
Imaxina que temos unha función e queremos atopar o seu mínimo. Que farías?
Simple non? Só necesitamos resolver a seguinte ecuación:
O caso é que atopar a fórmula de 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 .
Construímos algo de intuición
Supoñamos que temos unha función f coa gráfica correspondente:
Comecemos cun punto aleatorio . O obxectivo é mover este punto e achegalo cada vez máis a de tal xeito que x*. Polo tanto, o problema pódese dividir en dúas partes:
-
En que dirección debemos mover o punto ? 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:
Teña en conta que:
-
cando o punto está á dereita do punto óptimo a súa recta tanxente sobe.
-
cando o punto está á dereita do punto óptimo a súa recta tanxente baixa.
A dirección dunha recta vén determinada polo signo da súa pendente:
-
Unha liña sube que a pendente é positiva.
-
Unha liña baixa que a pendente é negativa.
Ten en conta que: \
A pendente da recta tanxente dunha función nun determinado punto non é máis que a derivada nese punto :
Entón, como resposta á pregunta "Onde debemos mover ?":
-
á dereita de Necesitamos mover á esquerda.
-
á esquerda de Necesitamos mover cara á dereita.
Os pasos
Agora para a segunda pregunta, Canto debemos mover ?
Bótalle un ollo aos seguintes exemplos:
Podemos concluír que:
-
está próximo a => A pendente da tanxente é pequena => é pequena.
-
está distante de => A pendente da tanxente é grande => é grande.
Respondendo a ambas as preguntas, chegamos á conclusión de que só o coñecemento da derivada no punto pode darnos moita información sobre a dirección e a distancia do punto óptimo .
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 da función a partir dun punto inicial aleatorio . O algoritmo explícase como segue:
onde:
-
non é máis que a derivada de no punto .
-
é unha constante positiva que determina o grandes que van ser os pasos.
Teña en conta que:
-
está á dereita de => => positivo => móvese cara á esquerda.
-
está á esquerda de => => positivo => móvese cara á dereita.
-
preto de => preto de => Pequena actualización de .
Cuestionario
-
Cando deixa de iterar o descenso do gradiente:
-
Cando é o suficientemente pequeno.
-
Cando está preto de .
-
Cando . XXX
-
Como eliximos :
-
Escollemos ao azar. XXX
-
Levámolo no barrio de .
-
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.