[PYTHON] Tiefes Lernen, um ohne GPU zu beginnen

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.

Zielgruppe

Probleme mit tiefem Lernen

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.)

Vorteile des Transferlernens

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.

  1. Sammeln Sie die Bilder, die Sie klassifizieren möchten. (Bitte geben Sie Ihr Bestes, um zu sammeln)
  2. Schließen Sie das falsche Bild aus.
  3. Legen Sie das Bild mithilfe eines trainierten Netzwerks ohne die vollständig verbundene Ebene in einem niedrigdimensionalen Raum ab.
  4. Finden Sie die Beziehung zwischen dem niedrigdimensionalen Raum und der richtigen Antwort mit SVM [^ 3] und Gradientenverstärkung [^ 4].

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.

Numerisches Experiment

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.

Repository

Es gibt einen Code, der die Methoden 3 und 4 beschreibt. Ich bin froh, wenn Sie es als Referenz verwenden können.

Zusammenfassung

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

Tiefes Lernen, um ohne GPU zu beginnen
Starten Sie Deep Learning
Deep Learning Gaiden ~ GPU-Programmierung ~
Einführung in Deep Learning ~ Lernregeln ~
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Einführung in Deep Learning ~ Backpropagation ~
Einführung in das tiefe Lernen ~ Funktionsnäherung ~
Einführung in Deep Learning ~ Codierungsvorbereitung ~
Tiefes Lernen
Einführung in Deep Learning ~ Dropout Edition ~
Einführung in Deep Learning ~ Forward Propagation ~
Einführung in Deep Learning ~ CNN Experiment ~
Verbessertes Lernen, um von null bis tief zu lernen
Einführung in Deep Learning ~ Falten und Pooling ~
So studieren Sie den Deep Learning G-Test
Bildausrichtung: von SIFT bis Deep Learning
Deep Learning Memorandum
Python Deep Learning
Deep Learning × Python
Einführung in Deep Learning ~ Lokalisierungs- und Verlustfunktion ~
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Deep Learning / Cross Entropy
Erstes tiefes Lernen ~ Vorbereitung ~
Erstes tiefes Lernen ~ Lösung ~
[AI] Deep Metric Learning
Ich habe versucht, tief zu lernen
So führen Sie das Lernen mit SageMaker ohne Sitzungszeitlimit durch
Vorbereitung zum Starten von "Python Machine Learning Programming" (für macOS)
Django - Projekt starten ohne Projekt starten
Python: Deep Learning Tuning
[Deep Learning Association E-Qualifikation] Was tun, um zu erhalten?
Learning Deep Forest, ein neues Lerngerät, das mit DNN vergleichbar ist
Deep Learning Großtechnologie
Künstliche Intelligenz, maschinelles Lernen, tiefes Lernen zu implementieren und zu verstehen
Ich habe versucht, Dropout zu erklären
Einführung in das maschinelle Lernen
Eine Szene, in der GPU für tiefes Lernen nützlich ist?
Deep Learning / Softmax-Funktion
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Evangelion] Versuchen Sie, mit Deep Learning automatisch Asuka-ähnliche Linien zu erzeugen
(Jetzt) Erstellen Sie eine GPU Deep Learning-Umgebung mit GeForce GTX 960
Für diejenigen, die mit TensorFlow2 maschinelles Lernen beginnen möchten
Erstellen Sie eine KI, die Zuckerbergs Gesicht mit tiefem Lernen identifiziert learning (Datenlernen)
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Ich habe das Toho-Projekt mit Deep Learning aufgenommen ... ich wollte.
Ich habe versucht, Perceptron Teil 1 [Deep Learning von Grund auf neu] zu implementieren.
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
Ich habe keine GPU, aber ich werde Deep Learning ausprobieren
Echtzeit-Personalschätzung (Lernen mit lokaler GPU)
[Lernmemorandum] Einführung in vim
Deep Learning von Grund auf 1-3 Kapitel
Versuchen Sie es mit TensorFlow
<Kurs> Tiefes Lernen: Day2 CNN
Eine Einführung in das maschinelle Lernen
Deep Learning Bilderkennung 1 Theorie