Estoy comenzando un proyecto donde la tarea es identificar los tipos de zapatillas a partir de imágenes. Actualmente estoy leyendo las implementaciones de TensorFlow y Torch . Mi pregunta es: ¿cuántas imágenes por clase se requieren para alcanzar un rendimiento de clasificación razonable?
12
Respuestas:
De ¿Cuántos ejemplos de entrenamiento son muy pocos al entrenar una red neuronal? en CV:
Realmente depende de su conjunto de datos y arquitectura de red. Una regla general que he leído (2) fueron unos pocos miles de muestras por clase para que la red neuronal comenzara a funcionar muy bien. En la práctica, la gente trata de ver.
Una buena manera de evaluar aproximadamente hasta qué punto podría ser beneficioso tener más muestras de entrenamiento es trazar el rendimiento de la red neuronal en función del tamaño del conjunto de entrenamiento, por ejemplo, de (1):
(2) Cireşan, Dan C., Ueli Meier y Jürgen Schmidhuber. "Transferir el aprendizaje de caracteres latinos y chinos con redes neuronales profundas". En The 2012 International Joint Conference on Neural Networks (IJCNN), págs. 1-6. IEEE, 2012. https://scholar.google.com/scholar?cluster=7452424507909578812&hl=es&as_sdt=0,22 ; http://people.idsia.ch/~ciresan/data/ijcnn2012_v9.pdf :
fuente
El mejor enfoque es recopilar tantos datos como sea posible. Luego comience con el proyecto y haga un modelo de datos.
Ahora puede evaluar su modelo para ver si tiene un sesgo alto o una varianza alta.
Alta varianza : en esta situación, verá que el error de validación cruzada es mayor que el error de entrenamiento después de la convergencia.
Alto sesgo : en esta situación, el error de validación cruzada es ligeramente mayor que el error de entrenamiento, que en sí mismo es alto cuando se traza contra el tamaño de los datos de entrenamiento. y errores de trama.
Si ve que su modelo tiene una alta varianza (sobreajuste), agregar más datos generalmente ayudará en contraste con el modelo de alto sesgo (falta de ajuste) donde agregar nuevos datos de entrenamiento no ayuda.
Además, por clase, debe intentar obtener el mismo número de imágenes; de lo contrario, los conjuntos de datos pueden quedar sesgados (más de un tipo).
También sugiero que si está utilizando TensorFlow , lea más sobre el Clasificador de imágenes INCEPTION de GOOGLE . Ya es un clasificador entrenado en la base de datos de imágenes de Google y puede usarlo para sus imágenes, de esa manera los requisitos para la cantidad de imágenes se reducen drásticamente.
fuente