Aidemy 2020/11/10
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 für tiefes Lernen und Bilderkennung. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ ・
-__ Einfaches Perzeptron__ ist dasjenige, das mehrere Ein- und Ausgänge mit einem Wert (0 oder 1) empfängt und die Grundeinheit von __neural net __ ist.
・ Die Formel für einfaches Perzeptron lautet wie folgt.
-Für die obige Gleichung ist "u" die Summe jeder Eingabe $ x_i $ multipliziert mit dem Gewicht $ w_i $, und die Vorspannung θ wird addiert. Andererseits heißt $ H (u) $ __Schrittfunktion __ (Aktivierungsfunktion), die 1 ist, wenn u positiv ist, und 0, wenn u negativ ist.
-Code (Implementierungsbeispiel)![Screenshot 2020-11-09 9.51.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/c25e602f- 7e6f-9289-9676-0b1fa309efe6.png)
-Es ist notwendig, die obigen "w" und "θ" entsprechend zu ändern, aber es ist nicht realistisch, sie manuell zu ändern. In einem solchen Fall ist die Methode, die die Aktualisierung des Werts __ automatisiert, __ "Fehlerkorrekturlernen" __.
・ Zu diesem Zeitpunkt ist der Einfachheit halber das Gewicht w (w1, w2, θ), die Eingabe x ist (x1, x2,1) und die Ausgabe u wird durch __ "(transloziert w) * x" __ berechnet. (Lassen Sie θ aus der Formel für u weg). ・ $ \ Eta $ ist die Lernrate. Details werden später beschrieben.
·Code
・ Ausgabe (+ Code für Ausgabe)
-Der spezifische Code lautet wie folgt. Suchen Sie für die Eingabedaten x "u1" und "u2" nach derselben Formel wie das einfache Perzeptron, suchen Sie die Ausgabe "z1" und "z2" der ersten Schicht und berechnen Sie "u3" mit diesen, dem Gewicht w3 und der Vorspannung b3. Dann wird die endgültige Ausgabe "y" durch "H (u3)" berechnet.
・ Das oben erlernte "Fehlerkorrekturlernen" kann nur behandelt werden, wenn die Eingabe "0 oder 1" ist. __ Wenn die Anzahl der ausgeblendeten Ebenen zunimmt, kann diese Methode nicht verwendet werden. __ Verwenden Sie in einem solchen Fall __ "Gradientenabstiegsmethode" __. -Die Gradientenabstiegsmethode ist __ eine Methode, die bisher beim Deep Learning verwendet wurde, und ist eine __ "Lernmethode, bei der die Fehlerfunktion die kleinste" __ Methode ist. -Es ist __gradient __, das verwendet wird, um dieses "kleinste" zu machen. Dies wird durch differential erhalten. -Hier erscheint auch ein Parameter namens __ "Lernrate" __, aber dies ist ein Parameter, der __ "anpasst, wie viel in einem Schritt gelernt werden soll" __. Wenn dieser Wert zu groß ist, konvergiert er nicht zum gewünschten Wert. Wenn er zu klein ist, dauert es zu lange, bis dieser Wert erreicht ist. Daher muss ein geeigneter Wert __ festgelegt werden. -Die Lernrate ist __basisch explorativ __ festgelegt, Sie können jedoch auch ein Tool verwenden, um einen geeigneten Wert zu finden.
-Differenzierung wird in der Gradientenabstiegsmethode durchgeführt, aber wenn die vorherige Schrittfunktion für die __Aktivierungsfunktion __ verwendet wird, ist die Ausgabe 0 oder 1, sodass das Differenzierungsergebnis 0 ist. Daher ist es bei Verwendung dieser Methode erforderlich, __ eine andere Funktion für die Aktivierungsfunktion __ zu verwenden.
Zum Beispiel __ Sigmoid-Funktion __ und __ReLU-Funktion __.
-Obwohl es sich um einen mathematischen Teil handelt, wird die __sigmoidale Funktion __ durch die folgende Formel ausgedrückt. Die Differenzierung wird ebenfalls beschrieben.
Selbst im Code kann das Berechnungsergebnis der Sigmoidfunktion durch Berechnen auf diese Weise erhalten werden.
-Die __ReLU-Funktion __ ist eine einfache Funktion, bei der __x "x" bleibt, wenn __x> = 0 ist, und __x "0" ist, wenn __x <0 ist, und "x" bei Differenzierung immer einen Wert hat. Da es "1" wird, wird es häufig in der __error back propagation-Methode __ verwendet.
-Die Grundstruktur des neuronalen Netzes ist __ "einfaches Perzeptron" __, das mehrere Eingaben empfängt und einen Wert ausgibt. Durch Hinzufügen von __hidden Layer __ wird __mic-Layer Perceptron __ und unterstützt auch die nichtlineare Trennung. -Wenn die Gewichte und Vorurteile des Tiefenlernens aktualisiert werden, wird auch __ "Fehlerkorrekturlernen" __ verwendet. Da dies jedoch nicht verwendet werden kann, wenn die Anzahl der Zwischenschichten zunimmt, wird stattdessen __ "Gradientenabstiegsmethode" __ verwendet. Wird sein Dies ist eine Methode zum Aktualisieren des Werts in Richtung des Teils, in dem der durch __Differenzieren __der Fehlerfunktion __ erhaltene Gradient am kleinsten ist. -Wenn Sie die Gradientenabstiegsmethode verwenden, verwenden Sie die __Sigmoid-Funktion __ und die ReLU-Funktion für die Aktivierungsfunktion. -Wenn Aktualisierungen mit der Gradientenabstiegsmethode aktualisiert werden, unterscheidet sich die Methode je nachdem, wie viel der __all-Daten zur Berechnung des Gradienten verwendet werden. Am häufigsten wird ein Rezept verwendet, das die Anzahl der Daten (batch_size) selbst bestimmt. Dies wird als "Mini-Batch-Methode" bezeichnet.
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts