[PYTHON] Deep Learning Bilderkennung 3 nach der Modellerstellung

Aidemy 2020/11/10

Einführung

Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der dritte Beitrag für tiefes Lernen und Bilderkennung. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ Bequeme Funktionen von Keras ・ Informationen zur Methode zur Verbesserung der Genauigkeit des Modells

nützliche Funktion

Anzeige des Lernprozesses

-Auch im vorherigen Kapitel wurde die Berechnung der Generalisierungsgenauigkeit mit __ "model.evaluate (X_test, y_test)" __ durchgeführt, jedoch im Argument von "model.fit ()" __ "validation_data = (X_test)". , y_test) ”__ berechnet die Generalisierungsgenauigkeit auf die gleiche Weise __.

・ Code![Screenshot 2020-11-09 16.39.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/6865a878-5afe-94ef- 79b2-be27e002b530.png)

・ Ergebnis![Screenshot 2020-11-09 16.39.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/e1669f65-d751-4b17- 4a83-d54edadfa214.png)

Early Stopping ・ Selbst wenn die Anzahl der Lernvorgänge zu groß ist, sinkt die Genauigkeit, wenn sie ein bestimmtes Niveau überschreitet. In solchen Fällen ist es wichtig, das Lernen frühzeitig zu beenden. __ "Early Stop" __ kann in solchen Fällen verwendet werden. ・ Frühes Stoppen enthält neben Trainings- und Testdaten auch Verifizierungsdaten, nimmt einen Fehler zwischen der Auswertung dieser Daten und der Auswertung der Trainingsdaten für jedes Lernen auf und stoppt das Lernen zu dem Zeitpunkt, zu dem sich der Fehler ausbreitet. Das ist.

Ausgabe der Modellstruktur

-Wenn Sie die Struktur des Modells überprüfen möchten, gibt es eine __- Methode, um dies als __- Bild auszugeben. Die Methode ist nur __ "plot_model (model, to_file = 'model.png')" __. -Wenn Sie für jede Ebene einen Namen festlegen möchten, fügen Sie dem Argument __ "name" __ hinzu, wenn Sie __ "model.add ()" __ verwenden, um eine darunter liegende Ebene zu erstellen.

·Code

·Ergebnis

So verbessern Sie die Genauigkeit

Optimierung

・ In vielen Fällen ist es besser, die Lernrate im Verlauf des Lernens zu ändern. Dies wird als __ "Optimierung der Lernrate" __ bezeichnet, und Adam, RMSprop, Adagrad usw. werden verwendet.

Aussteigen

Feinabstimmung (Transferlernen)

-Feinabstimmung __ (Transferlernen) __ wurde bereits gelernt, aber es ist eine Methode, um mit einem Teil von __ anderen Modellen __ zu trainieren. In Bezug auf die Bilderkennung wird nur die letzte vollständig verbundene Schicht geändert und die gewundene Schicht wird so verwendet, wie sie ist.

スクリーンショット 2020-11-09 18.19.55.png

-Für den obigen Code geben Sie zuerst das Eingabeformular mit __ "input_tensor" __ ein. Nachdem Sie dies definiert haben, erstellen Sie tatsächlich ein VGG-Modell __. Es kann mit "VGG16 ()" __ erstellt werden. Als Argument gibt __ "include_top" __ an, ob die vollständig verbundene Ebene des Originalmodells mit True oder False verwendet werden soll, und __ "weight = 'imagenet'" __ gibt an, dass die von imagenet gelernten Gewichte verwendet werden sollen. , __ "input_tensor" __ Beschreiben Sie das zuvor definierte Eingabeformular.

・ Nachdem Sie dies getan haben, müssen Sie im nächsten Schritt ein separates Modell __ (top_model) __ in der Nähe der Ausgabeebene (vollständig verbundene Ebene) erstellen. Da die Eingabeebene von top_model die Ausgabe des VGG-Modells (Faltungsschicht) empfängt, wird sie als __ "Flatten ()" __ festgelegt. Durch Setzen von input_shape auf __ "vgg16.output_shape [1:]" __ kann die Ausgabeform (zweidimensional) des VGG-Modells erhalten werden. -Der Rest besteht nur darin, Ebenen wie bei einem normalen Modell hinzuzufügen. Nach dem Addieren zur Ausgabeebene besteht der nächste Schritt darin, ein endgültiges Modell mit __ "Eingabe ist vgg16.input, Ausgabe ist top_model mit vgg Ausgabe" __ zu erstellen.

スクリーンショット 2020-11-09 18.44.49.png

-Dies ist das Ende der Ebenenaddition, und von nun an werden wir kompilieren und lernen, aber vorher das Gewicht des __VGG-Modellteils so einstellen, dass es nicht geändert wird __.

スクリーンショット 2020-11-09 18.44.58.png

-Es gibt keine besonderen Änderungen beim Zusammenstellen und Lernen. Nur ein Punkt, wenn Transferlernen durchgeführt wird, sollte die Optimierungsfunktion __ "SGD" __ sein.

Zusammenfassung

-Die Genauigkeit des Lernens kann durch Ändern von __ "history ['acc']" __ in __ "plt.plot ()" __ visualisiert werden.

Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Deep Learning Bilderkennung 3 nach der Modellerstellung
Deep Learning Bilderkennung 2 Modellimplementierung
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Deep Learning Bilderkennung 1 Theorie
Implementierung eines Deep Learning-Modells zur Bilderkennung
Lesen und implementieren Sie Deep Residual Learning für die Bilderkennung
Modellbildung, Lernen und Denken lernen
Echtzeit-Bilderkennung auf Mobilgeräten mithilfe des TensorFlow-Lernmodells
Deep Learning Model Lightening Library Distiller
[AI] Deep Learning für das Entrauschen von Bildern
Bilderkennung
Tiefes Lernen
Deep Learning 2 durch Implementierung gelernt (Bildklassifizierung)
Bildausrichtung: von SIFT bis Deep Learning
Deep Learning Memorandum
Starten Sie Deep Learning
Aufgeblasenes Lernbild
Bilderkennung mit Caffe Model Chainer Yo!
Python Deep Learning
Deep Learning × Python
Deep Learning Bildanalyse beginnend mit Kaggle und Keras
[Erkennung von Abnormalitäten] Erkennen Sie Bildverzerrungen durch Fernunterricht
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Bilderkennung mit Keras
Deep Learning / Cross Entropy
Erstes tiefes Lernen ~ Vorbereitung ~
[AI] Deep Metric Learning
Pfeffer-Tutorial (7): Bilderkennung
Python: Deep Learning Tuning
Verändert TensorFlow das Bild des tiefen Lernens? Was ich dachte, nachdem ich ein wenig berührt hatte
Deep Learning / Softmax-Funktion
Ich habe versucht, ein Deep-Learning-Modell von TensorFlow mit TensorFlow Serving zu hosten
[Deep Learning] Bildklassifizierung mit Faltungsnetz [DW Tag 4]
Klassifizieren Sie CIFAR-10-Bilddatensätze mithilfe verschiedener Modelle des Deep Learning
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
Einführung in Deep Learning zum ersten Mal (Chainer) Japanische Zeichenerkennung Kapitel 3 [Zeichenerkennung anhand eines Modells]