¿El descenso de gradiente de lote completo, con potencia de computadora ilimitada, es siempre mejor que el descenso de gradiente de mini lote?

Si interpreto “mejor” en su pregunta como “convergiendo más rápidamente y / o a mínimos mejores”, entonces hace una pregunta interesante y bien planteada para la cual la literatura de aprendizaje automático tiene algunas respuestas. Su idea de que el gradiente “verdadero” de lote completo sería necesariamente mejor tiene sentido intuitivo a primera vista. Y desde una perspectiva de HPC, sería emocionante si fuera cierto, porque aumentar el tamaño del lote en una sola unidad de hardware es trivial hasta que se quede sin memoria. O cuando se distribuye un lote a través de múltiples unidades de hardware: dispersar el lote entre unidades de hardware, hacer cálculos separados pero idénticos, y reunir el gradiente a través de una única reducción total es conceptualmente simple, implica relativamente poca comunicación y se ajusta bien en el entorno moderno de MPI en clústeres. Sin embargo, hay razones profundas para usar minibatches.

En el caso de optimizar las funciones convexas, es bien sabido que el uso de un tamaño de lote b en lugar de un tamaño de lote de 1 para las iteraciones T conduce a b-veces más cómputo y una aceleración de [math] \ sqrt {b} [/ math] veces en convergencia A pesar de esta disminución en la “eficiencia” de cada pieza de datos que se usa, todavía tiene sentido aumentar el tamaño del lote hasta cierto punto porque el cálculo de SIMD es trivialmente paralelo y relativamente rápido en hardware moderno, especialmente GPU. Para una discusión matizada sobre esta compensación de eficiencia / paralelismo (y referencias a la teoría de la convergencia), consulte este documento.

En el caso de las funciones no convexas, tenemos la preocupación adicional de que no todos los mínimos locales son igualmente deseables. Dos criterios para un mínimo “bueno” son el valor de pérdida (que por supuesto debería ser bajo), y también una curvatura baja en el espacio alrededor del mínimo (como puede imaginar, los mínimos agudos son menos estables ya que considera ejemplos que no están en su entrenamiento) conjunto). Resulta que los lotes grandes están relacionados con mínimos más nítidos, como se verifica empíricamente en experimentos realizados por un grupo HPC / ML. Su explicación para esto es: “Los métodos de lotes pequeños usan gradientes estocásticos para calcular los pasos, que son versiones ruidosas del verdadero gradiente ∇f (x). En las cuencas de los minimizadores afilados, cualquier ruido en el gradiente empujará la iteración fuera de la cuenca y alentará el movimiento hacia un minimizador más plano donde el ruido no provocará la salida de la cuenca “. Proponen algunas soluciones, como el aumento de datos, para abordar este problema, pero ninguna de ellas es especialmente convincente. Parece que este es un problema profundo, y espero que exista en algún lugar o que se descubra un teorema pesimista sobre este tema.

Si su objetivo es simplemente encontrar la solución óptima para una función de costo dada sin tener en cuenta los efectos del mundo real, como el ruido y las incertidumbres de los parámetros, entonces la respuesta es probablemente SÍ. Sin embargo, si el objetivo es el aprendizaje automático, la respuesta suele ser NO.

Algunos antecedentes: en ML, el objetivo real del aprendizaje es construir un modelo que capture la verdadera distribución de datos. Por lo general, esto se logra minimizando una función de costo, también conocida como “riesgo esperado”. La distribución subyacente es desconocida, por lo que tomamos muestras de la distribución para recopilar datos de capacitación y construir un “proxy” para nuestra función de costos, que es el “riesgo empírico”. El riesgo empírico es una aproximación al riesgo esperado. Minimizar el riesgo esperado conduce a la generalización, mientras que minimizar el riesgo empírico conduce a un ajuste excesivo. El punto clave a tener en cuenta es que los dos mínimos pueden no coincidir.

Ahora, si usamos un descenso de gradiente de lote completo (computacionalmente ineficiente pero suponiendo que eso no sea un problema), existe una alta probabilidad de que terminemos con un modelo que sobrepase los datos de entrenamiento pero que no se generalice bien. Por otro lado, los gradientes que usan un mini lote suelen ser más ruidosos, lo que conduce a una pobre convergencia a los mínimos locales. Sin embargo, este efecto es deseable para escapar de los mínimos locales del riesgo empírico y, en la práctica, a menudo conduce a modelos que generalizan bien a datos invisibles.

El problema con el descenso de gradiente de lote completo es que no tiene en cuenta posibles inexactitudes o ruido en sus datos. Aunque el descenso de gradiente de lote completo converge más rápidamente, puede conducir fácilmente a un sobreajuste y a una generalización deficiente.

Además, el descenso de gradiente de lote completo tiene la tendencia a atascarse en los mínimos locales de la función de decisión final. Tenga en cuenta que la convergencia a un mínimo global no está garantizada bajo los métodos de descenso de gradiente, pero el descenso de gradiente de mini lotes tiene una mejor oportunidad de salir de estos mínimos durante la optimización a través del proceso ruidoso.

More Interesting

¿Se puede utilizar la investigación en aprendizaje automático para complementar la epistemología?

¿Es realmente posible comenzar una carrera seria de IA / ML con el objetivo final de trabajar en un lugar como OpenAI, Google o DeepMind a través del autoestudio?

Visión por computadora: ¿Cuáles son algunos problemas de investigación abierta en la recuperación de imágenes basada en contenido?

¿Qué es la precisión?

¿McKinsey consideró el crecimiento del software de Machine Learning al predecir la escasez de habilidades analíticas en el documento técnico de Big Data?

¿Estudiar el aprendizaje automático y el aprendizaje profundo al mismo tiempo tendrá una buena o mala influencia en mi sistema de conocimiento?

Como estudiante de informática, estoy muy interesado en extraer datos de los mercados bursátiles. ¿Cómo puede ayudarme el aprendizaje automático / minería de datos?

¿Cuáles son algunos campos en los que las redes neuronales artificiales aún no se han utilizado?

¿Qué métodos de conjunto / aprendizaje automático pueden incorporar covariables que varían con el tiempo?

¿Cuáles son las aplicaciones prácticas del análisis de componentes principales?

¿Por qué el escalado es importante para la clasificación SVM lineal?

¿Los algoritmos subyacentes permiten a Shazam identificar una canción y Amazon Flow para identificar una imagen básicamente igual?

Cómo calcular el gradiente W en una red neuronal

¿Cómo agrega Quora el aprendizaje automático a su aplicación web?

¿El bosque aleatorio funciona con variables categóricas?