Ich starte ein Projekt, bei dem es darum geht, Sneaker-Typen anhand von Bildern zu identifizieren. Ich lese gerade in TensorFlow- und Torch- Implementierungen. Meine Frage ist: Wie viele Bilder pro Klasse sind erforderlich, um eine angemessene Klassifizierungsleistung zu erzielen?
11
Antworten:
Aus Wie wenige Trainingsbeispiele sind zu wenige beim Training eines neuronalen Netzwerks? im Lebenslauf:
Dies hängt wirklich von Ihrem Datensatz und der Netzwerkarchitektur ab. Eine Faustregel, die ich gelesen habe (2), war, dass einige tausend Proben pro Klasse für das neuronale Netzwerk sehr gut funktionieren. In der Praxis versuchen die Leute zu sehen.
Eine gute Möglichkeit, grob zu beurteilen, inwieweit es vorteilhaft sein könnte, mehr Trainingsmuster zu haben, besteht darin, die Leistung des neuronalen Netzwerks anhand der Größe des Trainingssatzes zu zeichnen, z. B. aus (1):
(2) Cireşan, Dan C., Ueli Meier und Jürgen Schmidhuber. "Transferlernen für lateinische und chinesische Schriftzeichen mit tiefen neuronalen Netzen." In der 2012 International Joint Conference on Neural Networks (IJCNN), S. 1-6. IEEE, 2012. https://scholar.google.com/scholar?cluster=7452424507909578812&hl=de&as_sdt=0,22 ; http://people.idsia.ch/~ciresan/data/ijcnn2012_v9.pdf :
quelle
Der beste Ansatz ist, so viele Daten wie möglich zu sammeln. Beginnen Sie dann mit dem Projekt und erstellen Sie ein Datenmodell.
Jetzt können Sie Ihr Modell bewerten, um festzustellen, ob es eine hohe Vorspannung oder eine hohe Varianz aufweist.
Hohe Varianz : In dieser Situation werden Sie feststellen, dass der Kreuzvalidierungsfehler nach der Konvergenz höher ist als der Trainingsfehler. Es gibt eine erhebliche Lücke, wenn Sie dieselbe gegen die Trainingsdatengröße zeichnen.
Hohe Verzerrung : In dieser Situation ist der Kreuzvalidierungsfehler geringfügig höher als der Trainingsfehler, der selbst hoch ist, wenn er gegen die Trainingsdatengröße aufgetragen wird. Durch das Plotten gegen die Trainingsdatengröße können Sie Teilmengen Ihrer Trainingsdaten eingeben und die Teilmengengröße weiter erhöhen und Plotfehler.
Wenn Sie feststellen, dass Ihr Modell eine hohe Varianz (Überanpassung) aufweist, hilft das Hinzufügen weiterer Daten normalerweise im Gegensatz zum Modell mit hoher Abweichung (Unteranpassung), bei dem das Hinzufügen neuer Trainingsdaten nicht hilft.
Außerdem müssen Sie pro Klasse versuchen, die gleiche Anzahl von Bildern zu erhalten, da sonst Datensätze verzerrt werden können (mehr von einer Art).
Wenn Sie TensorFlow verwenden , empfehlen wir Ihnen , mehr über den INCEPTION Image Classifier von GOOGLE zu erfahren . Es ist bereits ein ausgebildeter Klassifikator in der Bilddatenbank von Google und Sie können ihn für Ihre Bilder verwenden. Auf diese Weise sinken die Anforderungen an die Anzahl der Bilder drastisch.
quelle