Hybride neuronale Netze. - Seite 17

 

Wer hat es ausprobiert?

...........................................................

Kombination von Backpropagation und Cauchy-Lernen

Die Korrektur der Gewichte im kombinierten Algorithmus mit Backpropagation und Cauchy-Lernen besteht aus zwei Komponenten: (1) einer Richtungskomponente, die mit dem Backpropagation-Algorithmus berechnet wird, und (2) einer Zufallskomponente, die durch die Cauchy-Verteilung definiert ist.

Diese Komponenten werden für jedes Gewicht berechnet, und ihre Summe ist der Betrag, um den sich das Gewicht ändert. Wie beim Cauchy-Algorithmus wird nach der Berechnung der Gewichtsänderung die Zielfunktion berechnet. Wenn eine Verbesserung eintritt, wird die Änderung gespeichert. Andernfalls wird sie mit der durch die Boltzmann-Verteilung bestimmten Wahrscheinlichkeit gespeichert.

Die Gewichtskorrektur wird anhand der zuvor für jeden der Algorithmen vorgestellten Gleichungen berechnet:

wmn,k(n+1) = wmn,k(n) + η [aΔwmn,k(n) + (1 - a) δ n,k OUT m,j ] + (1 - η) xc,

wobei η der Koeffizient ist, der die relativen Cauchy- und Backpropagation-Mengen in den Gewichtungsschrittkomponenten steuert. Wenn η gleich Null ist, wird das System zu einer vollständigen Cauchy-Maschine. Wenn η gleich eins ist, wird das System zu einer Rückvermehrungsmaschine.

........................................................

 
gumgum >> :

Können Sie näher auf Quasi-Newtonsche und LMA eingehen?

LMA = Levenberg-Marquardt-Algorithmus

Quasi-Newton-Verfahren

Gradientenmethoden zweiter Ordnung


Es gibt viel zu schreiben, kurz gesagt:


Newtonscher Algorithmus,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),wobei
H^(-1)(xk) ist die Inverse der Hesse-Matrix im Punkt xk,
sk ist der Stufenwert,
gradf(xk) ist die Steigung der Funktion im Punkt xk.

Die quasi-newtonsche Methode verwendet also die Matrix H(xk) anstelle von H^(-1)(xk), die aus partiellen Ableitungen zweiter Ordnung gebildet wird,
Bei der quasi-newtonschen Methode werden die zweiten Ableitungen nach der Methode der extremen Differenzen berechnet. Dementsprechend haben wir die beiden am häufigsten verwendeten

CR-Berechnungsformeln:


Broydon-Fletcher-Goldfarb-Shanno (BFGS)

Devidon - Fletcher - Powell(DFP).


LMA:


Bezieht sich auch auf Methoden zweiter Ordnung, d.h. es müssen partielle Ableitungen zweiter Ordnung berechnet werden,


xk+1 = xk - sk*H^(-1)(xk)grad f(xk),wobei

H^(-1)(xk)wird also berechnet als H= J^t*J, wobei J der Jacobi ist

bzw. gradf(xk) = J^t*E, wobei J^t die transponierte Jakobi ist und E der Netzwerkfehlervektor ist, dann

xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E, wobei mu ein Skalar ist, wenn mu 0 ist, haben wir die Newton-Methode mit hessischer Approximation, wenn mu -> + Inf,

Gradientenmethode mit kleinem Schritt.


Hier gibt es weitere Diskussionen:


Neuro-Synthesizer, Konstrukteur+Labor

 
rip писал(а) >>

LMA = Levenberg-Marquardt-Algorithmus

Quasi-Newton-Verfahren

Gradientenmethoden zweiter Ordnung

Kurz gesagt, es gibt viel zu schreiben:

Newtonscher Algorithmus,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),wobei
H^(-1)(xk) ist die Inverse der Hesse-Matrix im Punkt xk,
sk ist der Stufenwert,
gradf(xk) ist die Steigung der Funktion im Punkt xk.

Die quasi-newtonsche Methode verwendet also die Matrix H(xk) anstelle von H^(-1)(xk), die aus partiellen Ableitungen zweiter Ordnung gebildet wird,
Bei der quasi-newtonschen Methode werden die zweiten Ableitungen nach der Methode der extremen Differenzen berechnet. Dementsprechend haben wir zwei am häufigsten verwendete

CR-Berechnungsformeln:

Broydon-Fletcher-Goldfarb-Schanno (BFGS)

Devidon-Fletcher-Powell(DFP)


LMA:

Bezieht sich auch auf Methoden zweiter Ordnung, d.h. es müssen partielle Ableitungen zweiter Ordnung berechnet werden,

xk+1 = xk - sk*H^(-1)(xk)grad f(xk),wobei

H^(-1)(xk)wird also berechnet als H= J^t*J, wobei J der Jacobi ist

bzw. gradf(xk) = J^t*E, wobei J^t der transponierte Jacobi ist und E der Netzfehlervektor ist, dann

xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E, wobei mu ein Skalar ist, wenn mu 0 ist, haben wir die Newton-Methode mit hessischer Approximation, wenn mu -> + Inf,

Gradientenmethode mit kleinem Schritt.

Hier gibt es weitere Diskussionen:


Neuro-Synthesizer, Konstrukteur+Labor

Danke.

Die Frage bleibt... Wo liegt die Wahrheit?

Linke obere Ecke (RProp). Warum ist DE/DW=0, wenn DE/DW(t-1)*DE/DW<0?

 
gumgum >> :

Ich danke Ihnen.

Die Frage bleibt... Wo liegt die Wahrheit?

Linke obere Ecke. Warum ist DE/DW=0, wenn DE/DW(t-1)*DE/DW<0?

Ein negatives Produkt der Gradienten zeigt an, dass der Algorithmus das gewünschte Extremum "übersprungen" hat. Deshalb wird die Speicherzelle, in der der Wert der Steigung im aktuellen Schritt gespeichert ist (beachten Sie, dass es sich um die Speicherzelle und nicht um die Steigung selbst handelt), auf Null gesetzt, damit die dritte Bedingung im nächsten Schritt funktioniert. Dies ist ein schönes Merkmal des Algorithmus, wenn Sie den Artikel vollständig lesen.

 
alsu писал(а) >>

Ein negatives Produkt der Gradienten zeigt an, dass der Algorithmus über das geforderte Extremum "hinausgeschossen" ist. Deshalb wird die Speicherzelle, in der der Wert der Steigung im aktuellen Schritt gespeichert ist (Achtung, es handelt sich um die Speicherzelle, nicht um die Steigung selbst), auf Null gesetzt, damit die dritte Bedingung beim nächsten Schritt ausgelöst wird. Dies ist ein Trick des Algorithmus, wenn Sie den Artikel vollständig gelesen haben.

Aber dann braucht man de/dw(t-1)=0

 
gumgum >> :

Aber dann braucht man de/dw(t-1)=0

in diesem Schritt ist es de/dw(t), im nächsten wird es zu de/dw(t-1)

 
alsu писал(а) >>

in diesem Schritt ist es de/dw(t), im nächsten wird es zu de/dw(t-1)

Ich danke Ihnen. Können Sie mit JRprop q ist individuell für jedes Gewicht oder was hint?

 

Ich bin schon verwirrt einige schreiben deltaW=n*DE/DW andere deltaW=n*DE/DW andere etc etc ......

 
gumgum >> :

Ich danke Ihnen. Können Sie mir sagen, mit JRprop q ist individuell für jedes Gewicht oder was?

Soweit ich weiß, ist q für alle gleich

 
gumgum >> :

Ich bin schon verwirrt einige schreiben deltaW=-n*DE/DW andere deltaW=n*DE/DW andere usw. usw. ......

Fangen wir von vorne an: Der heuristische Algorithmus RProp verwendet die Analyse des Vorzeichens der ersten Ableitung der Fehlerfunktion nach Synapsengewicht.

Wenn das Vorzeichen der Ableitung positiv ist, dEdW(t)*dEdW(t-1) > 0, d. h. die Fehlerminimierung durchgeführt wird, bewegen wir uns in die richtige Richtung.

Wenn sich das Vorzeichen geändert hat, d. h. dEdW(t)*dEdW(t-1) < 0, haben wir das Minimum (lokales Minimum) verpasst und sollten zwei Schritte zurückgehen. Erstens, um das gerade verpasste Minimum zu kompensieren - in Ihrem Beispiel wird DELTAij(t) aus dem vorherigen Wert von delta und -eta berechnet. Sie brauchen Wij(t) in diesem Schritt nicht zu korrigieren, wir kehren nur zum vorherigen Wert von Wij zurück, aber die Art und Weise, wie Sie es tun, bedeutet, dass wir zweimal vom Punkt des Vorzeichenwechsels der Ableitung zurückgehen.


Was <deltaW=-n*DE/DW oder deltaW=n*DE/DW> betrifft, so spielt das keine Rolle, man muss nur verstehen, welcher Schritt was tut, in welcher Richtung und zu welchem Zeitpunkt.


Da es sich um eine Heuristik handelt, kommt es nicht auf die genaue Einhaltung der Formeln an, sondern auf das Prinzip, das zählt.