Warum ist es wichtig, einen Bias-Korrektur-Term für den Adam-Optimierer für Deep Learning einzufügen?

14

Ich habe über den Adam-Optimierer für Deep Learning gelesen und bin in dem neuen Buch Deep Learning von Begnio, Goodfellow und Courtville auf folgenden Satz gestoßen:

Adam schließt Vorspannungskorrekturen an den Schätzungen sowohl der Momente erster Ordnung (dem Impulsausdruck) als auch der (nicht zentrierten) Momente zweiter Ordnung ein, um ihre Initialisierung am Ursprung zu berücksichtigen.

es scheint , dass der Hauptgrund für diese Bias - Korrekturterme enthalten ist , dass es irgendwie um die Vorspannung der Initialisierung entfernt mt=0 und vt=0 .

  • Ich bin nicht zu 100% sicher, was das bedeutet, aber es scheint mir, dass es wahrscheinlich bedeutet, dass der 1. und 2. Moment bei Null beginnen und es irgendwie bei Null beginnt, was die Werte für das Training auf unfaire (oder nützliche) Weise näher an Null bringt ?
  • Allerdings würde ich gerne wissen, was das genau bedeutet und wie das dem Lernen schadet. Welche Vorteile hat insbesondere die Entlastung des Optimierers in Bezug auf die Optimierung?
  • Wie hilft dies beim Training von Deep Learning-Modellen?
  • Was bedeutet es auch, wenn es unvoreingenommen ist? Ich weiß, was unvoreingenommene Standardabweichung bedeutet, aber mir ist nicht klar, was dies in diesem Zusammenhang bedeutet.
  • Ist die Bias-Korrektur wirklich eine große Sache oder ist das im Adam-Optimierungspapier etwas überzeichnet?

Nur damit die Leute wissen, dass ich mich wirklich sehr bemüht habe, das Originalpapier zu verstehen, aber ich habe sehr wenig davon, das Originalpapier zu lesen und erneut zu lesen. Ich nehme an, einige dieser Fragen könnten dort beantwortet werden, aber ich kann die Antworten nicht analysieren.

Charlie Parker
quelle
2
Link: arxiv.org/pdf/1412.6980v8.pdf Die Gradientenschätzungen für den ersten und zweiten Moment werden über den gleitenden Durchschnitt aktualisiert und mit beiden Schätzwerten von Null begonnen. Daher würden diese Anfangswerte, für die der wahre Wert nicht Null ist, die Ergebnisse verzerren , weil die anfänglichen Schätzungen von Null nur allmählich aussterben. Was ich nicht verstehe, ist, warum der Gradient am Anfangspunkt nicht für die Anfangswerte dieser Dinge verwendet wird, und dann die erste Parameteraktualisierung. Dann würde es keine Verunreinigung durch die anfänglichen Nullwerte geben, die rückgängig gemacht werden müsste. Es wäre also keine Korrektur der Vorspannung erforderlich.
Mark L. Stone
1
Anstatt einen speziellen Code für die anfängliche Iteration zu haben, haben sich die Autoren entschieden, eine mathematisch äquivalente Sache zu tun, indem sie eine Verzerrung einführten und diese dann rückgängig machten. Dies fügt unnötige, wenn auch schnelle Berechnungen für alle Iterationen hinzu. Dabei haben sie eine Code-Reinheit beibehalten, die bei allen Iterationen gleich aussieht. Ich hätte stattdessen nur mit der ersten Gradientenauswertung begonnen und die Formel zur Aktualisierung des Gradientenmoments erst mit der zweiten Iteration gestartet.
Mark L. Stone
@ MarkL.Stone Die Autoren betonen die Bias-Korrektur so sehr, dass es mir so vorkam, als ob dies in ihrer Arbeit neu oder wichtig wäre. Sie hätten also einfach nicht "die Verzerrung korrigieren" und den gleichen Algorithmus haben können? Wenn das stimmt, verstehe ich nicht, warum Adam ein so wichtiger Optimierer ist oder was die große Sache ist. Ich dachte immer, es sei die Bias-Korrektur.
Charlie Parker
4
Sie führen eine Verzerrung ein und korrigieren sie dann, ohne dass mir ein wichtiger Grund ersichtlich ist. Es ist so, als würde man mit 2 multiplizieren (oh mein Gott, das Ergebnis ist verzerrt) und dann durch 2 teilen, um es zu "korrigieren". Das Ganze mit dem Einbringen und Entfernen der Verzerrung scheint eine unnötige Nebenwirkung zu sein. Vielleicht war die Zeitschrift nicht lang genug, ohne es zu tun, also haben sie dieses Spiel hinzugefügt, um es länger zu machen :) Adam mag seine Vorzüge haben, aber sie hätten es genauso gemacht, wie ich es vorgeschlagen hatte. Ich würde es lieben, wenn die Autoren hierher kommen und es erklären. Vielleicht fehlt mir ein subtiler Punkt oder ich verstehe etwas falsch.
Mark L. Stone

Antworten:

14

Das Problem der nicht die Bias Korrektur
Gemäß dem Papier

Bei spärlichen Verläufen muss für eine zuverlässige Schätzung des zweiten Moments über viele Verläufe gemittelt werden, indem ein kleiner Wert von β2 gewählt wird. es ist jedoch genau dieser Fall von kleinem & bgr; 2, wo ein Mangel an Initialisierungsvorspannungskorrektur zu Anfangsschritten führen würde, die viel größer sind.

enter image description here

β2β1β2=0.999β1=0.91β2=0.0011β1=0.1

m1=0.1gtv1=0.001gt2m1/(v1+ϵ)

m1^=g1v1^=g12mt^/(vt^+ϵ)β1β2


m0mt=βmt1+(1β)gtm0

m1=βm0+(1β)gtβm0m1(1β)m1^=(m1βm0)/(1β)m0=0mt^=mt/(1βt)


Wie Mark L. Stone gut kommentiert hat

Es ist so, als würde man mit 2 multiplizieren (oh mein Gott, das Ergebnis ist verzerrt) und dann durch 2 teilen, um es zu "korrigieren".

Irgendwie ist das nicht genau gleichbedeutend mit

Der Gradient am Anfangspunkt wird für die Anfangswerte dieser Dinge und dann für die erste Parameteraktualisierung verwendet

(Natürlich kann es durch Ändern der Aktualisierungsregel in die gleiche Form gebracht werden (siehe Aktualisierung der Antwort), und ich glaube, diese Zeile zielt hauptsächlich darauf ab, die Unnötigkeit der Einführung der Verzerrung aufzuzeigen, aber vielleicht lohnt es sich, den Unterschied zu bemerken.)

Zum Beispiel der korrigierte erste Moment zum Zeitpunkt 2

m2^=β(1β)g1+(1β)g21β2=βg1+g2β+1

g1

m2=βg1+(1β)g2
g1

Ist die Bias-Korrektur wirklich eine große Sache?
Da sie nur die ersten paar Schritte des Trainings betrifft, scheint sie kein sehr großes Problem zu sein. In vielen gängigen Frameworks (z. B. Keras , Caffe ) wird nur die Bias-Schätzung implementiert.

ϵ


m^t

m^t=βt1g1+βt2g2+...+Gtβt-1+βt-2+...+1
The denominator can be computed by the geometric sum formula, so it's equivalent to following update rule (which doesn't involve a bias term)

m1g1
while not converge do
mtβmt+gt (weighted sum)
m^t(1β)mt1βt (weighted average)

Therefore it can be possibly done without introducing a bias term and correcting it. I think the paper put it in the bias-correction form for the convenience of comparing with other algorithms (e.g. RmsProp).

dontloo
quelle
1
Do you agree with my 2nd comment on the question? To me, that's the bottom line. The thing about the multiplying and dividing by 2 was just supposed to be an "easier to understand" analogy, not the math used in the matter at hand. if there were other papers, which i haven't looked at, which introduced a bias by the same mechanism, which in the case of ADAM seems entirely avoidable, but didn't correct it, then that's just totally STUPID (unless somehow the bias helped the performance of the algorithm).
Mark L. Stone
@MarkL.Stone yes! actually i upvoted it, sorry about my English. and i think the algorithm that didn't correct the bias is the rmsprop, but unlike adam rmsprop works fine with the bias.
dontloo
@dontloo does your answer address Mark L. Stone's comment on why the bias correction seems superfluous? (That I think is quite important, maybe even more than paraphrasing what the original paper says).
Charlie Parker
@CharlieParker you mean why the bias correction is superfluous or why the author makes it look superfluous?
dontloo
@dontloo I don't think the authors make it superfluous. I thought they did indeed need it (given their specific conditions). However, I thought that it wasn't necessary given Mark's suggestion. I guess my question in the comments section right now is if they really needed the correction term.
Charlie Parker