75 votes

Keras : Différence entre les régularisateurs à noyau et les régularisateurs d'activité

J'ai remarqué que régularisateur de poids n'est plus disponible dans Keras et que, à sa place, il y a des activité et Noyau régularisateur. Je voudrais savoir :

  • Quelles sont les principales différences entre Noyau et activité des régularisateurs ?
  • Pourrais-je utiliser régularisateur d'activité à la place de régularisateur de poids ?

77voto

Michele Tonutti Points 2289

Le régularisateur 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 le régularisateur de poids, comme son nom l'indique, travaille sur les poids, les rendant décroissants. 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 dans la documentation.

D'après la définition de kernel_regularizer :

kernel_regularizer : Fonction de régularisation appliquée à le site kernel matrice des poids (voir régularisateur).

Et activity_regularizer :

activité_régulatrice : Fonction de régularisation appliquée à la sortie de la couche (son "activation"). (voir régularisateur).

Modification importante : Notez qu'il y a un bug dans le régularisateur d'activité qui était corrigé uniquement 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 de la couche, au lieu d'être appliquée à la sortie (les activations réelles de la couche, comme prévu). Donc, attention si vous utilisez une ancienne version de Keras (avant 2.1.4), la régularisation de l'activité peut 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 pour le régularisateur d'activité, qui a ensuite été inclus dans la version 2.1.4 de Keras.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X