¿Cómo funciona el algoritmo de descenso de gradiente en el aprendizaje automático?

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

Gradient Descent es uno de los algoritmos de aprendizaje automático más utilizados en la industria. Y, sin embargo, confunde a muchos recién llegados.

¡Lo entiendo! La matemática detrás del aumento de gradiente no es fácil si recién está comenzando. Mi objetivo es ayudarlo a obtener una intuición detrás del descenso de gradientes en este artículo.

machine-learning-libraries-c-3488948

Comprenderemos rápidamente el papel de una función de costo, la explicación del descenso de gradiente, cómo elegir el parámetro de aprendizaje y el efecto de sobrepasar en el descenso de gradiente. ¡Vamos a empezar!

¿Qué es una función de costo?

Es un función que mide el rendimiento de un modelo para cualquier dato dado. Función de costo cuantifica el error entre los valores predichos y los valores esperados y lo presenta en forma de un solo número real.

Luego de realizar una hipótesis con parámetros iniciales, calculamos la función Costo. Y con el objetivo de reducir la función de costo, modificamos los parámetros utilizando el algoritmo de descenso de gradiente sobre los datos dados. Aquí está la representación matemática para ello:

90857screenshot2041_li-6709060
Fuente: Coursera

¿Qué es Gradient Descent?

¡La pregunta del millón de dólares!

Digamos que estás jugando un juego en el que los jugadores están en la cima de una montaña y se les pide que lleguen al punto más bajo de la montaña. Además, tienen los ojos vendados. Entonces, ¿qué enfoque crees que te haría llegar al lago?

Tómate un momento para pensar en esto antes de seguir leyendo.

La mejor manera es observar el suelo y encontrar dónde desciende la tierra. Desde esa posición, da un paso en dirección descendente e itera este proceso hasta llegar al punto más bajo.

70205gd20mountain-9757155Encontrar el punto más bajo en un paisaje montañoso. (Fuente: Fisseha Berhane)

El descenso de gradiente es un algoritmo de optimización iterativo para encontrar el mínimo local de una función.

Para encontrar el mínimo local de una función usando el descenso de gradiente, debemos dar pasos proporcionales al negativo del gradiente (alejarse del gradiente) de la función en el punto actual. Si damos pasos proporcionales al positivo del gradiente (moviéndonos hacia el gradiente), nos acercaremos a un máximo local de la función, y el procedimiento se llama Ascenso en gradiente.

El descenso de gradiente fue propuesto originalmente por CAUCHY en 1847. También se conoce como descenso más empinado.

631731_p7z2bkhd0r-9uyn9thdasa-1647200
Fuente: Clarividente

El objetivo del algoritmo de descenso de gradiente es minimizar la función dada (por ejemplo, función de costo). Para lograr este objetivo, realiza dos pasos de forma iterativa:

  1. Calcule el gradiente (pendiente), la derivada de primer orden de la función en ese punto
  2. Da un paso (muévete) en la dirección opuesta al degradado, la dirección opuesta de la pendiente aumenta desde el punto actual en alfa veces el gradiente en ese punto
36152screenshot2043-5793508
Fuente: Coursera

Alpha se llama Tasa de aprendizaje – un parámetro de ajuste en el proceso de optimización. Decide la longitud de los pasos.

Trazado del algoritmo de descenso de gradiente

Cuando tenemos un solo parámetro (theta), podemos graficar el costo de la variable dependiente en el eje y y theta en el eje x. Si hay dos parámetros, podemos optar por una gráfica en 3-D, con el costo en un eje y los dos parámetros (thetas) a lo largo de los otros dos ejes.

42181plot-3d-parabola-5821863
costo a lo largo del eje z y parámetros (thetas) a lo largo del eje x y el eje y (fuente: puerta de investigación)

También se puede visualizar usando Contornos. Esto muestra una gráfica 3D en dos dimensiones con parámetros a lo largo de ambos ejes y la respuesta como un contorno. El valor de la respuesta aumenta alejándose del centro y tiene el mismo valor junto con los anillos. La respuesta es directamente proporcional a la distancia de un punto al centro (a lo largo de una dirección).

56656contour-9605028
Descenso de gradiente usando Contour Plot. (fuente: Coursera)

Alpha – La tasa de aprendizaje

Tenemos la dirección en la que queremos movernos, ahora debemos decidir el tamaño del paso que debemos dar.

* Debe elegirse con cuidado para terminar con mínimos locales.

  • Si la tasa de aprendizaje es demasiado alta, podríamos EXCEDERSE los mínimos y seguir rebotando, sin llegar a los mínimos
  • Si la tasa de aprendizaje es demasiado pequeña, la capacitación puede resultar demasiado larga.
43266images-2817704
Fuente: Coursera
  1. a) La tasa de aprendizaje es óptima, el modelo converge al mínimo
  2. b) La tasa de aprendizaje es demasiado pequeña, lleva más tiempo pero converge al mínimo
  3. c) La tasa de aprendizaje es mayor que el valor óptimo, se sobrepasa pero converge (1 / C <η <2 / C)
  4. d) La tasa de aprendizaje es muy grande, se sobrepasa y diverge, se aleja de los mínimos, el rendimiento disminuye en el aprendizaje
40982epochss-1425409
Fuente: researchgate

Nota: A medida que el gradiente disminuye mientras se mueve hacia los mínimos locales, el tamaño del paso disminuye. Por lo tanto, la tasa de aprendizaje (alfa) puede ser constante durante la optimización y no es necesario variar de forma iterativa.

Mínimos locales

La función de costo puede constar de muchos puntos mínimos. El gradiente puede asentarse en cualquiera de los mínimos, que depende del punto inicial (es decir, los parámetros iniciales (theta)) y la tasa de aprendizaje. Por lo tanto, la optimización puede converger en diferentes puntos con diferentes puntos de partida y tasa de aprendizaje.

90062gdopt-3765531
Función de convergencia de costes con diferentes puntos de partida (Fuente: Gfycat)

Implementación de código de Gradient Descent en Python

23757gdalgo-8810942
Algoritmo de descenso de gradiente

Notas finales

Una vez que sintonizamos el parámetro de aprendizaje (alfa) y obtenemos la tasa de aprendizaje óptima, comenzamos a iterar hasta que convergemos a los mínimos locales.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.