La fonction de décrochage est d'augmenter la robustesse du modèle et également de supprimer les dépendances simples entre les neurones.
Les neurones ne sont supprimés que pour une seule passe en avant et en arrière à travers le réseau - ce qui signifie que leurs poids sont synthétiquement mis à zéro pour cette passe, et donc leurs erreurs le sont aussi, ce qui signifie que les poids ne sont pas mis à jour. Le décrochage fonctionne également comme une forme de régularisation , car il pénalise quelque peu le modèle pour sa complexité.
Je recommanderais de lire la section Dropout du livre Deep Learning de Michael Nielsen (gratuit et en ligne), qui donne une bonne intuition et a également des diagrammes / explications très utiles. Il explique que:
Le décrochage est une technique radicalement différente de régularisation. Contrairement à la régularisation L1 et L2, le décrochage ne repose pas sur la modification de la fonction de coût. Au lieu de cela, dans l'abandon, nous modifions le réseau lui-même.
Voici un bel article de synthèse . De cet article:
Quelques observations:
- Le décrochage force un réseau de neurones à apprendre des fonctionnalités plus robustes qui sont utiles en conjonction avec de nombreux sous-ensembles aléatoires différents des autres neurones.
- Le décrochage double à peu près le nombre d'itérations nécessaires pour converger. Cependant, le temps d'entraînement pour chaque époque est moindre.
- Avec H unités cachées, dont chacune peut être supprimée, nous avons 2 ^ H modèles possibles. En phase de test, l'ensemble du réseau est pris en compte et chaque activation est réduite d'un facteur p.
Exemple
Imaginez que je vous demande de me faire une tasse de thé - vous pouvez toujours utiliser votre main droite pour verser l'eau, votre œil gauche pour mesurer le niveau d'eau, puis votre main droite à nouveau pour remuer le thé avec une cuillère. Cela signifierait que votre main gauche et votre œil droit ne servent à rien. Utiliser le décrochage, par exemple, attacherait votre main droite derrière votre dos - vous forçant à utiliser votre main gauche. Maintenant, après m'avoir fait 20 tasses de thé, avec un œil ou une main hors service, vous êtes mieux formé à utiliser tout ce qui est disponible. Peut-être que vous serez plus tard obligé de faire du thé dans une petite cuisine, où il est uniquement possible d'utiliser la bouilloire avec votre bras gauche ... et après avoir utilisé le décrochage, vous avez de l'expérience à le faire! Vous êtes devenu plus robuste pour les données invisibles.
Dropout ne supprime pas réellement les neurones, c'est juste que ces neurones particuliers ne jouent aucun rôle (ne sont pas activés) pour le lot de données donné.
Exemple - Supposons qu'il y ait une route à 8 voies - Quand les camions arrivent, ils passent par les voies 1,2,4,6,7, quand les voitures arrivent, ils passent par les voies 2,3,4,7,8 et quand les vélos arrivent , ils traversent les voies 1,2,5,8. Donc, quel que soit le véhicule, toutes les voies sont là, mais seules certaines d'entre elles sont utilisées.
De même, tous les neurones sont utilisés dans le modèle entier, mais seul un sous-ensemble de neurones est activé pour un lot particulier de données. Et le modèle n'est pas coupé plus tard, la complexité du modèle reste inchangée.
Pourquoi utiliser le décrochage?
Comme indiqué dans le livre d'apprentissage en profondeur par Ian Goodfellow,
Il dit aussi-
Ce livre dit-
la source
Une autre façon de voir ce que l'abandon fait est que c'est comme une dalle et un pic avant pour le coefficient d'une covariable (c'est-à-dire un terme d'interaction complexe des covariables originales avec des transformations fonctionnelles compliquées) dans un modèle bayésien. C'est l'interprétation proposée par Yarin Gal dans sa thèse (voir sa liste de publications ).
Voici un bref argument de la main pour expliquer pourquoi il en est ainsi:
Pourquoi voudrions-nous une dalle et une pointe avant? Il induit un modèle bayésien faisant la moyenne entre un réseau neutre sans ce neurone et un avec celui-ci. En d'autres termes, il nous permet d'exprimer une incertitude quant à savoir si le réseau neutre a vraiment besoin d'avoir toute sa complexité possible et prend correctement en compte cette incertitude dans le prévisions. Cela résout le problème majeur des réseaux neutres capables de s'adapter aux données (bien que ce ne soit bien sûr pas le seul moyen possible d'y parvenir).
la source
La couche de décrochage élimine sans discernement une partie spécifiée des neurones, ce qui diminue la capacité de représentation du modèle en question. Cela empêche le réseau d'ajuster des limites de décision non linéaires complexes (c'est-à-dire le "bruit" dans l'ensemble de données), empêchant ainsi (ou améliorant) le sur-ajustement.
la source
L'abandon permet d'améliorer les performances d'un modèle d'apprentissage automatique pour les raisons suivantes:
la source