Der Aktivitäts-Regularisierer funktioniert als Funktion der Ausgabe des Netzes und wird hauptsächlich zum Regularisieren versteckter Einheiten verwendet, während weight_regularizer, wie der Name schon sagt, die Gewichte bearbeitet und sie zerfallen lässt. Grundsätzlich können Sie den Regularisierungsverlust als Funktion der Ausgabe ( activity_regularizer
) oder der Gewichte ( weight_regularizer
) ausdrücken .
Das neue kernel_regularizer
ersetzt weight_regularizer
- obwohl es aus der Dokumentation nicht sehr klar ist.
Aus der Definition von kernel_regularizer
:
kernel_regularizer: Regularizer-Funktion, die auf die kernel
Gewichtsmatrix angewendet wird (siehe Regularizer).
Und activity_regularizer
:
activity_regularizer: Regularizer-Funktion, die auf die Ausgabe der Ebene angewendet wird (ihre "Aktivierung"). (siehe Regularizer).
Wichtige Änderung : Beachten Sie, dass im activity_regularizer ein Fehler vorliegt , der nur in Version 2.1.4 von Keras behoben wurde (zumindest mit Tensorflow-Backend). In den älteren Versionen wird die Aktivitätsregelungsfunktion auf die Eingabe der Ebene angewendet, anstatt auf die Ausgabe (die tatsächlichen Aktivierungen der Ebene, wie beabsichtigt). Wenn Sie also eine ältere Version von Keras (vor 2.1.4) verwenden, funktioniert die Regularisierung der Aktivitäten möglicherweise nicht wie beabsichtigt.
Sie können das Commit auf GitHub sehen
Vor fünf Monaten hat François Chollet einen Fix für den Aktivitäts-Regularisierer bereitgestellt, der dann in Keras 2.1.4 enthalten war
kernel_regularizer
Ersatz völlig sicherweight_regularizer
?