2017-10-23 2 views
1

Ich versuche gerade, mir etwas über neuronale Netze beizubringen. Also kaufte ich mir das von Wolfgang Beer geschriebene Buch Applied Artificial Intelligence, und ich bin jetzt dabei, einen Teil seines Codes zu verstehen. Eigentlich verstehe ich den Code, den ich nicht nur dahinter einen mathematischen Schritt verstehen ... Das Teil sieht wie folgt aus:Wie man die Gewichte im Gradientenabstieg einstellt

for i in range(iterations): 
     guessed = sig(inputs*weights) 
     error = output - guessed 
     adjustment = error*sig_d(outpus) 
     #Why is there no learningrate? 
     #Why is the adjustment relative to the error 
     #muliplied by the derivative of your main function? 
     weights += adjustment 

Ich habe versucht, bis zu schauen, wie die Gradientenabfallverfahren funktioniert, aber ich habe nie den Teil mit dem Justieren der Gewichte. Wie funktioniert die Mathematik dahinter und warum verwenden Sie das Derivat dafür? Alo, als ich anfing, im Internet nach anderen Lösungen zu suchen, sah ich sie immer mit einer Lernrate. Ich verstehe das Konzept, aber warum wird diese Methode in diesem Buch nicht verwendet? Es würde mir wirklich helfen, wenn mir jemand diese Fragen beantworten könnte ...

Und danke für all diese schnellen Antworten in der Vergangenheit.

Antwort

1

enter image description here

ein Regressionsmodell trainieren wir mit beliebigen Gewichten beginnen und Gewichte so einstellen, dass der Fehler minimal sein wird. Wenn wir den Fehler als eine Funktion von Gewichten graphisch darstellen, erhalten wir ein Diagramm wie oben, wobei der Fehler J (θ0, θ1) eine Funktion der Gewichte θ0, θ1 ist. Wir werden erfolgreich sein, wenn unser Fehler ganz unten im Graphen liegt, wenn sein Wert das Minimum ist. Die roten Pfeile zeigen die minimalen Punkte in der Grafik. Um den minimalen Punkt zu erreichen, nehmen wir die Ableitung (die tangentiale Linie zu einer Funktion) unserer Fehlerfunktion. Die Steigung der Tangente ist die Ableitung an diesem Punkt und gibt uns eine Richtung, in die wir uns bewegen können. Wir machen die Kostenfunktion in die Richtung mit dem steilsten Abstieg herunter. Die Größe jedes Schritts wird durch den Parameter α bestimmt, der Lernrate genannt wird.

Der Gradientenabstiegsalgorithmus ist:

repeat until convergence: 

θj:=θj −[ Derivative of J(θ0,θ1) in respect of θj] 

where 
j=0,1 represents the weights' index number. 

enter image description here

In der obigen Abbildung wir Plot Fehler J (θ1) eine Funktion des Gewichts θ1 ist. Wir beginnen mit einem beliebigen Wert von & thgr; 1 und nehmen die Ableitung (Steigung der Tangente) des Fehlers J (& thgr; 1), um das Gewicht & thgr; 1 so einzustellen, dass wir den Boden erreichen können, wo der Fehler minimal ist. Wenn die Steigung positiv ist, müssen wir nach links gehen oder das Gewicht θ1 verringern. Und wenn die Steigung negativ ist, müssen wir nach rechts gehen oder θ1 erhöhen. Wir müssen diesen Vorgang bis zur Konvergenz oder Erreichen des Minimalpunktes wiederholen.

enter image description here

Wenn zu klein Rate α Lernen ist konvergiert Gradientenabfallsaktualisierung zu langsam. Und wenn & alpha; zu groß ist, überstürzt der Gradientenabfall und konvergiert nicht.

Alle Figuren wurden von Andrew Ng Maschine Learning-Kurs auf coursera.org https://www.coursera.org/learn/machine-learning/home/welcome

genommen
0

Warum gibt es keine Lernrate?

  • gibt es viele verschiedene Varianten von neuronalen Netzen, werden einige Lernraten und andere verwenden wahrscheinlich nur diese konstant halten

Warum ist die Einstellung in Bezug auf den Fehler

  • was sonst sollte es relativ sein? Wenn es viele Fehler gibt, dann sind die Chancen groß, dass Sie viele Anpassungen vornehmen müssen. Wenn es nur einen kleinen Fehler gibt, dann würden Sie nur Ihre Gewichte ein wenig anpassen wollen.

multipliziert mit der Ableitung Ihrer Hauptfunktion?

  • habe keine wirklich gute Antwort für diesen.
Verwandte Themen