2017-03-23 2 views
5

Ich trainiere meine Methode. Ich habe das Ergebnis wie folgt erhalten. Ist es eine gute Lernrate? Wenn nicht, ist es hoch oder niedrig? Das ist mein ErgebnisIst es eine gute Lernrate für die Adam-Methode?

enter image description here

lr_policy: "step" 
gamma: 0.1 
stepsize: 10000 
power: 0.75 
# lr for unnormalized softmax 
base_lr: 0.001 
# high momentum 
momentum: 0.99 
# no gradient accumulation 
iter_size: 1 
max_iter: 100000 
weight_decay: 0.0005 
snapshot: 4000 
snapshot_prefix: "snapshot/train" 
type:"Adam" 

Dies ist Referenz

Mit niedrigeren Lernraten der Verbesserungen linear sein. Mit hohen Lernraten werden sie mehr exponentiell aussehen. Höhere Lernraten den Verlust schneller zerfallen, aber sie gehen auf schlechtere Werte von Verlust enter image description here

stecken
+0

Theres sehr wenig Kontext hier, aber es sieht gut aus. Sie können versuchen, die Lernrate zu erhöhen (um Trainingszeit zu sparen), bis Sie sehen, dass sie nicht mehr konvergiert. Was ist die Genauigkeit der Trainingseinheit am Ende? – Simon

+0

@Simon: In der obigen Einstellung beträgt die endgültige Fehlerrate bei 50000 Iterationen 0,05. Ich erhöhe die base_lr auf 0.002 statt 0.001, um die Verbesserung zu sehen – user8264

+1

Adam hat eine innere LR, also macht das Ändern der externen LR über Schritte keinen Sinn. –

Antwort

5

Sie mit einer höheren Lernrate beginnen (etwa 0,1) aus lokalen Minima erhalten dann verringern sie ein sehr kleiner Wert, um Dinge zu beruhigen. Um dies zu tun, ändern Sie die Schrittgröße auf 100 Iterationen, um die Lernrate alle 100 Iterationen zu reduzieren. Diese Zahlen sind wirklich einzigartig für Ihr Problem und hängen von mehreren Faktoren wie Ihrer Datenskala ab.

Denken Sie auch an das Validierungsverlustverhalten in der Grafik, um zu sehen, ob Sie die Daten überarbeiten.

+0

Soll Adam nicht alles alleine machen? Die lrate sollte auf eine feste Zahl gesetzt werden ist nicht sehr wichtig (zB 1 oder 1e-1) – Alex

+3

Selbst in der Adam-Optimierungsmethode ist die Lernrate ein Hyperparameter und muss angepasst werden, der Lernratenabfall funktioniert normalerweise besser als nicht es. –

5

Die Lernrate sieht ein bisschen hoch aus. Die Kurve nimmt für meinen Geschmack zu schnell ab und flacht sehr schnell ab. Ich würde versuchen, 0,0005 oder 0,0001 als Basislernrate, wenn ich zusätzliche Leistung erhalten wollte. Sie können aber auch nach mehreren Epochen nachsehen, wenn Sie sehen, dass dies nicht funktioniert.

Die Frage, die Sie sich stellen müssen, ist, wie viel Leistung Sie benötigen und wie nahe Sie der erforderlichen Leistung sind. Ich meine, dass Sie wahrscheinlich ein neuronales Netzwerk für einen bestimmten Zweck trainieren. Oftmals kann man mehr Leistung aus dem Netzwerk herausholen, indem man seine Kapazität erhöht, anstatt die Lernrate fein abzustimmen, was ziemlich gut, wenn nicht sogar perfekt ist.

Verwandte Themen