Kapitel 7 [Deep Learning für neuronale Netze] P252 ~ 275 (erste Hälfte) [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]

[Referenz] [Lernen Sie mit Python! Neues Lehrbuch für maschinelles Lernen]: https://www.amazon.co.jp/Python%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81-%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E4%BC%8A%E8%97%A4-%E7%9C%9F/dp/4798144983

Was wird in Kapitel 7 erklärt

Betrachten Sie zunächst wie in der vorherigen Zeit die Gesamteingabe a.

Berücksichtigen Sie die Anzahl der Eingabedimensionen bei 2 wie in Kapitel 6 (D = 2). $ a=w_0x_0+w_1x_1+w_2 $

Wenn Sie den Bias-Parameter $ x_2 $ hinzufügen, der immer 1 benötigt, um den Abschnitt darzustellen $ a=w_0x_0+w_1x_1+w_2x_2 $

Da kann es durch die Formel der Summe ausgedrückt werden $ a=\sum_{i=0}^{2}w_ix_i $ Dies ist das gleiche wie beim letzten Mal, kann jedoch als Wahrscheinlichkeit über die Sigmoidfunktion verwendet werden $ y=\frac{1}{1+exp(-a)} $ ** Durch Durchlaufen der Sigmoid-Funktion ändert sich der Wert von a, der aus dem Eingang erhalten wird, im Bereich von 0 bis 1. (Da sich die Wahrscheinlichkeit auch im Bereich von 0 bis 1 ändert, kann dies als Wahrscheinlichkeitsverteilung verwendet werden.) **

In Kapitel 6 wurde die Verteilung dieses Übergangs von 0 nach 1 als Wahrscheinlichkeit ausgedrückt, aber im neuronalen Netzwerk dieses Kapitels wird angenommen, dass der Wert im Bereich von 0 bis 1 ** Zündfrequenz ** darstellt.

(P253) Hier wird angenommen, dass der Ausgangswert die Anzahl der Impulse pro Zeiteinheit darstellt, dh ** Zündfrequenz **. Je größer a ist, desto näher ist die Zündfrequenz an der Grenze der Zündfrequenz, und je größer der Wert von a negativ ist, desto näher ist die Zündfrequenz an 0 und desto mehr ist die Zündfrequenz fast nicht vorhanden. Ich denke.

7.2 Neuronales Netzwerkmodell

2-Schicht-Feed-Forward-Neuronales Netz

Zweischichtiges neuronales Netzwerkmodell iOS の画像 (3).jpg Zweidimensionale Eingaben können in drei Kategorien unterteilt werden. Stellt die Wahrscheinlichkeit dar, dass jeder Ausgabewert zu jeder Kategorie gehört. ** Wenn zum Beispiel zwei Eingabewerte für Gewicht ($ x_0 ) und Größe ( x_1 $) vorhanden sind, wenn Sie die Größe und das Gewicht jeder Person A und B eingeben, wo befindet sich diese Person 3 Jedes t gibt an, ob es zu einer Klasse gehört. ** ** **

ex)
Klasse
$t_0$=Schwarz
$t_1$=Weiß
$t_2$=asiatisch

Herr A:
Gewicht: 90 kg
Höhe: 189 cm
Wenn Sie dieses Modell eingeben.
$t_0$=0.95
$t_1$=0.04
$t_2$=0.01
Die Summe von t ist 1
Wenn es herauskommt, ist es sehr wahrscheinlich, dass Sie schwarz sind

Herr B:
Gewicht: 65 kg
Höhe: 168 cm
Wenn Sie dieses Modell eingeben.
$t_0$=0.06
$t_1$=0.04
$t_2$=0.90
Wenn Sie sagen, ist es sehr wahrscheinlich, dass Sie asiatisch sind.

Mechanismus jeder Wahrscheinlichkeit:

Es ist leicht zu verstehen, wenn Sie sich die Abbildung auf Seite 239 von Kapitel 6 ansehen.

iOS の画像 (4).jpg

・ Ermitteln Sie für jede eingegebene Trainingsdaten die Werte von $ w_0, w_1, w_2 $ nach der wahrscheinlichsten Schätzung. ・ Und da die Summe von $ a_0, a_1, a_2 $ erhalten werden kann. -Jeder Ausgabewert y wird durch die Sigmoidfunktion als Wahrscheinlichkeit ausgedrückt. Wahrscheinlichkeit, dass t = 0 für $ y_0 $ ist Wahrscheinlichkeit, dass t = 1 für $ y_1 $ ist Wahrscheinlichkeit von t = 2 für $ y_2 $

Jedes wird durch den Wert des Eingabewerts irgendwo zwischen 0 und 1 bestimmt, so dass eine Klassifizierung möglich ist. ** (Ich weiß nicht, warum die Summe von t 1 ist.) **

image.png

image.png

P258

Gesamteingabe der mittleren Ebene: $ b_j=\sum_{i=0}^Dw_{ji}x_i $

Zwischenschichtausgabe: $ z_j = h (b_j) \ hspace {25pt} h () ist eine Sigmoidfunktion $

Gesamteingabe der Ausgabeschicht: $ a_k=z\sum_{j=0}^{M}v_{kj}z_j $

Ausgabeebene Ausgabe: $ y_k=\frac{exp(a_k)}{\sum_{l=0}^{K-1}exp(a_l)}=\frac{exp(a_k)}{u} $

Numerische Differenzierungsmethode

Der Kreuzentropiefehler ist die Wahrscheinlichkeit, dass eine bestimmte Eingabe (x = 5,8 g usw.) eine bestimmte Wahrscheinlichkeit (T = [1,0,0] usw.) erzeugt und dass T = [1,0,0]. Fehler bei der Berechnung nach der wahrscheinlichsten Schätzung. Aus dem Eingabewert kann ein Modell erstellt werden, das die Wahrscheinlichkeit ausgibt. Durch Eingabe eines neuen Eingabewerts in das Modell wird ausgegeben, wo der Eingabewert klassifiziert ist.

Der Kreuzentropiefehler des zweischichtigen Feedforward-Netzwerks ist: $ E(w,v)=-\frac{1}{N}\sum_{n=0}^{N-1}\sum_{k=0}^{K-1}t_{nk}log(y_{nk}) $

image.png

Obwohl es sich um ein Diagramm auf Seite 267 handelt, ist das, was auf dieser Seite gesagt wird, dasselbe wie auf dieser Seite.

Zunächst möchten wir, dass dieses E (w) der Kreuzentropiefehler ist, der die logarithmische Wahrscheinlichkeit aus der maximalen Wahrscheinlichkeitsschätzung und den Wert w (Gewicht) mit dem kleinsten Tal, aber dem kleinsten Fehler nimmt.

Die Steigung ist 0, weil wir wollen, dass w die Ausgabe t findet, wenn die Wahrscheinlichkeit aus dieser meisten Eingabe gefunden wird. Ich möchte den Wert w dieses Talbodens (die y-Achse zum Zeitpunkt dieses Talbodens ist die Wahrscheinlichkeit, und die wahrscheinlichste Schätzung wird mit -1 multipliziert und umgekehrt, also die plausibelste Wahrscheinlichkeit der wahrscheinlichsten Schätzung = dieser Talboden. ).

** Daher ist $ w ^ * $ in der Abbildung das optimale Gewicht w beim Erstellen eines Klassifizierungsmodells. ** ** **

Was sagst du hier? ・ Es ist schwierig, das partielle Differential zu berechnen ・ Wenn Sie den Wert direkt vor $ w ^ * $ und den Wert unmittelbar davor finden, ohne sich um die partielle Differentialberechnung kümmern zu müssen, finden Sie eine gerade Linie, die durch die beiden Punkte verläuft, sodass sie wie eine Steigung aussieht, die einer Steigung ähnelt. Sie können den Wert nehmen ・ Das ist die Formel (7-19)

7-19 spricht also davon, wann der Parameter w eins ist, aber die Formel, wenn er auf mehrere erweitert wird, ist (7-20). ** Selbst wenn mehrere Parameter vorhanden sind, kann daher das entsprechende ws leicht erhalten werden. ** ** **

image.png

Zum Schluss lesen Sie diese Grafik auf Seite 269: (Wahrscheinlich) Da der Wert der partiellen Differenzierung für jeden Gewichtsparameter von w und v angegeben ist, wird die Steigung umso kleiner, je näher dieser Wert an 0 liegt. Daher kann 4 als guter Parameter für w und 8 als guter Parameter für v eingestellt werden.

Ich denke es bedeutet.

Erste Hälfte zuletzt

image.png

(P373 und 273 werden so gelesen, wie sie sind, daher werden sie weggelassen.)

In der obigen Abbildung wird ein Modell basierend auf den auf der vorherigen Seite erhaltenen Gewichten von w und v erstellt, und die Zeichnung wird ausgeführt, wenn die Testdaten tatsächlich eingegeben werden.

Da w und v erforderlich sind, wenn der Fehler jeder Klasse 1, 2 und 3 klein ist, wird der Teil mit hoher Wahrscheinlichkeit bei der Eingabe des tatsächlichen Eingabewerts als Bereich von 0,5 bis 0,9 definiert. Der Teil von $ t_0 ~ t_2 $ im Bild. Wenn Sie die Konturlinien nur dort anzeigen, wo jede Wahrscheinlichkeit hoch ist, und sie teilen, scheinen sie klassifiziert zu sein.

image.png

Recommended Posts

Kapitel 7 [Deep Learning für neuronale Netze] P252 ~ 275 (erste Hälfte) [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]
Kapitel 6 Überwachtes Lernen: Klassifizierung pg212 ~ [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]
Kapitel 7 [Error Back Propagation Method] P275 ~ (Mitte) [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]
Lernen Sie, indem Sie mit neuem Python laufen! Lehrbuch für maschinelles Lernen von Makoto Ito numpy / keras Achtung!
[Python / Maschinelles Lernen] Warum Deep Learning # 1 Perceptron Neural Network
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 13 Training für neuronale Netze ~ Chainer abgeschlossen
Python & Machine Learning Study Memo ③: Neuronales Netz
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 13 Grundlagen des neuronalen Netzwerks
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Eine Python-Probe zum Lernen von XOR mit einem genetischen Algorithmus in einem neuronalen Netz
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 7 Regressionsanalyse
[Deep Learning] Bildklassifizierung mit Faltungsnetz [DW Tag 4]
Neuronales Netzwerk mit Python (Scikit-Learn)
Maschinelles Lernen mit Python! Vorbereitung
Beginnend mit maschinellem Python-Lernen
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
Maschinelles Lernen mit Docker (42) Programmieren von PyTorch für Deep Learning Von Ian Pointer
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 4)
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 5)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Neuronales Netzwerk mit OpenCV 3 und Python 3
Maschinelles Lernen mit Python (1) Gesamtklassifizierung
Zusammenfassung des maschinellen Lernens von Python-Anfängern
PRML Kapitel 5 Python-Implementierung für neuronale Netze
Einführung in Deep Learning zum ersten Mal (Chainer) Japanische Zeichenerkennung Kapitel 2 [Modellgenerierung durch maschinelles Lernen]
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 2 Logikschaltung von Perceptron
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2
Verstärken Sie Bilder für maschinelles Lernen mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Aufbau einer KI / maschinellen Lernumgebung mit Python
Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Maschinelles Lernen mit Docker (40) mit Anaconda (40) "Hands-On Data Science und Python Machine Learning" von Frank Kane