Ich versuche, ein einzelnes verstecktes neuronales Netz für MNIST Ziffernerkennung in Python zu implementieren.Neural Net Setup
wie folgt aus:
h1
x1 z1
h2
x2 z2
1 h3
1
Ich bin eine versteckte Schicht von Größe mit 200
Die Anzahl der Funktionen für die Ziffern ist 784.
Die Anzahl der Klassen 10
Jedes Label wird in einen Vektor der Länge 10 umgewandelt, der an der Position der wahren Klasse eine einzige 1 und an anderer Stelle 0 hat.
zwischen dem Eingang und der verborgenen Schicht, ich bin eine 200 von 785 Matrix V.
Matrix V verwenden gehen: die i, j - die j-ten Einheit in der Eingangsschicht Eintrag für das Gewicht Anschluss an die i-te Einheit in der versteckten Ebene. Die i-te Reihe von V stellt das Ensemble von Gewichten dar, die in die i-te verborgene Einheit einspeisen.
Zwischen dem versteckten die die Ausgangsschicht, ich werde eine Matrix W aufzubringen, die 10 von 201
Matrix W: die i, j - Eintrag für das Gewicht der j-ten Einheit in der Verbindungs versteckte Ebene zu der i-ten Einheit in der Ausgabeschicht. Die i-te Reihe von W ist das Ensemble von Gewichten, die in die i-te Ausgabeeinheit einspeisen.
Also fange ich mit der Eingangsmatrix an, die n mit 784 ist. Kann jemand erklären, was zu tun ist? Was muss ich multiplizieren und was/wie multipliziere ich das Ergebnis mit? Ich bin nicht sicher, wie genau diese Matrizen zu multiplizieren sind.
(Lassen Sie uns nur die Aktivierungsfunktionen f() aufrufen.)
Ich bin ein bisschen durch die Dimensionen der Matrizen verwirrt und nicht sicher, wann/wo/wie genau V und W. verwenden
[This] (http://neuralnetworksanddeeplearning.com/) ist eine nette und umfassende Einführung in neuronale Netzwerke und auf die Art, wie sie ein neuronales Netzwerk implementieren, um den MNIST-Datensatz in Python zu klassifizieren. – sietschie
Ich werde das für Sie aufschlüsseln, aber Sie müssen viel mehr über NNs lesen, um zu verstehen, wie es funktioniert (vergessen Sie nicht, Programmierung ist 90% Studieren/Planen und 10% Codierung). Also ist die Eingabe-Dimension n x 785 und die versteckte Dimension ist n x 200. Die Gewichte (w) sind wie folgt definiert: w = Transponieren (Eingabe_Dimme) * versteckte_Dimme. Sie sollten Transponieren verwenden, um Ihre Daten in die richtige Matrixmatrix zu bringen: w = 785 x n * n x 200. Damit erhalten Sie ein w der Größe 785x200, das die gewünschte Ausgabe ist. (Das * bedeutet hier Matrixmultiplikation). – TasosGlrs