[PYTHON] Fehler-Back-Propagation-Methode (Back-Propagation)

Dritter Tag

Fehler-Back-Propagation-Methode (Back-Propagation)

Ich hatte heute nicht viel Zeit, deshalb werde ich das Neuronale Netz kurz vor der Implementierung implementieren.

Die am ersten Tag implementierte logistische Regressionsanalyse war gut in der linearen Regression, aber nichtlineare können nicht gut damit umgehen. In einem solchen Fall, wenn es sich um ein neuronales Netzwerk handelt, ist es möglich, zurückzukehren, selbst wenn es nicht linear ist, wie z. B. XOR.

Es gibt keine klare Grundlage für Voreingenommenheit, da dieser Bereich im maschinellen Lernen so tief verwurzelt ist. Die Vorspannung kann je nach Zweck geändert oder festgelegt werden.

Modell-

Dieses Mal werden wir 3 Ebenen mit 2 Eingaben, 1 Zwischenebene und Ausgabe erstellen.

Das Bild ist dasselbe wie die logistische Regression, wie eine Kombination davon.

Fehlerfunktion

Fehlerableitung


'''
Eingang: x1,x2
Versteckte Ebene: O1,O2
Ausgabe: Output
Error: Error
vorspannen: b
Gewicht: w[Welche Schicht,Wovon,wo]
E = (y - Output)^2
'''
#Forward Propagation
Z1 = b11 + x1*w111 + x2*w121
Z2 = b12 + x1*w112 + x2*w122

O1 = Sig(Z1)
O2 = Sig(Z2)

Z = b21 + O1*w211 + O2*w221

Output = Sig(Z)

Error = (y - Output)**2

Bias unterscheiden und anpassen

Vorspannungseinstellung


#differential
dw111 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z1)*(1 - Sig(Z1))*x1
dw121 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z1)*(1 - Sig(Z1))*x2
db11 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z1)*(1 - Sig(Z1))
dw112 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z2)*(1 - Sig(Z2))*x1
dw122 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z2)*(1 - Sig(Z2))*x2
db12 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*Sig(Z2)*(1 - Sig(Z2))
dw211 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*O1
dw221 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))*O2
db21 = 2*(y - Output)*Sig(Z)*(1 - Sig(Z))

#Gradient Descent / Steepest Descent
w111 -= alpha(dw111)
w121 -= alpha(dw121)
b11 -= alpha(db11)
w112 -= alpha(dw112)
w122 -= alpha(dw122)
b12 -= alpha(db12)
w211 -= alpha(dw211)
w221 -= alpha(dw221)
b21 -= alpha(db21)

Code

day3.py

Der dritte Tag ist vorbei!

Ich war heute ein bisschen beschäftigt, aber ich konnte das Minimum tun! Ich denke, es wäre schön, auch nur ein bisschen so aufholen zu können Ich bin Udemy zu Dank verpflichtet. Vielen Dank.

Recommended Posts

Fehler-Back-Propagation-Methode (Back-Propagation)
Deep Learning / Fehler-Backpropagation der Sigmoid-Funktion
[Deep Learning von Grund auf neu] Implementieren Sie die Backpropagation-Verarbeitung in einem neuronalen Netzwerk mithilfe der Fehler-Back-Propagation-Methode
Implementierte Methode zur Weitergabe von Etiketten in Python
Kapitel 7 [Error Back Propagation Method] P275 ~ (Mitte) [Lernen Sie, indem Sie sich mit Python bewegen! Neues Lehrbuch für maschinelles Lernen]
Lassen Sie uns eine probabilistische Ausbreitungsmethode (Python) erstellen.
Wenden Sie die Fehlerausbreitungsformel auf den Standardfehler an