Ich habe über den Adam-Optimierer für Deep Learning gelesen und bin in dem neuen Buch Deep Learning von Bengio, Goodfellow und Courville auf folgenden Satz gestoßen:
Adam wird allgemein als ziemlich robust gegenüber der Auswahl von Hyperparametern angesehen, obwohl die Lernrate manchmal von der vorgeschlagenen Standardeinstellung geändert werden muss.
Wenn dies zutrifft, ist es eine große Sache, da die Suche nach Hyperparametern (zumindest nach meiner Erfahrung) für die statistische Leistung eines Deep-Learning-Systems sehr wichtig sein kann. Meine Frage ist also, warum ist Adam Robust so wichtig? Speziell und β 2 ?
Ich habe das Adam-Papier gelesen und es liefert keine Erklärung, warum es mit diesen Parametern arbeitet oder warum es robust ist. Rechtfertigen sie das anderswo?
Während ich das Papier lese, scheint es auch so zu sein, dass die Anzahl der Hyperparameter, die sie ausprobiert haben, sehr gering ist, für nur 2 und für β 2 nur 3. Wie kann dies eine gründliche empirische Studie sein, wenn es nur mit 2x3 Hyperparametern funktioniert? ?
quelle
Antworten:
In Bezug auf die Beweise in Bezug auf die Behauptung glaube ich, dass die einzigen Beweise, die die Behauptung stützen, in Abbildung 4 in ihrem Papier zu finden sind . Sie zeigen die Endergebnisse unter verschiedenen Werten für , β 2 und α .β1 β2 α
Persönlich finde ich ihre Argumentation nicht überzeugend, insbesondere weil sie nicht zu einer Vielzahl von Problemen führen. Mit dieser sagte, werde ich anmerken , dass ich für eine Vielzahl von Problemen , gebrauchten ADAM habe, und meine persönliche Erkenntnis ist , dass die Standardwerte von und β 2 haben überraschend zuverlässig scheinen, obwohl ein gutes Geschäft mit der dem Hantieren α erforderlich ist.β1 β2 α
quelle
Dies steht im enormen Kontrast zu der stochastischen Gradientenabnahme mit Vanille, bei der:
Adam ist nicht der einzige Optimierer mit adaptiven Lernraten. Wie das Adam-Papier selbst feststellt, ist es in hohem Maße mit Adagrad und Rmsprop verwandt, die auch extrem unempfindlich gegenüber Hyperparametern sind. Vor allem Rmsprop funktioniert ganz gut.
Aber Adam ist im Allgemeinen der Beste. Mit sehr wenigen Ausnahmen wird Adam tun, was Sie wollen :)
Es gibt einige ziemlich pathologische Fälle, in denen Adam nicht funktioniert, insbesondere bei einigen sehr instationären Verteilungen. In diesen Fällen ist Rmsprop eine hervorragende Standby-Option. Aber im Allgemeinen funktioniert Adam in den meisten nicht pathologischen Fällen sehr gut.
quelle
Betrachtet man die ADAM-Formeln, so erscheint es ein wenig verwirrend, dass nach einer sehr großen Anzahl von Batch-Iterationen (sagen wir ~ 400k) die Größe des ursprünglichen fehlerbasierten Gradienten selbst ~ keine tatsächliche Rolle in dem Schritt spielt, der angestrebt zu werden scheint den Konfigurationsparameter für die Lernrate im entsprechenden Zeichen.
Vielleicht kontrolliert ADAM die Gewichtsanpassung besser als einfaches SGD während der ersten Iterationen / Epocs, aber in Zukunft scheint das Update auf etwas Naives reduziert zu sein (?) Kann jemand eine Vorstellung davon haben, warum das eigentlich erwünscht ist und / oder gut funktioniert?
quelle