Hallo Licht. Folgen Sie hier, Deep Learning Tutorial Kapitel 4 Ich werde über die Verbesserung der Erkennungsgenauigkeit durch Erweiterung der Daten sprechen.
Beim letzten Mal (Kapitel 3) war der Verlust von 0,526 in Epoche 16 die beste Punktzahl. Dies ist jedoch nicht gut, da es selbst im Druck selten falsch erkannt wird.
Selbst wenn Sie so wie es ist mehr lernen, wird nur der Zugverlust abnehmen und der Testverlust wird weiter zunehmen. "Überlernen" wird auftreten und die Erkennungsgenauigkeit wird sich nicht verbessern. Um Überlernen zu vermeiden und die Genauigkeit zu verbessern, erhöhen wir die Lerndaten.
Es ist ideal, die ursprünglichen Trainingsdaten zu erhöhen, aber das Sammeln der Trainingsdaten kostet Zeit und Geld, sodass wir die Daten erweitern werden.
Informationen zu Arten der Datenerweiterung
Ausdünnen, um die Erkennungsabhängigkeit von der Zeichendicke zu beseitigen
Normalerweise wird das invertierte Bild nicht eingegeben, so dass es auf den ersten Blick eine nachteilige Datenerweiterung zu sein scheint, aber es ist aus Sicht von TTA (Datenerweiterung auch während des Testens) effektiv.
Da es unendlich viele Kombinationen der Datenerweiterung gibt, indem Zufallszahlen wie Drehwinkel und Drehachse (dreidimensional) für die Drehung und Anzahl der sich bewegenden Pixel für die Bewegung verwendet werden, werden die obigen Methoden kombiniert, um aus einem Bild ein Mugen-Bild zu erstellen. Ich werde es schaffen. Die Anzahl der vergrößerten Blätter und das Ergebnis sind wie folgt.
Vergrößerte Nummer | Testverlust beste Punktzahl |
---|---|
10 Blatt | 0.526 |
100 Blatt | 0.277 |
300 Blatt | 0.260 |
500 Blatt | 0.237 |
Etwas ist leicht, aber es fühlt sich gut an. Werden die Daten nicht dupliziert, wenn sie auf 500 Blatt vergrößert werden? Ich denke, aber am Ende ist es OK.
Übrigens sieht elastische Verzerrung wie eine ideale Datenvergrößerung aus, ist jedoch schwierig zu handhaben, da die Verarbeitung einige Zeit in Anspruch nimmt und zu Überlernen führt (Erfahrungsgeschichte).
Selbst bei 500 Blatt nimmt die Genauigkeit stetig zu (der Verlust nimmt ab), daher habe ich als nächstes versucht, auf ** 3500 Blatt ** zu expandieren. (Da jedoch die Speicher- und Verarbeitungszeit (auf meinem PC) begrenzt ist, ist sie auf nur 5 Blatt "A", "I", "U", "E" und "O" beschränkt.)
('epoch', 1)
train mean loss=0.167535232874, accuracy=0.937596153205
test mean loss=0.23016545952, accuracy=0.914285708447
('epoch', 2)
train mean loss=0.0582337708299, accuracy=0.979920332723
test mean loss=0.132406316127, accuracy=0.955102039843
('epoch', 3)
train mean loss=0.042050985039, accuracy=0.985620883214
test mean loss=0.0967423064653, accuracy=0.959183678335
('epoch', 4)
train mean loss=0.0344518882785, accuracy=0.98846154267
test mean loss=0.0579228501539, accuracy=0.983673472794
Das Ergebnis sieht so aus. Der Verlust ist in Epoche 4 auf 0,057 gesunken. Wie in Kapitel 3 erwähnt, konnte ich das handgeschriebene Hiragana mit dem Verlustmodell 0,237 irgendwie erkennen, also kann ich es diesmal erwarten. Also schrieb ich 50 Hiragana-Blätter zur Hand und testete die Genauigkeit.
Dieses Mal wird das Erkennungsergebnis ausgewertet, nachdem die Daten zum Zeitpunkt des Tests auf 30 Blatt erweitert wurden. (Es gibt keinen besonderen Grund für diese "30 Blätter")
$ python AIUEONN_predictor.py --model loss0057model --img ../testAIUEO/o0.png
init done
Kandidat Neuronennummer:4, Unicode:304a,Hiragana:Oh
.
.(Ausgelassen)
.
Kandidat Neuronennummer:4, Unicode:304a,Hiragana:Oh
Kandidat Neuronennummer:4, Unicode:304a,Hiragana:Oh
Kandidat Neuronennummer:3, Unicode:3048,Hiragana:e
Kandidat Neuronennummer:4, Unicode:304a,Hiragana:Oh
**Endgültiges Urteil Neuronennummer:4, Unicode:304a,Hiragana:Oh**
Es ist in Ordnung.
46 von 50 richtigen Antworten. Mit 4 Fehlern betrug die Genauigkeit 92%! Übrigens wurden nur diese 4 Fotos vermisst. "A" hat einen schmutzigen Charakter (Schweiß;
Einige der Dinge, die funktioniert haben
Es ist schwer auszudrücken, da es sich um einen Testdatensatz des Front-Miso handelt, aber eine gute Genauigkeit aufweist. Ich spüre die Möglichkeit des Deep Learning, da es sich um typzentrierte Lerndaten handelt und für handgeschriebene Zeichen anwendbar ist. Kapitel 4 endet hier. Im nächsten Kapitel 5 möchte ich anhand von Hi-Kings Blog von den Grundlagen neuronaler Netze lernen.
Kapitel | Titel |
---|---|
Kapitel 1 | Aufbau einer Deep-Learning-Umgebung basierend auf Chainer |
Kapitel 2 | Erstellen eines Deep Learning-Vorhersagemodells durch maschinelles Lernen |
Kapitel 3 | Zeichenerkennung anhand eines Modells |
Kapitel 4 | Verbesserung der Erkennungsgenauigkeit durch Erweiterung der Daten |
Kapitel 5 | Einführung in das neuronale Netz und Erklärung des Quellcodes |
Kapitel 6 | Verbesserung der Lerneffizienz durch Auswahl von Optimizer |
Kapitel 7 | TTA,Verbesserung der Lerneffizienz durch Chargennormalisierung |
Recommended Posts