William Arevalo Data Scientist & Full-Stack Developer

About Me Projects Blog


Reducción de la pérdida: descenso de gradiente estocástico

Machine LearningMay 16, 2018

En el descenso de gradientes, un lote es la cantidad total de ejemplos que usas para calcular la gradiente en una sola iteración. Hasta ahora, hemos supuesto que el lote era el conjunto de datos completo. Al trabajar a la escala de Google, los conjuntos de datos suelen tener miles de millones o incluso cientos de miles de millones de ejemplos. Además, los conjuntos de datos de Google con frecuencia contienen inmensas cantidades de atributos. En consecuencia, un lote puede ser enorme. Un lote muy grande puede causar que incluso una sola iteración tome un tiempo muy prolongado para 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 las gradientes inconsistentes, pero los lotes enormes tienden a no tener un valor mucho más predictivo que los lotes grandes.

¿Cómo sería si pudiéramos obtener la gradiente correcta en promedio con mucho menos cómputo? Al elegir ejemplos al azar de nuestro conjunto de datos, podríamos estimar (si bien de manera inconsistente) un promedio grande de otro mucho más pequeño. El descenso de gradiente estocástico (SGD) lleva esta idea al extremo: usa un solo ejemplo (un tamaño del lote de 1) por iteración. Cuando se dan demasiadas iteraciones, el SGD funciona, pero es muy inconsistente. El término “estocástico” indica que el ejemplo único que compone cada lote se elige al azar.

El descenso de gradiente estocástico de minilote (SGD de minilote) es un equilibrio entre la iteración de lote completo y el SGD. Un minilote generalmente tiene entre 10 y 1,000 ejemplos, elegidos al azar. El SGD de minilote reduce la cantidad de inconsistencia en el SGD, pero sigue siendo más eficaz que el lote completo.

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



photo

William Arevalo

Data Scientist • Bogotá, CO • willarevalo.developer@gmail.com

Passionate Data Scientist | Scrum amateur | Pentester | Services Admin | Calisthenics devotee

I always keep in constant learning and evolution
I don't stop.