Reducción de la pérdida: Descenso de gradientes estocástico

En el descenso de gradientes, un lote es el conjunto de ejemplos que usas para calcular la gradiente en una sola iteración de entrenamiento. Hasta ahora, suponemos que el lote es el conjunto de datos completo. Cuando se trabaja a la escala de Google, los conjuntos de datos suelen contener miles de millones o incluso cientos de miles de millones de ejemplos. Además, los conjuntos de datos de Google suelen contener enormes cantidades de atributos. En consecuencia, un lote puede ser enorme. Un lote muy grande puede causar que incluso una sola iteración tarde mucho tiempo en calcularse.

Es probable que un conjunto de datos grande con ejemplos muestreados al azar contenga datos redundantes. De hecho, la redundancia se vuelve más probable a medida que aumenta el tamaño del lote. Un poco de redundancia puede ser útil para atenuar los gradientes ruidosos, pero los lotes enormes tienden a no generar un valor mucho más predictivo que los lotes grandes.

¿Y si pudiéramos obtener la gradiente correcta en promedio con mucho menos cómputo? Si elegimos ejemplos al azar de nuestro conjunto de datos, podríamos estimar (si bien de manera ruidosa) un promedio grande de uno mucho más pequeño. El descenso de gradientes estocástico (SGD) lleva esta idea al extremo: usa un solo ejemplo (un tamaño de lote de 1) por iteración. Cuando se dan suficientes iteraciones, el SGD funciona, pero es muy ruidoso. El término "estocástico" indica que el único ejemplo que comprende cada lote se elige al azar.

El descenso de gradientes estocástico de minilote (SGD de minilote) es un compromiso entre la iteración de lote completo y el SGD. Por lo general, un minilote tiene entre 10 y 1,000 ejemplos, elegidos al azar. El SGD de minilote reduce la cantidad de ruido en el SGD, pero sigue siendo más eficiente que el lote completo.

Para simplificar la explicación, nos enfocamos en el descenso de gradientes de un solo atributo. Te garantizamos que el descenso de gradientes también funciona con conjuntos de atributos que contienen varios atributos.