Deep Learning dauert mehrere Wochen oder länger, ohne einen PC mit GPU zu lernen, und es ist schwierig, es einfach auszuprobieren. Darüber hinaus ist die Tatsache, dass die Anzahl der Trainingsdaten häufig Zehntausende oder mehr beträgt, ein weiterer Faktor, der die Messlatte höher legt. Daher werden wir dieses Mal eine Methode zum Lernen mit einem PC ohne GPU und einer kleinen Anzahl von Daten vorstellen.
Es gibt eine Methode namens Transfer Learning [^ 1], um diese Probleme zu lösen. Transferlernen ist eine Methode, um nur einen Teil des Netzwerks zu lernen, der durch ein anderes Problem wie ImageNet gelernt wurde. Es wurden verschiedene Methoden entwickelt, aber was in der Praxis wichtig ist, ist, dass sie oft gut funktionieren, selbst wenn sie auf ein anderes Bildklassifizierungsproblem umgeleitet werden. [^ 2] (Beispiel: Klassifizierung von Gras und Vögeln, Gesichtserkennung, emotionales Urteilsvermögen usw.)
Es hat auch die folgenden Vorteile, so dass es ein wirksames Mittel ist, wenn Sie sich frei fühlen möchten, es zu versuchen.
Es gibt verschiedene Methoden, aber kürzlich habe ich die folgende Methode verwendet.
Hinweis) Bitte beachten Sie, dass etwa 30% beim Sammeln per Google-Bildersuche falsch sind.
Indem Sie Deep Learning nur dort einsetzen, wo es in einen niedrigdimensionalen Raum wie diesen fällt, Es kann durch eine andere Hochgeschwindigkeits-Lernmethode ohne zeitaufwändiges Lernen im Netzwerk gelöst werden, sodass es auch auf einem PC ohne GPU gelöst werden kann.
Ich habe versucht, das Problem der Klassifizierung eines bestimmten Anime-Charakters mit den folgenden 3 Mustern zu lösen. A) Ein einfaches CNN (32x32x3), das hauptsächlich im Tutorial erscheint B). ResNet-50-Schicht (32x32x3, ich denke, dies wird hauptsächlich für aktuelle Klassifizierungsprobleme verwendet) C) ResNet-50-Schicht (erlerntes Netzwerk) + SVM Die richtige Antwortrate war A) 94,33%, B) 94,57%, C) 93,83%. Das Ergebnis ist fast das gleiche wie beim Lösen mit reinem CNN. Hinweis) Es scheint, dass ich beim Erstellen der Trainingsdaten einige Fehler gemacht habe, daher habe ich mich gefragt, ob eine ernsthafte Person die Leistung ein wenig weiter verbessern kann.
Es gibt einen Code, der die Methoden 3 und 4 beschreibt. Ich bin froh, wenn Sie es als Referenz verwenden können.
Wir haben eine Methode namens Transfer Learning eingeführt, die ohne Transfer-Lernen mit einem PC mit GPU eine einigermaßen gute Leistung erzielen kann. Ich denke, es hängt von der Anwendung ab, aber diese Methode kann auch auf einem PC ohne GPU klassifiziert werden. Warum also nicht mal ausprobieren?
References
Recommended Posts