Recherche de site Web

Une introduction douce à la régularisation d'activation dans le Deep Learning


Les modèles d'apprentissage profond sont capables d'apprendre automatiquement une riche représentation interne à partir de données d'entrée brutes.

C’est ce qu’on appelle l’apprentissage de fonctionnalités ou de représentations. Des représentations mieux apprises, à leur tour, peuvent conduire à de meilleures connaissances sur le domaine, par ex. via la visualisation des fonctionnalités apprises et de meilleurs modèles prédictifs qui utilisent les fonctionnalités apprises.

Un problème avec les fonctionnalités apprises est qu'elles peuvent être trop spécialisées par rapport aux données d'entraînement, ou sur-ajustées, et ne pas bien se généraliser à de nouveaux exemples. Des valeurs élevées dans la représentation apprise peuvent être le signe d'un surajustement de la représentation. La régularisation d'activité ou de représentation fournit une technique pour encourager les représentations apprises, la sortie ou l'activation de la ou des couches cachées du réseau, à rester petites et clairsemées.

Dans cet article, vous découvrirez la régularisation d'activation comme technique pour améliorer la généralisation des fonctionnalités apprises dans les réseaux de neurones.

Après avoir lu cet article, vous saurez :

  • Les réseaux de neurones apprennent des fonctionnalités à partir de données et de modèles, tels que les auto-encodeurs et les modèles d'encodeur-décodeur, recherchent explicitement des représentations apprises efficaces.
  • Semblables aux poids, les valeurs élevées des fonctionnalités apprises, par ex. des activations importantes peuvent indiquer un modèle surajusté.
  • L'ajout de pénalités à la fonction de perte qui pénalisent un modèle proportionnellement à l'ampleur des activations peut aboutir à des fonctionnalités apprises plus robustes et généralisées.

Démarrez votre projet avec mon nouveau livre Better Deep Learning, comprenant des tutoriels étape par étape et les fichiers code source Python pour tous les exemples .

Commençons.

Aperçu

Ce didacticiel est divisé en cinq parties ; ils sont:

  1. Problème avec les fonctionnalités apprises
  2. Encouragez les petites activations
  3. Comment encourager les petites activations
  4. Exemples de régularisation d'activation
  5. Conseils d'utilisation de la régularisation d'activation

Problème avec les fonctionnalités apprises

Les modèles d'apprentissage profond sont capables d'effectuer un apprentissage de fonctionnalités.

Autrement dit, lors de la formation du réseau, le modèle extraira automatiquement les caractéristiques saillantes des modèles d'entrée ou « apprendre les fonctionnalités ». Ces caractéristiques peuvent être utilisées dans le réseau afin de prédire une quantité à des fins de régression ou de prédire une valeur de classe à des fins de classification.

Ces représentations internes sont des choses tangibles. La sortie d'une couche cachée au sein du réseau représente les fonctionnalités apprises par le modèle à ce stade du réseau.

Il existe un domaine d'étude axé sur l'apprentissage automatique efficace et efficient des fonctionnalités, souvent étudié en demandant à un réseau de réduire une entrée à une petite fonctionnalité apprise avant d'utiliser un deuxième réseau pour reconstruire l'entrée originale à partir de la fonctionnalité apprise. Les modèles de ce type sont appelés auto-encodeurs, ou encodeurs-décodeurs, et leurs fonctionnalités apprises peuvent être utiles pour en savoir plus sur le domaine (par exemple via la visualisation) et dans les modèles prédictifs.

Les fonctionnalités apprises, ou « entrées codées », doivent être suffisamment volumineuses pour capturer les caractéristiques principales de l'entrée, mais également suffisamment ciblées pour ne pas surajuster les exemples spécifiques de l'ensemble de données d'entraînement. Il existe donc une tension entre l’expressivité et la généralisation des traits appris.

Plus important encore, lorsque la dimension du code dans une architecture codeur-décodeur est plus grande que l'entrée, il est nécessaire de limiter la quantité d'informations transportées par le code, de peur que le codeur-décodeur puisse simplement apprendre la fonction d'identité de manière triviale. et produire des fonctionnalités sans intérêt.

— Apprentissage non supervisé des hiérarchies de fonctionnalités invariantes avec des applications à la reconnaissance d'objets, 2007.

De la même manière que des poids élevés dans le réseau peuvent signifier un modèle instable et surajusté, des valeurs de sortie élevées dans les fonctionnalités apprises peuvent signifier les mêmes problèmes.

Il est souhaitable d'avoir de petites valeurs dans les fonctionnalités apprises, par ex. petites sorties ou activations du réseau d'encodeurs.

Encouragez les petites activations

La fonction de perte du réseau peut être mise à jour pour pénaliser les modèles proportionnellement à l'ampleur de leur activation.

Ceci est similaire à la « régularisation des poids » où la fonction de perte est mise à jour pour pénaliser le modèle proportionnellement à l'ampleur des poids. La sortie d'une couche est appelée son « activation », en tant que telle, cette forme de pénalité ou de régularisation est appelée « régularisation d'activation » ou « régularisation d'activité'

… imposer une pénalité aux activations des unités dans un réseau de neurones, favorisant que leurs activations soient clairsemées.

— Page 254, Apprentissage profond, 2016.

La sortie d'un codeur ou, généralement, la sortie d'une couche cachée dans un réseau neuronal peut être considérée comme la représentation du problème à ce stade du modèle. En tant que tel, ce type de pénalité peut également être appelé « régularisation de la représentation ».

Le désir d’avoir de petites activations ou même très peu d’activations avec pour la plupart des valeurs nulles est également appelé désir de parcimonie. En tant que tel, ce type de pénalité est également appelé « apprentissage de fonctionnalités fragmentées ».

Une façon de limiter le contenu informatif d’un code surcomplet est de le rendre clairsemé.

— Apprentissage non supervisé des hiérarchies de fonctionnalités invariantes avec des applications à la reconnaissance d'objets, 2007.

L'encouragement des fonctionnalités apprises clairsemées dans les modèles d'encodeurs automatiques est appelé « autoencodeurs clairsemés ».

Un auto-encodeur clairsemé est simplement un auto-encodeur dont le critère d'entraînement implique une pénalité de parcimonie sur la couche de code, en plus de l'erreur de reconstruction.

— Page 505, Apprentissage profond, 2016.

La parcimonie est le plus souvent recherchée lorsqu'une couche cachée plus grande que nécessaire (par exemple, sur-complète) est utilisée pour apprendre des fonctionnalités susceptibles d'encourager un sur-ajustement. L’introduction d’une pénalité de parcimonie résout ce problème et encourage une meilleure généralisation.

Il a été démontré qu'une fonctionnalité apprise surcomplète clairsemée est plus efficace que d'autres types de fonctionnalités apprises, offrant une meilleure robustesse au bruit et même aux transformations de l'entrée, par ex. les caractéristiques apprises des images peuvent avoir amélioré l'invariance à la position des objets dans l'image.

Les représentations clairsemées-sur-complètes présentent un certain nombre d’avantages théoriques et pratiques, comme le démontrent un certain nombre d’études récentes. En particulier, ils présentent une bonne robustesse au bruit, et assurent un bon pavage de l'espace commun de localisation et de fréquence. De plus, ils sont avantageux pour les classificateurs car la classification est plus susceptible d’être plus facile dans des espaces de dimensions supérieures.

— Apprentissage de fonctionnalités clairsemées pour les réseaux Deep Belief, 2007.

L'accent est généralement mis sur la parcimonie des représentations plutôt que sur les petites magnitudes vectorielles. Une étude de ces représentations qui est plus générale que l'utilisation des réseaux de neurones est connue sous le nom de « codage clairsemé ».

Le codage clairsemé fournit une classe d'algorithmes pour trouver des représentations succinctes de stimuli ; à partir de données d'entrée non étiquetées, il apprend les fonctions de base qui capturent les fonctionnalités de niveau supérieur dans les données.

— Algorithmes de codage clairsemés efficaces, 2007.

Comment encourager les petites activations

Une pénalité d'activation peut être appliquée par couche, peut-être uniquement sur une couche qui est au centre de la représentation apprise, comme la sortie du modèle d'encodeur ou le milieu (goulot d'étranglement) d'un modèle d'encodeur automatique.

Une contrainte peut être appliquée qui ajoute une pénalité proportionnelle à l'ampleur de la sortie vectorielle de la couche.

Les valeurs d'activation peuvent être positives ou négatives, nous ne pouvons donc pas simplement additionner les valeurs.

Deux méthodes courantes pour calculer l’ampleur de l’activation sont :

  • Somme des valeurs absolues d’activation, appelée norme vectorielle l1.
  • Somme des carrés des valeurs d’activation, appelée norme vectorielle l2.

La norme L1 encourage la parcimonie, par ex. permet à certaines activations de devenir nulles, alors que la norme l2 encourage en général de petites valeurs d'activation. L'utilisation de la norme L1 peut être une pénalité plus couramment utilisée pour la régularisation d'activation.

Un hyperparamètre doit être spécifié pour indiquer le montant ou le degré auquel la fonction de perte pondérera ou prêtera attention à la pénalité. Les valeurs courantes sont sur une échelle logarithmique comprise entre 0 et 0,1, comme 0,1, 0,001, 0,0001, etc.

La régularisation de l'activité peut être utilisée conjointement avec d'autres techniques de régularisation, telles que la régularisation du poids.

Exemples de régularisation d'activation

Cette section fournit quelques exemples de régularisation d'activation afin de fournir un certain contexte sur la façon dont la technique peut être utilisée dans la pratique.

Les activations régularisées ou clairsemées ont été initialement recherchées comme approche pour soutenir le développement de réseaux neuronaux beaucoup plus profonds, au début de l’histoire de l’apprentissage profond. Ainsi, de nombreux exemples peuvent utiliser des architectures telles que les machines Boltzmann (RBM) restreintes qui ont été remplacées par des méthodes plus modernes. Une autre grande application de la régularisation du poids concerne les auto-encodeurs avec des données semi-étiquetées ou non, appelés auto-encodeurs clairsemés.

Xavier Glorot, et al. à l'Université de Montréal a introduit l'utilisation de la fonction d'activation linéaire rectifiée pour encourager la rareté de la représentation. Ils ont utilisé une pénalité L1 et ont évalué des MLP supervisés en profondeur sur une gamme de tâches classiques de classification de vision par ordinateur telles que MNIST et CIFAR10.

De plus, une pénalité L1 sur les activations avec un coefficient de 0,001 a été ajoutée à la fonction de coût lors de la pré-formation et du réglage fin afin d'augmenter la parcimonie des représentations apprises.

— Réseaux de neurones à redresseur profond et clairsemé, 2011.

Stephen Merity et coll. de Salesforce Research a utilisé la régularisation d'activation L2 avec des LSTM sur les sorties et les sorties récurrentes pour le processus de langage naturel en conjonction avec la régularisation des abandons. Ils ont testé une suite de différentes valeurs de coefficient de régularisation d’activation sur une gamme de problèmes de modélisation du langage.

Bien que simples à mettre en œuvre, la régularisation d’activité et la régularisation temporelle d’activité sont compétitives avec d’autres techniques de régularisation beaucoup plus complexes et offrent des résultats équivalents ou meilleurs.

— Revisiter la régularisation d'activation pour les RNN linguistiques, 2017.

Conseils d'utilisation de la régularisation d'activation

Cette section fournit quelques conseils pour utiliser la régularisation d'activation avec votre réseau neuronal.

Utiliser avec tous les types de réseaux

La régularisation de l'activation est une approche générique.

Il peut être utilisé avec la plupart, peut-être tous, les types de modèles de réseaux neuronaux, notamment les types de réseaux les plus courants de perceptrons multicouches, de réseaux neuronaux convolutifs et de réseaux neuronaux récurrents à mémoire longue et à court terme.

Utiliser avec les encodeurs automatiques et les encodeurs-décodeurs

La régularisation de l'activité peut être mieux adaptée aux types de modèles qui recherchent explicitement une représentation apprise efficace.

Ceux-ci incluent des modèles tels que les auto-encodeurs (c'est-à-dire des auto-encodeurs clairsemés) et des modèles d'encodeur-décodeur, tels que les LSTM d'encodeur-décodeur utilisés pour les problèmes de prédiction de séquence à séquence.

Expérimentez avec différentes normes

La régularisation d'activation la plus courante est la norme L1 car elle encourage la parcimonie.

Expérimentez avec d'autres types de régularisation comme la norme L2 ou en utilisant à la fois les normes L1 et L2, par ex. comme l'algorithme de régression linéaire Elastic Net.

Utiliser le linéaire rectifié

La fonction d'activation linéaire rectifiée, également appelée relu, est une fonction d'activation désormais largement utilisée dans la couche cachée des réseaux de neurones profonds.

Contrairement aux fonctions d'activation classiques telles que tanh (fonction tangente hyperbolique) et sigmoïde (fonction logistique), la fonction relu permet facilement des valeurs nulles exactes. Cela en fait un bon candidat lors de l'apprentissage de représentations clairsemées, comme avec la régularisation d'activation de norme vectorielle l1.

Paramètres de recherche de grille

Il est courant d'utiliser de petites valeurs pour l'hyperparamètre de régularisation qui contrôle la contribution de chaque activation à la pénalité.

Commencez peut-être par tester les valeurs sur une échelle logarithmique, telle que 0,1, 0,001 et 0,0001. Utilisez ensuite une recherche par grille à l’ordre de grandeur qui s’avère le plus prometteur.

Standardiser les données d'entrée

C'est généralement une bonne pratique de redimensionner les variables d'entrée pour avoir la même échelle.

Lorsque les variables d’entrée ont des échelles différentes, l’échelle des poids du réseau variera à son tour en conséquence. Des poids élevés peuvent saturer la fonction de transfert non linéaire et réduire la variance de la sortie de la couche. Cela peut introduire un problème lors de l'utilisation de la régularisation d'activation.

Ce problème peut être résolu en normalisant ou en standardisant les variables d'entrée.

Utiliser une représentation surcomplète

Configurez la couche choisie pour être les fonctionnalités apprises, par ex. la sortie de l'encodeur ou le goulot d'étranglement dans l'encodeur automatique, pour avoir plus de nœuds qui peuvent être nécessaires.

C'est ce qu'on appelle une représentation surcomplète qui encouragera le réseau à surajuster les exemples de formation. Ceci peut être contré par une forte régularisation d’activation afin d’encourager une représentation savante riche mais également clairsemée.

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir.

Livres

  • 7.10 Représentations clairsemées, Deep Learning, 2016.

Papiers

  • Réseaux de neurones redresseurs clairsemés profonds, 2011.
  • Apprentissage de fonctionnalités clairsemées pour les réseaux Deep Belief, 2007.
  • Apprentissage non supervisé des hiérarchies de fonctionnalités invariantes avec des applications à la reconnaissance d'objets, 2007.
  • Algorithmes de codage clairsemés efficaces, 2007.
  • Mesurer les invariances dans les réseaux profonds, 2009.
  • Modèle de réseau de croyances profondes clairsemées pour la zone visuelle V2, 2007.
  • Revisiter la régularisation d'activation pour les RNN linguistiques, 2017.
  • Activité clairsemée et connectivité clairsemée dans l'apprentissage supervisé, 2013.

Articles

  • Codage clairsemé, Scholarpedia.
  • Encodeur automatique clairsemé, notes de cours CS294A.

Résumé

Dans cet article, vous avez découvert la régularisation d'activation comme technique pour améliorer la généralisation des fonctionnalités apprises.

Concrètement, vous avez appris :

  • Les réseaux de neurones apprennent des fonctionnalités à partir de données et de modèles, tels que les auto-encodeurs et les modèles d'encodeur-décodeur, recherchent explicitement des représentations apprises efficaces.
  • Semblables aux poids, les valeurs élevées des fonctionnalités apprises, par ex. des activations importantes peuvent indiquer un modèle surajusté.
  • L'ajout de pénalités à la fonction de perte qui pénalisent un modèle proportionnellement à l'ampleur des activations peut aboutir à des fonctionnalités apprises plus robustes et généralisées.

Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Articles connexes