Ich habe in Kapitel 6 von Deep Learning eine gute Implementierung gemacht - von Grund auf neu gemacht, also ein Memorandum. Jupyter wird ebenfalls veröffentlicht, daher würde ich mich freuen, wenn Sie auf Fehler hinweisen könnten. In dem Buch wurde der Datensatz lokal heruntergeladen, aber da sklearn einen Datensatz zum Lernen wie mnist hat, habe ich den Code so angepasst, dass ich nur aus sklearn importieren muss. [Jupyter-Notizbuch zur Veröffentlichung @github](https://github.com/fumitrial8/DeepLearning/blob/master/%E3%82%BB%E3%82%99%E3%83%AD%E3%81%8B% E3% 82% 89% E4% BD% 9C% E3% 82% 8BDeepLearning% 20% E7% AC% AC6% E7% AB% A0.ipynb)
Ein Verfahren zum Anpassen des Gewichts jedes Netzwerks durch Subtrahieren des Wertes, der durch Multiplizieren des Gradienten der Verlustfunktion mit einem bestimmten Lernkoeffizienten vom Gewicht erhalten wird. Als Ausdruck ausgedrückt
W (Gewicht nach Anpassung) = W (Gewicht vor Anpassung) --η * dL / dW (Lernkoeffizient * Gradient der Verlustfunktion)
Eine Methode zum Anpassen des Gewichts jedes Netzwerks durch Reduzieren des Lernkoeffizienten entsprechend dem Lernfortschritt. Als Ausdruck ausgedrückt
h (Verlauf der Steigung nach der Einstellung) = h (Verlauf der Steigung vor der Einstellung) --dL / dW * dL / dW (Quadrat der Steigung der Verlustfunktion)
W (Gewicht nach Anpassung) = W (Gewicht vor Anpassung) --η * h *** (-1 / 2) * dL / dW (Lernkoeffizient * Gradientenverlauf * Verlustfunktionsgradient)
Wie man das Gewicht jedes Netzwerks anpasst, indem man mehr lernt, wenn der Gradient größer ist, und weniger lernt, wenn der Gradient kleiner ist (ich konnte keinen guten Ausdruck finden ...). Als Ausdruck ausgedrückt
v (Verlauf der Gewichte nach Anpassung) = αv (Verlauf der Gewichte vor Anpassung) --η * dL / dW (Lernkoeffizient * Gradient der Verlustfunktion) Es scheint, dass α normalerweise auf 0,9 eingestellt ist.
W (Gewicht nach Einstellung) = W (Gewicht vor Einstellung) + v
Recommended Posts