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?
32
demandé sur user2314737 2017-06-12 12:16:34

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

il y a cinq mois François Chollet a apporté un correctif à l'activité régularisateur, qui était alors incluse dans Keras 2.1.4

37
répondu Michele Tonutti 2018-07-20 20:10:17