[PYTHON] Deep Learning Bilderkennung 1 Theorie

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 erste Beitrag für tiefes Lernen und Bilderkennung. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ ・

Einfaches Perceptron

Was ist einfaches Perceptron?

-__ 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. $ \begin{eqnarray} u = \sum_{i=1}^N w_i x_i + \theta\\ y = H(u) \end{eqnarray} $

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

Fehlerkorrektur lernen

-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 スクリーンショット 2020-11-09 10.23.06.png

・ Ausgabe (+ Code für Ausgabe) スクリーンショット 2020-11-09 10.23.40.png

Mehrschichtiges Perceptron

Was ist Multilayer Perceptron?

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

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

Gradientenabstiegsmethode

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

Aktivierungsfunktion

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

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

Gewichtsaktualisierung des neuronalen Netzes

Zusammenfassung

-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

Deep Learning Bilderkennung 1 Theorie
Deep Learning Bilderkennung 2 Modellimplementierung
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Deep Learning Bilderkennung 3 nach der Modellerstellung
Lesen und implementieren Sie Deep Residual Learning für die Bilderkennung
Implementierung eines Deep Learning-Modells zur Bilderkennung
Bilderkennung
Tiefes Lernen
[AI] Deep Learning für das Entrauschen von Bildern
Deep Learning 2 durch Implementierung gelernt (Bildklassifizierung)
Deep Learning Memorandum
Starten Sie Deep Learning
Aufgeblasenes Lernbild
Bildausrichtung: von SIFT bis Deep Learning
Python Deep Learning
Deep Learning × Python
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Bilderkennung mit Keras
Deep Learning 1 Übung des Deep Learning
Deep Learning / Cross Entropy
Erstes tiefes Lernen ~ Vorbereitung ~
Erstes tiefes Lernen ~ Lösung ~
[AI] Deep Metric Learning
Ich habe versucht, tief zu lernen
Pfeffer-Tutorial (7): Bilderkennung
Python: Deep Learning Tuning
Grundlagen der CNN 1-Bilderkennung
Deep Learning Großtechnologie
Deep Learning / Softmax-Funktion
Deep Learning Bildanalyse beginnend mit Kaggle und Keras
[Erkennung von Abnormalitäten] Erkennen Sie Bildverzerrungen durch Fernunterricht
Deep Learning von Grund auf 1-3 Kapitel
Deep Learning Gaiden ~ GPU-Programmierung ~
<Kurs> Tiefes Lernen: Day2 CNN
Deep Running 2 Tuning von Deep Learning
Deep Learning / LSTM Scratch Code
<Kurs> Tiefes Lernen: Tag 1 NN
Deep Kernel Learning mit Pyro
Versuchen Sie Deep Learning mit FPGA
Deep Learning für die Bildung von Verbindungen?
Einführung in Udacity Deep Learning Nanodegree
Anwendung der CNN2-Bilderkennung
Themen> Deep Learning: Tag 3 RNN
[Deep Learning] Bildklassifizierung mit Faltungsnetz [DW Tag 4]
Einführung in Deep Learning ~ Lernregeln ~
Echtzeit-Bilderkennung auf Mobilgeräten mithilfe des TensorFlow-Lernmodells
Klassifizieren Sie CIFAR-10-Bilddatensätze mithilfe verschiedener Modelle des Deep Learning
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Generiere Pokemon mit Deep Learning
Einführung in Deep Learning ~ Backpropagation ~
Bilderkennung mit Keras + OpenCV
Deep Learning Model Lightening Library Distiller
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Identifikation der Katzenrasse mit Deep Learning
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo