5

Kürzlich begann ich über die Implementierung des Levenberg-Marquardt-Algorithmus zum Erlernen eines künstlichen neuronalen Netzwerks (ANN) nachzudenken. Der Schlüssel zur Implementierung ist die Berechnung einer Jacobi-Matrix. Ich habe ein paar Stunden damit verbracht, das Thema zu studieren, aber ich kann nicht herausfinden, wie ich es genau berechnen soll.Jacobische Matrixberechnung für künstliche neuronale Netze

Angenommen, ich verfüge über ein einfaches Feed-Forward-Netzwerk mit 3 Eingängen, 4 Neuronen in der versteckten Schicht und 2 Ausgängen. Ebenen sind vollständig verbunden. Ich habe auch 5 Reihen langes Lernset.

  1. Was genau sollte die Größe der Jacobi-Matrix sein?
  2. Was genau sollte ich an die Stelle der Derivate setzen? (Beispiele für die Formeln für die oben links und unten rechts Ecken zusammen mit einer Erklärung wäre perfekt)

Das ist wirklich nicht hilft:

enter image description here

Was sind F und x in Bezug auf ein neuronales Netzwerk?

Antwort

0

Also aus meiner Erfahrung mit ANN und Backpropagation Arbeits

  1. Jacobimatrix alle partiellen Ableitungen in eine m × n-Matrix organisiert, Wo m die Anzahl der ausgegebenen und n die Anzahl der Eingangs. Also in Ihrem Fall soll es die

  2. Also lassen Sie sagen, es ist eine Menge zwischen 1 und k Anzahl des Ausgangs (F in Ihrem Bild) 2x3 sein und es 1 und i Anzahl des Eingangs (x im Bild) so sollte die Formel wie diese

     Fk 
    Jki = ---- 
         xi 
    

Leider sein, weiß ich nicht, wie hier ein Formel-Format zu schreiben, aber ich hoffe, dass meine Antwort klar genug ist.
Wenn Sie Fragen zu meiner Antwort haben, fragen Sie bitte im Kommentar!

+0

Wie soll die F-Funktion aussehen?Auch Abhinash in seiner Antwort vorgeschlagen, dass die Größe der Matrix ist anders als was Sie vorgeschlagen (wenn ich ihn richtig verstehe). Vielleicht, wenn ich die F-Funktion sehe, wird es klarer. – gisek

7

Die Jacobi ist eine Matrix aller partiellen Ableitungen erster Ordnung einer vektorwertigen Funktion. Im Fall des neuronalen Netzwerks handelt es sich um eine N-mal-W-Matrix, wobei N die Anzahl der Einträge in unserem Trainingssatz und W die Gesamtzahl der Parameter (Gewichte + Verzerrungen) unseres Netzwerks ist. Es kann, indem man die partiellen Ableitungen von jedem Ausgang in Bezug auf jedes Gewicht geschaffen werden, und hat die Form:

enter image description here

Wo F (xi, w) die Netzwerkfunktion für den i-ten Eingang ausgewertet wird Der Vektor des Trainingssatzes unter Verwendung des Gewichtsvektors w und wj ist das j-te Element des Gewichtsvektors w des Netzwerks. In traditionellen Levenberg-Marquardt-Implementierungen wird die Jacobi-Approximation durch Verwendung finiter Differenzen durchgeführt. Für neurale Netzwerke kann es jedoch sehr effizient berechnet werden, indem die Kettenregel des Kalküls und die ersten Ableitungen der Aktivierungsfunktionen verwendet werden.

+0

Also in dem Beispiel von meiner Frage die Anzahl der Matrixspalten = 3 * 4 + 4 * 2 = 20 (lassen Sie uns die Verzerrungen für einen Moment vergessen) und die Anzahl der Matrixzeilen ist die gleiche wie die Anzahl der Zeilen in den Daten Satz (5)? Wie sollte die F-Funktion aussehen? – gisek

+0

@abhinash Sind Gradient und Jacobi gleich? Weil sogar die Gradientenmatrix von der Größe NxW sein würde, wie wir sie in die Gradientenabstiegsgleichung einfügen –

Verwandte Themen