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.
- ¿Cuán verdadera es la frase '95% de los sofisticados algoritmos de 'aprendizaje automático' son lanzados a los datos por alguien que solo tiene la comprensión más superficial de lo que realmente están haciendo '?
- ¿Cuáles son las mejores herramientas para la minería de datos en Internet? ¿Qué debo usar para configurar un evento automático / alerta de tendencia?
- ¿Cuáles son las mejores empresas de minería de datos?
- ¿Cuál es una buena manera de entender las dos fórmulas con respecto a este modelo gráfico de probabilidad dado?
- ¿Cuál es una buena fuente para aprender la optimización convexa?