Je démarre un projet où la tâche consiste à identifier les types de baskets à partir d'images. Je lis actuellement les implémentations de TensorFlow et Torch . Ma question est: combien d'images par classe sont nécessaires pour atteindre une performance de classification raisonnable?
12
Réponses:
De Combien d'exemples de formation est trop peu lors de la formation d'un réseau neuronal? sur CV:
Cela dépend vraiment de votre ensemble de données et de l'architecture réseau. Une règle de base que j'ai lue (2) était de quelques milliers d'échantillons par classe pour que le réseau neuronal commence à très bien fonctionner. Dans la pratique, les gens essaient de voir.
Une bonne façon d'évaluer approximativement dans quelle mesure il pourrait être avantageux d'avoir plus d'échantillons d'apprentissage est de tracer les performances du réseau neuronal en fonction de la taille de l'ensemble d'apprentissage, par exemple à partir de (1):
(2) Cireşan, Dan C., Ueli Meier et Jürgen Schmidhuber. "Transfert d'apprentissage pour les caractères latins et chinois avec des réseaux de neurones profonds." Dans The 2012 Joint Joint Conference on Neural Networks (IJCNN), pp. 1-6. IEEE, 2012. https://scholar.google.com/scholar?cluster=7452424507909578812&hl=en&as_sdt=0,22 ; http://people.idsia.ch/~ciresan/data/ijcnn2012_v9.pdf :
la source
La meilleure approche consiste à collecter autant de données que possible. Commencez ensuite avec le projet et créez un modèle de données.
Vous pouvez maintenant évaluer votre modèle pour voir s'il présente un biais élevé ou une variance élevée.
Variation élevée : dans cette situation, vous verrez que l'erreur de validation croisée est plus élevée que l'erreur de formation après la convergence.
Biais élevé : dans cette situation, l'erreur de validation croisée est légèrement supérieure à l'erreur de formation qui elle-même est élevée lorsqu'elle est tracée en fonction de la taille des données de formation. et tracer des erreurs.
Si vous voyez que votre modèle présente une variance élevée (surajustement), l'ajout de données aidera généralement contrairement au modèle à biais élevé (sous-ajustement) où l'ajout de nouvelles données d'entraînement n'aide pas.
Aussi par classe, vous devez essayer d'obtenir le même nombre d'images, sinon les jeux de données peuvent devenir asymétriques (plus d'un type).
Je suggère également si vous utilisez TensorFlow , en savoir plus sur le classificateur d' images INCEPTION de GOOGLE . Il est déjà classifié sur la base de données d'images de Google et vous pouvez l'utiliser pour vos images, de sorte que les exigences en termes de nombre d'images diminuent considérablement.
la source