Antwort

39

Die weight_decay Meta-Parameter regeln den Regularisierungsterm des neuronalen Netzes.

Während des Trainings wird dem Netzwerkverlust eine Regularisierungsbedingung hinzugefügt, um den Backprop-Gradienten zu berechnen. Der Wert weight_decay bestimmt, wie dominant dieser Regularisierungsausdruck in der Gradientenberechnung sein wird.

Als Faustregel gilt: Je mehr Trainingsbeispiele Sie haben, desto schwächer sollte dieser Begriff sein. Je mehr Parameter Sie haben (d. H. Tieferes Netz, größere Filter, größere InnerProduct-Schichten usw.), desto höher sollte dieser Ausdruck sein.

Caffe können Sie auch zwischen L2 Regularisierung (Standard) und L1 Regularisierung wählen, durch

regularization_type: "L1" 

jedoch festlegen, da in den meisten Fällen Gewichte sind kleine Zahlen (dh -1<w<1), die L2 Norm des Gewichte ist deutlich kleiner als ihre L1 Norm. Wenn Sie also regularization_type: "L1" verwenden, müssen Sie möglicherweise weight_decay auf einen deutlich kleineren Wert einstellen.

Während sich die Lernrate während des Trainings ändert (und sich normalerweise ändert), ist das Regularisierungsgewicht durchgehend festgelegt.

+0

Vielleicht könnten Sie die Gründe für Ihre Faustregel erklären? Hast du eine Quelle dafür? – Janosch

+10

@Janosch Normalerweise muss man die Regularisierung verwenden, wenn ein numerisches Problem mehr Parameter als Einschränkungen hat. Beim Lernen stellen Trainingsbeispiele "Einschränkungen" dar. Wenn Sie also (viel) mehr Trainingsbeispiele als freie Parameter haben, müssen Sie sich weniger um die Überanpassung kümmern, und Sie können den Regularisierungszeitraum reduzieren. Wenn Sie jedoch nur sehr wenige Trainingsbeispiele haben (verglichen mit der Anzahl der Parameter), ist Ihr Modell anfällig für Überanpassungen und Sie brauchen einen starken Regularisierungs-Term, um dies zu verhindern – Shai

+0

Müssen Sie 'param {lr_mult: 1 decea_mult: 1 setzen } 'in der' Faltung' Schicht oder ist der Regularisierungstyp global? @Shai – thigi

13

Gewichtsverfall ist ein Regularisierungsbegriff, der große Gewichte bestraft. Wenn der Gewichtzerfallskoeffizient groß ist, ist die Strafe für große Gewichte auch groß, wenn kleine Gewichte frei wachsen können.

Schauen Sie sich diese Antwort (nicht spezifisch für Caffe) für eine bessere Erklärung an: Difference between neural net "weight decay" and "learning rate".