¿Cuál es el tamaño mínimo recomendado del conjunto de datos de entrenamiento para entrenar una red neuronal profunda?

La complejidad de una red neuronal se puede expresar a través del número de parámetros. En el caso de las redes neuronales profundas, este número puede estar en el rango de millones, decenas de millones y, en algunos casos, incluso cientos de millones. Llamemos a este número P.

Sontag (1998) muestra las dimensiones de VC como funciones de P para diferentes tipos de redes y diferentes funciones de activación, si necesita un límite matemático estricto.

En la práctica, una buena cantidad de datos necesarios para entrenar un modelo profundo es más , ya que desea estar seguro de la capacidad del modelo para generalizar. Una buena regla general es al menos [matemática] P ^ 2 [/ matemática], pero si tiene 10000 pesos ya es un problema …

El uso de una red neuronal profunda para la clasificación es ciertamente posible incluso si no tiene 10 ^ 12 puntos de datos para el entrenamiento, pero en ese caso no tiene las mismas garantías que con SVM. Esta es una de las razones por las cuales la evaluación de redes profundas sigue siendo un proceso empírico y todo se desarrolla a través de experimentos.

Si es posible, las personas usan todos los datos que pueden obtener, siempre que sigan siendo válidos en general.

Hay varios resultados interesantes, por ejemplo, la comparación entre sigmoide y tanh para la activación y el análisis de modelos secuenciales: http://www.mit.edu/~esontag/FTP_…

Suficientemente grande para que pueda submuestrear (con reemplazo) los datos sin pérdida de puntaje F1. Lo grande que sea dependerá de los hiperparámetros del diseño de su red y la dificultad del problema de aprendizaje para esa red. Por lo tanto, una respuesta puramente numérica estaría fuera de lugar.

Aquí hay una ilustración que no es cuantitativa, pero creo que es representativa de una tarea de reconocimiento de objetos muy simple.

Si la tarea es lo suficientemente simple, como segmentar una imagen simple de varias monedas sobre una mesa …

Usar una CNN estándar y entrenar con una sola imagen en realidad puede ser suficiente. Deberá dividir la imagen de entrenamiento en una cuadrícula regular de mosaicos (quizás 8 × 8) y volver a muestrear esos mosaicos a través de sus límites (produciendo quizás 7 × 8 + 7 × 8 más mosaicos superpuestos), luego rotará y volteará todas esas fichas para aumentar el tamaño del conjunto de trenes (176 fichas * cuatro rotaciones de 90 grados * dos volteretas = 1408 fichas de entrenamiento, derivadas de una imagen original como la de arriba).

En mi experiencia, esa cantidad de datos de entrenamiento debería ser suficiente para segmentar una imagen de prueba de monedas, suponiendo que solo cambien las posiciones de las monedas, pero se aplican las mismas condiciones de referencia: los mismos tamaños de monedas, ángulo de cámara, densidad de monedas, textura de fondo, separación física e iluminación.

Si luego desea cambiar las condiciones de referencia mencionadas anteriormente, deberá agregar una o más imágenes de entrenamiento para cada variación, que se muestreará de manera comparable. Y se necesitará más si el cambio en la línea de base es compuesto (nuevos tamaños de monedas) o complejo (un cambio en la iluminación, el ángulo de la cámara o las monedas que se ocluyen).

Por supuesto, si se desea una tarea aún más compleja, como reconocer el valor de la moneda, necesitará aún más imágenes de entrenamiento para cubrir el aumento en el número de variaciones. ¿Cuántos? No creo que sea decidible dado lo poco que sabemos de 1) la información necesaria para decidir, 2) la información presente en cada imagen de entrenamiento y 3) la eficiencia de las redes profundas.

Recomendaría la sección “Generalización” en Una breve descripción general de la publicación de blog Deep Learning que está relacionada con su pregunta. Parece que hay una relación entre el tamaño del modelo y el tamaño del conjunto de entrenamiento. Sin embargo, supongo que la realidad es mucho más compleja que alguna regla general de este tipo.

More Interesting

¿Cuáles son algunos algoritmos de aprendizaje automático de los que siempre debe tener una sólida comprensión y por qué?

¿Necesito aprender codificación para trabajar en IA? Además de la codificación, ¿hay otras áreas dentro del campo que uno pueda explorar sin ser necesariamente un codificador?

¿Cómo deberían pensar los investigadores del aprendizaje automático sobre pasar a un rol de aprendizaje automático aplicado en la industria?

¿Cuál es la clave que el aprendizaje profundo contribuyó al aprendizaje de refuerzo (RL) que antes no era posible sin redes neuronales (ANN)?

¿Cómo juega el póker DeepStack, el algoritmo de IA actualmente publicado, el póker?

¿Qué se siente ser un programador de inteligencia artificial (IA) para videojuegos?

Con la presencia de motores de ajedrez avanzados y redes neuronales, ¿pueden los humanos aprender a vencer a las computadoras?

¿Puede la inteligencia artificial ser omnisciente?

¿Cuáles son los problemas de investigación abierta en la simulación basada en agentes?

Si realmente no podemos saber si otro humano está consciente, entonces ¿cómo podremos saber si una IA se vuelve consciente?

¿Es posible hacer el reconocimiento de voz de otras maneras aparte del reconocimiento de patrones, o podemos hacerlo mejor? Si la respuesta es sí, ¿cómo?

Cómo entrenar una red neuronal para una transferencia de estilo rápida

¿Hay IA para aprender a leer los labios?

¿Crees que un asistente personal de inteligencia artificial puede resolver problemas fundamentales de productividad?

¿La supercomputadora 'Watson' realmente lo sabe todo?