Le régulariseur d'activité fonctionne en fonction de la sortie du réseau, et est principalement utilisé pour régulariser les unités cachées, tandis que weight_regularizer, comme son nom l'indique, travaille sur les poids, les faisant se désintégrer. Fondamentalement, vous pouvez exprimer la perte de régularisation en fonction de la sortie ( activity_regularizer
) ou des poids ( weight_regularizer
).
Le nouveau kernel_regularizer
remplace weight_regularizer
- bien que ce ne soit pas très clair d'après la documentation.
D'après la définition de kernel_regularizer
:
kernel_regularizer: fonction de régularisation appliquée à la kernel
matrice de poids (voir régulariseur).
Et activity_regularizer
:
activity_regularizer: fonction de régularisation appliquée à la sortie du calque (son "activation"). (voir régularisateur).
Modification importante : notez qu'il existe un bogue dans activity_regularizer qui n'a été corrigé que dans la version 2.1.4 de Keras (au moins avec le backend Tensorflow). En effet, dans les anciennes versions, la fonction de régularisation d'activité est appliquée à l'entrée du calque, au lieu d'être appliquée à la sortie (les activations réelles du calque, comme prévu). Alors méfiez-vous si vous utilisez une ancienne version de Keras (avant 2.1.4), la régularisation des activités peut probablement ne pas fonctionner comme prévu.
Vous pouvez voir le commit sur GitHub
Il y a cinq mois, François Chollet a fourni un correctif au régulariseur d'activité, qui a ensuite été inclus dans Keras 2.1.4
kernel_regularizer
remplacementweight_regularizer
?