Existe-t-il des directives générales sur l'emplacement des couches d'abandon dans un réseau de neurones?
neural-networks
dropout
Franck Dernoncourt
la source
la source
Réponses:
Dans le document original qui proposait des couches de suppression, de Hinton (2012) , une suppression (avec p = 0,5) a été utilisée sur chacune des couches entièrement connectées (denses) avant la sortie; il n'a pas été utilisé sur les couches convolutives. Ceci est devenu la configuration la plus couramment utilisée.
Des recherches plus récentes ont montré un intérêt dans l'application du décrochage également aux couches convolutives, bien qu'à des niveaux beaucoup plus bas: p = 0,1 ou 0,2. La suppression a été utilisée après la fonction d'activation de chaque couche de convolution: CONV-> RELU-> DROP.
la source
relu
activation suivie d'une couche de mise en pool maximale, la couche de suppression (2D) doit-elle disparaître immédiatement après la convolution, ou après la couche de mise en pool maximale, ou les deux, ou est-ce que cela n'a pas d'importance?RELU
sur chaque couche de CONV. Je ne crois pas qu'ils aient étudié l'effet de l'ajout d'abandons après les couches de pooling maximales.Devant chaque projection linéaire. Voir Srivastava et al. (2014) .
la source
Le document original proposait des couches de suppression qui étaient utilisées sur chacune des couches entièrement connectées (denses) avant la sortie; il n'a pas été utilisé sur les couches convolutives.
Nous ne devons pas utiliser les couches de suppression après les couches de convolution lorsque nous faisons glisser le filtre sur la largeur et la hauteur de l'image d'entrée, nous produisons une carte d'activation à 2 dimensions qui donne les réponses de ce filtre à chaque position spatiale. Donc, comme la couche de suppression neutralise (le rend nul) les neurones aléatoires, il y a des chances de perdre une caractéristique très importante d'une image dans notre processus de formation.
la source
Si je ne me trompe pas, vous pouvez l'ajouter après la non-linéarité de chaque cellule:
La première ligne est la fonction d'activation et la dernière ajoute la suppression au résultat. S'il vous plaît se référer à ce blog . J'espère que cela t'aides.
Ou vous pouvez le placer dans l’incorporation d’entrée comme dans cet extrait:
Source: https://github.com/spro/practical-pytorch/blob/master/seq2seq-translation/seq2seq-translation.ipynb
Techniquement, vous pouvez ajouter la couche de suppression à la fin d'un bloc, par exemple après la convolution ou après le codage RNN.
la source