Keras: différence entre les régularisateurs du noyau et de L'activité
j'ai remarqué que weight_regularizer n'est plus disponible en Keras et que, à sa place, il y a activité et kernel regularizer. Je voudrais savoir:
- Quelles sont les principales différences entre kernel et activité regularizers?
- Pourrais-je utiliser activity_regularizer au lieu de weight_regularizer?
1 réponses
l'activité régularisateur fonctionne comme une fonction de la sortie du réseau, et est principalement utilisé pour régulariser les unités cachées, tandis que weight_regularizer, comme le nom l'indique, fonctionne sur les poids, les rendant pourrir. Fondamentalement, vous pouvez exprimer la perte de régularisation en fonction de la sortie (activity_regularizer
) ou de poids (weight_regularizer
).
La kernel_regularizer
remplace weight_regularizer
- bien que ce ne soit pas très clair dans la documentation.
de la définition de kernel_regularizer
:
kernel_regularizer: la fonction Regularizer appliquée à
kernel
matrice de pondérations (voir regularizer).
Et activity_regularizer
:
activity_regularizer: fonction Regularizer appliquée à la sortie de la couche ("activation"). (voir regularizer).
Important Edit: Notez qu'il y a un bug dans le activity_regularizerseulement corrigé dans la version 2.1.4 de Keras (au moins avec le dispositif arrière Tensorflow). En effet, dans les versions plus anciennes, l'activité regularizer fonction est appliquée à l'entrée de la couche, au lieu d'être appliqué à la sortie (les activations de la couche, comme prévu). Donc attention si vous utilisez une version plus ancienne de Keras (avant 2.1.4), la régularisation de l'activité peut probablement ne pas fonctionner comme prévu.
Vous pouvez voir la s'engager sur GitHub