Aidemy 2020/9/30
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 erste Beitrag von Deep Learning. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ Über tiefes Lernen ・ Erstellen Sie ein Modell zur Klassifizierung handschriftlicher Zahlen
-Tiefes Lernen ist eine Art des maschinellen Lernens, bei dem ein Modell namens Teep Neural Network zum Klassifizieren und Regressieren von Daten verwendet wird. Es wird mit einem solchen Namen bezeichnet, weil es in Bezug auf das neuronale Netzwerk lebender Organismen hergestellt wird. ・ Deep Learning ist in den Bereichen Bilderkennung und Spracherkennung weit verbreitet. Der Zweck des tiefen Lernens besteht darin, "die Erkennungsgenauigkeit von Bildern und Tönen zu verbessern".
-Das (tiefe) neuronale Netzwerk besteht aus Schichten von Elementen, die Informationen empfangen und ausgeben, die als neuron bezeichnet werden. Diejenigen mit drei oder mehr Schichten zu diesem Zeitpunkt werden als Modell behandelt, das als tiefes neuronales Netzwerk bezeichnet wird. Zu diesem Zeitpunkt wird die Eingabeebene als __Eingabeebene __ bezeichnet, die Ausgabeebene als Ausgabeschicht und die Ebene zwischen den beiden als versteckte Ebene. Die Schicht, in der das vorherige Neuron und das nächste Neuron für jede Schicht verbunden sind, wird als __voll verbundene Schicht __ bezeichnet.
-Das Neuron empfängt die Eingabewerte __Eingabewert (x) __ und __ Gewichtsparameter (w) __. Wenn der Wert des durch x und w dargestellten Ausdrucks höher als der Schwellenwert (θ) jedes Neurons ist, wird der Wert 1 an das nächste Neuron übergeben, andernfalls wird 0 übergeben. Diese Informationsübertragung wird als __neuron feuern __ bezeichnet. ・ Beim Deep Learning werden ein Klassifizierungsmodell und ein Regressionsmodell erstellt, indem der Wert des Gewichtsparameters (w) mechanisch angepasst wird.
・ Erstellen Sie ein Netzwerkmodell → Geben Sie die Modell-Trainingsdaten zum Trainieren an → (Lernen abgeschlossen) → Implementieren
・ Wie im vorherigen Abschnitt bestätigt, wird zunächst ein Netzwerkmodell erstellt, indem eine hierarchische Struktur einiger Neuronen gebildet wird. Als nächstes werden Trainingsdaten (Eingabewert x) an das erstellte Modell übergeben und der Ausgabewert y ausgegeben. Zunächst unterscheidet sich der Wert dieses y von der Prüfung, aber der Wert des Gewichtsparameters (w) wird so eingestellt, dass die Abweichung ΔE von den richtigen Antwortdaten (Lehrerbezeichnung) klein wird, und schließlich wird der entsprechende Wert eingestellt. Das zurückzugebende Modell ist fertiggestellt.
・ Datenaufbereitung → Erstellen eines neuronalen Netzwerkmodells → Daten geben und trainieren → Bewertung der Modellgenauigkeit
-Dieses Mal, wenn die handgeschriebenen Eingabedaten "7" sind, ist der Wert, der "7" unter den korrekten Antwortbezeichnungen der Lehrerdaten entspricht, 1 (ein) und die anderen Werte sind 0 (aus). Daten mit einer richtigen Antwort und einer anderen 0-Ausgabe werden als __one-hot vector Vector __ bezeichnet. Außerdem wird die Zuweisung (Beschriftung) beim Klassifizieren von Daten wie "7" als __Klassenbeschriftung __ bezeichnet.
-TensorFlow ist eine von Google bereitgestellte Bibliothek für maschinelles Lernen. ・ Keras kann TensorFlow-Code intuitiv und präzise gestalten. Eine Wrapper-Bibliothek, die die Verwendung anderer Bibliotheken (in diesem Fall TensorFlow) wie Keras erleichtert.
-Handgeschriebene numerische Daten können sofort verwendet werden, indem ein Datensatz namens MNIST aus Keras importiert wird. ・ (Überprüfung) X sind Bilddaten, y sind Lehreretikettendaten. Zug ist Trainingsdaten und Test ist Testdaten für die Modellbewertung.
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test)=mnist.load_data()
-Die Methode zum Erstellen (Erstellen) eines Modells besteht darin, zuerst eine __Sequential () __- Instanz zu erstellen, die das Modell verwaltet, und dann eine __Sequential () __- Instanz zu erstellen. __add (Dicht (Anzahl der Ausgabeeinheiten in der ersten vollständig verbundenen Schicht, input_dim = Anzahl der Eingabeeinheiten)) __ Die Eingabeebene und die erste vollständig verbundene Ebene werden mithilfe von erstellt. Außerdem muss __Aktivierungsfunktion __ für die Ausgabe der vollständig verbundenen Schicht angegeben werden. Die Methode ist __add (Aktivierung ("Funktionsname")) __. Wenn Sie die zweite und die nachfolgenden Eingabeebenen erstellen möchten, können Sie den Wert Dense jedes Mal mit der Methode add () angeben (input_dim kann nur einmal angegeben werden). Zum Schluss legen Sie den Lernprozess mit der Methode __compile () __ fest und schließen ihn ab.
#Modulimport
from keras.model import Sequential
from keras.layers import Dense,Activation
#Erstellung einer sequentiellen Instanz (Modellverwaltung)
model=Sequential()
#Anzahl der Eingabeeinheiten 28*28=784, 256 Ausgabeeinheiten der ersten vollständig verbundenen Schicht, Aktivierungsfunktion Sigmoid
model.add(Dense(256,input_dim=784))
model.add(Activation("sigmoid"))
#256 Ausgabeeinheiten für die zweite vollständig verbundene Schicht, Aktivierungsfunktion relu
model.add(Dense(128))
model.add(Activation("relu"))
#Die Anzahl der Ausgabeeinheiten der dritten vollständig verbundenen Schicht beträgt 10, Aktivierungsfunktion softmax
model.add(Dense(10))
model.add(Activation("softmax"))
#Lernprozesseinstellungen (Ich kenne die Argumente jetzt nicht)
model.compile(optimizer="sgd",loss="categorical_crossentropy",metrics=["accuracy"])
・ Lernen Sie mit __model.fit (X_train, y_train, verbose = 0or1, Epochen = Anzahl der Lernvorgänge) __. ・ Wenn Epochen 1 sind, wird der Lernfortschritt ausgegeben, und wenn er 0 ist, wird er nicht ausgegeben. ・ (Überprüfung) Das Lernen wird durchgeführt, indem das Gewicht so geändert wird, dass der Unterschied zwischen der Ausgabe und den Lehrerdaten gering wird.
・ Führen Sie ein Klassifizierungsproblem mit dem trainierten (+ bewerteten) Modell durch. ・ __Model.predict (Selbst, Eingabedaten, batch_size = Ganzzahl, ausführlich = 0 oder 1, Schritte = Anzahl der Schritte) __ ・ Über jedes Argument
In Bezug auf den Rückgabewert gibt die Predict () -Methode ein NumPy-Array zurück, in dem der vorhergesagte Wert gespeichert ist. Da die handschriftliche Zeichenklasse jedoch 10-dimensional ist, wird der größte Wert extrahiert. Die Methode verwendet __np.argmax (Daten mit Predict (), Achse = 1) __, um die Indexnummer des Maximalwerts zu erhalten. Da der Index für jede Zeile durch Setzen der Achse = 1 erhalten werden kann, wird nur das Vorhersageergebnis angezeigt.
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts