Edit: Comme @Toke Faurby l’a correctement souligné, l’implémentation par défaut de tensorflow utilise en réalité un abandon élémentaire. Ce que j'ai décrit précédemment s'applique à une variante spécifique d'abandon dans les CNN, appelée abandon spatial :
Dans un CNN, chaque neurone produit une carte de caractéristiques. Dans la mesure où la suppression spatiale de la suppression spatiale fonctionne par neurone, la suppression d’un neurone signifie que la carte de caractéristiques correspondante est supprimée - chaque position a la même valeur (généralement 0). Ainsi, chaque carte de caractéristiques est entièrement supprimée ou pas du tout.
Le regroupement fonctionne généralement séparément sur chaque carte de fonctionnalités. Par conséquent, cela ne devrait pas changer rien si vous appliquez la suppression avant ou après le regroupement. C'est du moins le cas pour les opérations de mise en commun telles que le max covoiturage ou la moyenne.
Edit: Cependant, si vous utilisez réellement la suppression élément par élément (qui semble être définie par défaut pour tensorflow), le fait que vous appliquiez la suppression avant ou après la mise en pool a une réelle incidence. Cependant, il n'y a pas nécessairement une mauvaise façon de le faire. Considérez l'opération de pooling moyenne: si vous appliquez un abandon avant le pooling, vous effectuez une mise à l'échelle des activations de neurones résultantes 1.0 - dropout_probability
, mais la plupart des neurones seront non nuls (en général). Si vous appliquez une suppression après regroupement moyen, vous vous retrouvez généralement avec une fraction d' (1.0 - dropout_probability)
activations de neurones "non nulles" non nulles et une fraction de dropout_probability
neurones nuls. Les deux me semblent viables, ni est tout à fait faux.
Ce tutoriel utilise la mise en commun avant abandon et donne de bons résultats.
Cela ne signifie pas nécessairement que l'ordre inverse ne fonctionne pas, bien sûr. Mon expérience est limitée, je ne les ai utilisées que sur des couches denses sans regroupement.
la source
Exemple de convnet ressemblant à VGG de Keras (suppression après regroupement):
la source