Ensachage vs abandon dans les réseaux de neurones profonds

17

L'ensachage est la génération de plusieurs prédicteurs qui fonctionnent comme un prédicteur unique. Le décrochage est une technique qui enseigne à un réseau de neurones à faire la moyenne de tous les sous-réseaux possibles. En regardant les compétitions les plus importantes de Kaggle, il semble que ces deux techniques soient utilisées très souvent ensemble. Je ne vois aucune différence théorique en dehors de la mise en œuvre réelle. Qui peut m'expliquer pourquoi nous devrions utiliser les deux dans n'importe quelle application réelle? et pourquoi les performances s'améliorent lorsque nous les utilisons tous les deux?

emanuele
la source

Réponses:

21

L'ensachage et le décrochage n'obtiennent pas exactement la même chose, bien que les deux soient des types de moyenne de modèle.

L'ensachage est une opération sur l'ensemble de votre ensemble de données qui forme les modèles sur un sous-ensemble des données de formation. Ainsi, certains exemples de formation ne sont pas présentés pour un modèle donné.

Le décrochage , en revanche, est appliqué aux fonctionnalités de chaque exemple de formation. Il est vrai que le résultat est fonctionnellement équivalent à entraîner de manière exponentielle de nombreux réseaux (avec des poids partagés!) Puis à pondérer également leurs sorties. Mais le décrochage fonctionne sur l'espace des fonctionnalités, entraînant l'indisponibilité de certaines fonctionnalités sur le réseau, et non des exemples complets. Étant donné que chaque neurone ne peut pas entièrement s'appuyer sur une seule entrée, les représentations dans ces réseaux ont tendance à être plus distribuées et le réseau est moins susceptible de s'ajuster.

jamesmf
la source
+1 pour une belle explication. Connaissez-vous des liens où une implémentation Python est effectuée? Un blog ou peut-être Github?
Dawny33
Il y en a un décent ici: deeplearning.net/tutorial/lenet.html , bien que je préfère le style de celui-ci: neuralnetworksanddeeplearning.com/chap6.html . Pour l'implémentation et les bonnes démos, j'aime les keras (assez faciles à installer) keras.io
jamesmf
2

J'ai trouvé une comparaison des deux types de réseaux dans Max Out Networks qui dit:

La formation à l'abandon est similaire à l'ensachage (Breiman, 1994), où de nombreux modèles différents sont formés sur différents sous-ensembles de données. La formation à l'abandon diffère de l'ensachage en ce que chaque modèle est formé pour une seule étape et tous les modèles partagent des paramètres. Pour que cette procédure d'apprentissage (abandon) se comporte comme si elle entraînait un ensemble plutôt qu'un modèle unique, chaque mise à jour doit avoir un effet important, de sorte qu'elle rende le sous-modèle induit par ce µ bien adapté à l'entrée actuelle v.

J'espère que ce sera utile.

emanuele
la source
0

Le décrochage est une technique de régularisation utilisée pour éviter le sur-ajustement dans les grands réseaux de neurones, en particulier en omettant certains des neurones dans les couches cachées (d'où le nom de décrochage pour les neurones exclus) après l'entraînement. Fondamentalement, si le réseau a vraiment appris quelque chose pendant l'entraînement, l'abandon de certains neurones ne devrait pas affecter négativement la précision des prédictions.

L'ensachage est également une technique de régularisation efficace, utilisée pour réduire la variance par rapport aux données de formation et améliorer la précision de votre modèle en utilisant plusieurs copies de celui-ci formées sur différents sous-ensembles de données de l'ensemble de données de formation initial / plus grand.

voir cette question

LiNKeR
la source