neural network - redes - Selección del tamaño de mini lote para la regresión de red neuronal
redes neuronales programacion (1)
Desde el tamaño del lote de Tradeoff contra el número de iteraciones para entrenar una red neuronal :
Desde Nitish Shirish Keskar, Dheevatsa Mudigere, Jorge Nocedal, Mikhail Smelyanskiy, Ping Tak Peter Tang. En entrenamiento de lotes grandes para aprendizaje profundo: Generalization Gap y Sharp Minima. https://arxiv.org/abs/1609.04836 :
El método de descenso de gradiente estocástico y sus variantes son algoritmos de elección para muchas tareas de aprendizaje profundo. Estos métodos operan en un régimen de lotes pequeños donde una fracción de los datos de entrenamiento, usualmente 32--512 puntos de datos, se muestrean para calcular una aproximación al gradiente. Se ha observado en la práctica que cuando se usa un lote más grande, hay una degradación significativa en la calidad del modelo, medida por su capacidad de generalización. Ha habido algunos intentos de investigar la causa de esta caída de la generalización en el régimen de grandes lotes, sin embargo, la respuesta precisa para este fenómeno es, hasta ahora, desconocida. En este artículo, presentamos una amplia evidencia numérica que respalda la opinión de que los métodos de lotes grandes tienden a converger en minimizadores nítidos de las funciones de entrenamiento y prueba, y que los mínimos pronunciados conducen a una generalización más pobre. Por el contrario, los métodos de lotes pequeños convergen consistentemente en minimizadores planos, y nuestros experimentos respaldan una opinión común de que esto se debe al ruido inherente en la estimación del gradiente. También discutimos varias estrategias empíricas que ayudan a los métodos de lotes grandes a eliminar la brecha de generalización y concluir con un conjunto de ideas futuras de investigación y preguntas abiertas.
[...]
La falta de capacidad de generalización se debe al hecho de que los métodos de lotes grandes tienden a converger a minimizadores nítidos de la función de entrenamiento . Estos minimizadores se caracterizan por grandes autovalores positivos en $ / nabla ^ 2 f (x) $ y tienden a generalizarse menos. Por el contrario, los métodos de lotes pequeños convergen en minimizadores planos caracterizados por valores propios positivos pequeños de $ / nabla ^ 2 f (x) $. Hemos observado que el panorama de la función de pérdida de las redes neuronales profundas es tal que los métodos de lotes grandes son atraídos casi invariablemente por regiones con mínimos definidos y que, a diferencia de los métodos de lotes pequeños, no pueden escapar de las cuencas de estos minimizadores.
[...]
Además, algunas buenas ideas de Ian Goodfellow respondiendo a por qué no usan todo el conjunto de entrenamiento para calcular el gradiente. en Quora:
El tamaño de la tasa de aprendizaje está limitado principalmente por factores como la curva de la función de costo. Puede pensar en el descenso de gradiente como una aproximación lineal a la función de costo, y luego avanzar cuesta abajo a lo largo de ese costo aproximado. Si la función de costo es altamente no lineal (altamente curva), entonces la aproximación no será muy buena para muy lejos, por lo que solo los pequeños pasos son seguros. Puede leer más sobre esto en el Capítulo 4 del libro de texto de aprendizaje profundo, en computación numérica: http://www.deeplearningbook.org/contents/numerical.html
Cuando pones m ejemplos en un minibatch, necesitas hacer O (m) cálculo y usar O (m) memoria, pero reduces la cantidad de incertidumbre en el gradiente por un factor de solo O (sqrt (m)). En otras palabras, hay rendimientos marginales decrecientes para poner más ejemplos en el minibatch. Puede leer más sobre esto en el Capítulo 8 del libro de texto de aprendizaje profundo, sobre algoritmos de optimización para el aprendizaje profundo: http://www.deeplearningbook.org/contents/optimization.html
Además, si lo piensas, incluso usar todo el conjunto de entrenamiento realmente no te da el verdadero gradiente. El gradiente real sería el gradiente esperado con la expectativa tomada sobre todos los ejemplos posibles, ponderado por la distribución de generación de datos. Usar todo el conjunto de entrenamiento es simplemente usar un tamaño de minibatch muy grande, donde el tamaño de su minibatch está limitado por la cantidad que gasta en la recopilación de datos, en lugar de la cantidad que gasta en el cálculo.
Estoy haciendo una regresión de red neuronal con 4 características. ¿Cómo determino el tamaño del mini lote para mi problema? Veo que la gente usa un tamaño de lote de 100 ~ 1000 para visión artificial con 32 * 32 * 3 características para cada imagen, ¿eso significa que debo usar un tamaño de lote de 1 millón? Tengo miles de millones de datos y decenas de GB de memoria, así que no es un requisito difícil para mí no hacer eso.
También observé que el uso de un mini lote con tamaño ~ 1000 hace que la convergencia sea mucho más rápida que el tamaño del lote de 1 millón. Pensé que debería ser al revés, ya que el gradiente calculado con un tamaño de lote más grande es el más representativo del gradiente de la muestra completa? ¿Por qué el uso de mini lotes hace que la convergencia sea más rápida?