Reducción de la pérdida: Descenso de gradientes

El diagrama de enfoque iterativo (Figura 1) contenía un cuadro verde con afirmaciones sin fundamento llamado "Actualizar parámetros". Ahora reemplazaremos esa solución algorítmica mágica por algo más sustancial.

Supón que tuviéramos el tiempo y los recursos de cómputo para calcular la pérdida de todos los valores posibles de \(w_1\). Para el tipo de problemas de regresión que hemos estado examinando, la representación resultante de pérdida frente a \(w_1\) siempre será convexa. En otras palabras, la representación siempre tendrá forma de tazón, como la siguiente:

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 2. Los problemas de regresión producen gráficas de pérdida convexa vs. pesos.

 

Los problemas convexos tienen un solo mínimo, es decir, un solo lugar en el que la pendiente es exactamente 0. Ese mínimo es donde converge la función de pérdida.

Calcular la función de pérdida para cada valor concebible de \(w_1\) en todo el conjunto de datos sería una manera ineficaz de buscar el punto de convergencia. Examinemos un mecanismo más útil, muy popular en el aprendizaje automático, denominado descenso de gradientes.

La primera etapa en el descenso de gradientes es elegir un valor de inicio (un punto de partida) para \(w_1\). El punto de partida no es muy importante; por lo tanto, muchos algoritmos simplemente establecen \(w_1\) en 0 o eligen un valor al azar. En la siguiente figura, se muestra que elegimos un punto de partida levemente mayor que 0.

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 3. Un punto de partida para el descenso de gradientes.

Luego, el algoritmo de descenso de gradientes calcula la gradiente de la curva de pérdida en el punto de partida. En resumen, una gradiente es un vector de derivadas parciales; indica por dónde es más cerca o más lejos. Ten en cuenta que la gradiente de pérdida con respecto a un solo peso (como en la Figura 3) es equivalente a la derivada.

Ten en cuenta que la gradiente es un vector, de manera que tiene las dos características siguientes:

  • una dirección
  • una magnitud

La gradiente siempre apunta en la dirección del aumento más empinado de la función de pérdida. El algoritmo de descenso de gradientes toma un paso en dirección de la gradiente negativa para reducir la pérdida lo más rápido posible.

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 4. El descenso de gradientes se basa en gradientes negativas.

Para determinar el siguiente punto a lo largo de la curva de la función de pérdida, el algoritmo de descenso de gradientes agrega alguna fracción de la magnitud de la gradiente al punto de partida, como se muestra en la siguiente figura:

Un segundo punto en la curva con forma de U, pero un poco más cerca del punto mínimo.

Figura 5. Un paso de la gradiente nos mueve hacia el siguiente punto en la curva de pérdida.

Luego, el descenso de gradientes repite este proceso y se acerca cada vez más al mínimo.