2.2 - El algoritmo del Gradiente Descendente

Lección 2 de la sección “Redes Neuronales” del curso Fundamentos de Deep Learning con Python.

Introducción

En la sección introductoria al curso vimos intuitivamente el significado de la palabra “modelo” en el entorno del Deep Learning, y hablamos igualmente del proceso de entrenamiento como el equivalente a ajustar o mover unas “perillas” correspondientes a los parámetros del modelo.

En esta lección hablaremos del algoritmo que controla el movimiento de estas “perillas”, y que resulta fundamental pues se usa en el entrenamiento de prácticamente todos los modelos de Deep Learning. Hablaremos entonces del algoritmo del Gradiente Descendente.

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Idea general

El propósito del algoritmo del Gradiente Descendente es encontrar, de forma iterativa, el mínimo de una función. Esta función puede tener una o múltiples variables independientes. En particular, en esta lección veremos el funcionamiento del algoritmo para una sola variable, pero el principio se puede extender fácilmente a funciones más complejas (con dos o más variables independientes).

Si consideramos por ejemplo la función $y=(x-2)^2$ podremos comprobar que ésta tiene un único mínimo ubicado en $x=2$. Si además de esto analizamos la derivada de esta función veremos que si nos ubicamos a la izquierda o a la derecha del mínimo y progresivamente nos acercamos a este, la magnitud de la derivada disminuye hasta que en el mínimo esta derivada alcanza el valor más pequeño posible: 0.

El gradiente descendente aprovecha este principio para encontrar iterativamente el valor de la variable independiente que permite minimizar la función

Actualización iterativa

Para lograr lo anterior el valor de la variable independiente se actualiza iterativamente, y en cada iteración este valor actualizado es el resultado de restar al valor original la derivada de la función multiplicada por un parámetro conocido como la tasa de aprendizaje.

La ventaja del algoritmo del Gradiente Descendente radica en que podemos escoger el valor inicial de la variable $x$ de forma aleatoria y, tras la ejecución del algoritmo, lograremos obtener el valor correcto del mínimo de la función de interés. Claro está, siempre y cuando escojamos correctamente el número de iteraciones y la tasa de aprendizaje.

Efecto del número de iteraciones y de la tasa de aprendizaje

La convergencia del algoritmo del Gradiente Descendente, es decir lograr que tras un cierto número de iteraciones el valor calculado para el mínimo se acerque cada vez más al valor teórico, depende precisamente de dos hiperparámetros del algoritmo: el número de iteraciones y la tasa de aprendizaje.

Si el número de iteraciones es insuficiente, tras la ejecución el algoritmo no alcanzará a llegar a ese mínimo teórico. Por otra parte, si escogemos un valor inadecuado de la tasa de aprendizaje podemos tener dos comportamientos:

En últimas, al momento de usar el algoritmo tenemos que encontrar (como programadores del mismo) el mejor compromiso entre el número de iteraciones y la tasa de aprendizaje para garantizar su convergencia.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Acabamos de ver los elementos fundamentales del algoritmo del Gradiente Descendente, que en esencia es un algoritmo de optimización, pues permite minimizar una función de forma iterativa, para lo cual necesitamos únicamente definir los hiperparámetros tasa de aprendizaje y número de iteraciones. Esos aspectos resultarán esenciales más adelante cuando hablemos del proceso de entrenamiento de los diferentes modelos de Deep Learning.

En la próxima lección veremos entonces cómo usar este algoritmo del Gradiente Descendente para implementar el modelo más simple del Machine Learning: la Regresión Lineal.

Ver todas las lecciones de este curso