¿Cuál es la diferencia entre el entrenamiento por lotes, en línea y mini-lote en redes neuronales? ¿Cuál debo usar para un conjunto de datos de pequeño a mediano tamaño con fines de predicción?

Permítanme comenzar aclarando que la aplicación de la capacitación en línea en el aprendizaje automático a menudo se encuentra en diferentes dominios de los que usaríamos en la capacitación por lotes (o mini-lote).

La capacitación en línea es donde los datos se proporcionan de forma secuencial pero no completa, lo que significa que algunos de los datos se omiten. Si bien podemos tener razones teóricas para hacer esto, que yo sepa, la capacitación en línea es más común cuando el conjunto de datos es demasiado grande para ser manejado / calculado con todo de una vez. Como resultado, separamos los cálculos para manejar el tamaño de los datos. El término en línea, que yo sepa, proviene de algunas aplicaciones anteriores (y aún muy relevantes) en las que no “dividimos” los datos debido a restricciones técnicas (almacenamiento / complejidad computacional) sino porque los datos en su naturaleza se obtuvieron solo de forma secuencial e incompleta ( los datos del mercado de valores son un ejemplo muy común)

Por otro lado, la capacitación por lotes y mini lotes es cómo describimos los cálculos en los que es posible procesar el conjunto de datos por completo (de todos modos, en general). Se puede pensar que el mini-lote es la generalización del procesamiento por lotes de los datos donde está configurando el tamaño de su mini lote para que sea el tamaño del conjunto de datos. Tanto en mini-lotes como en lotes, está proporcionando una parte del conjunto de datos durante cada iteración (donde generalmente se calculan las pérdidas / gradientes y se produce la retropropagación). Cuando usamos el término “procesamiento por lotes”, generalmente estamos afirmando que esta porción es el 100% del conjunto de datos, mientras que en el minibatching podemos proporcionar el 10% (una heurística que es apropiada en algunos dominios) del conjunto de datos durante cada iteración.

Un resultado de mi respuesta es que también debería abordar dos palabras a menudo confundidas en “iteración” y “época”. Una época se refiere a una pasada completa de los datos a través del sistema / algoritmo, mientras que una iteración se refiere a una pasada de datos después de la cual se calculan los gradientes / pérdidas y se produce la propagación hacia atrás. Cuando usamos el entrenamiento por lotes, estos términos son equivalentes, sin embargo, cuando usamos minibatches tendremos k iteraciones por época, donde k es la relación del tamaño del conjunto de datos al tamaño del minibatch (o el límite máximo de esta relación en la mayoría de los casos, pero esto es un simple tecnicismo).

Como resultado, no existe un proceso “óptimo” para la predicción, incluso con la “restricción” que ha dado en el conjunto de datos. Si está pronosticando futuros precios de acciones de, digamos, una acción (lo que yo diría que es un pequeño conjunto de datos y probablemente esté mejor servido, incluida la información inferencial obtenida de las tendencias en otras acciones similares (que podría elegir o definir manualmente mediante un esquema de métrica / clasificación de similitud como ejemplo)) querrá capacitación en línea por necesidad. Si puede hacer un pase completo sobre todos los datos, entonces generalmente no hay necesidad de capacitación en línea a menos que sea una base teórica para ello. En este caso, recomendaría usar el entrenamiento por lotes y ajustar un parámetro de tamaño de minibatch una vez que su modelo esté casi completo o usar un valor heurístico para el tamaño de minibatch que encuentre en los documentos de su tema (si existe y se nota en la publicación, ya que probablemente no valga la pena buscarlo demasiado extensamente inicialmente).

Finalmente, le recomendaré que se abstenga de usar los términos “pequeño” y “medio” para describir un conjunto de datos, ya que sin al menos un dominio de aprendizaje automático para proporcionar contexto, esto no tiene ningún sentido. Como alguien en PNL, puedo encontrar un conjunto de datos de unos pocos cientos de documentos para ser “de tamaño mediano” para algunas tareas pero para ser ridículamente “pequeño” para otras. Si tuviera que decir identificar cada token como una entrada (digamos 10k palabras por documento y 200 documentos), esto es solo 2 millones de entrada. Para alguien que dice en CV que está trabajando con ImageNet, que es aproximadamente 15 millones de imágenes, esto es una broma completa (y no olvidemos que las imágenes no son entradas para la mayoría de los algoritmos, pero los píxeles individuales sí lo son (o alguna combinación si se habla de cosas). como convolución, pero no nos dejemos atrapar por esto) y si decimos asumir que tenemos una imagen de 784 × 784 píxeles, esto es 784 ^ 2 * 15 millones de entradas ingenuamente, que son aproximadamente 10 mil millones).

Muchas gracias por compartir tu conocimiento conmigo.
Permítanme aclarar el propósito de mi proyecto de investigación subyacente: mi objetivo es pronosticar las ventas de automóviles de pasajeros (variable objetivo) con seis neuronas de entrada, utilizando una red neuronal (MLP) con una capa oculta y cuatro neuronas ocultas.
Las neuronas de entrada son básicamente indicadores económicos para los cuales pude recopilar datos mensuales desde 1998 hasta junio de 2017.
Teniendo en cuenta que el conjunto de datos subyacente puede ser ridículamente pequeño, ¿recomienda usar capacitación por lotes o mini lotes? ¿Hace alguna diferencia?

¡Sería genial aprender más de tu experiencia!

Saludos, Berthold

More Interesting

¿Cómo se puede aplicar el aprendizaje automático al póker?

¿Cómo 'Diagonal BiLSTM' calcula los estados diagonales a la vez y qué es diagonal?

¿Ha publicado Factual.com algún trabajo de investigación (o algún asunto técnico importante) sobre las técnicas de aprendizaje automático que utilizan para rastrear y extraer de la web?

¿Qué técnicas de aprendizaje automático debo usar para estratificar y spofing?

¿Cómo puede un estudiante de segundo año de Informática llegar al estudio del aprendizaje automático? ¿Cómo comienza uno?

¿Cuál es la diferencia entre un enfoque de bandido multi-armado y el control estocástico?

¿R necesita una herramienta de flujo de trabajo visual como RapidMiner y Knime?

¿Cuál es la diferencia entre la regularización y el sesgo inductivo en el aprendizaje automático?

¿Qué trabajo se ha hecho para aplicar la detección de nuevos eventos a eventos sociales en los que los usuarios estarían interesados ​​(es decir, conciertos)?

¿Por qué usar Kohonen SOMs sobre K-means, o viceversa?

¿Cómo se deriva la fórmula lagrangiana para resolver la máquina de vectores de soporte?

¿Qué se considera estado de arte para la traducción automática neuronal?

¿Hay alguna manera de determinar o reducir las opciones con las que uno debería experimentar para mejorar (por ejemplo) una red neuronal clasificadora de imágenes binarias?

¿Por qué la disminución de la tasa de aprendizaje también aumenta la tasa de sobreajuste en una red neuronal?

¿Qué significa 'Bagging reduce la varianza mientras se conserva el sesgo'?