Partager via


Abandon

Fonction de suppression.

Dropout (x)

Paramètres

  • x: entrée pour appliquer la fonction de suppression à

Remarque : le taux d’abandon n’est pas un paramètre pour cette fonction, mais à la place spécifié dans la SGD section.

Valeur renvoyée

Dropout() retourne le résultat de l’opération de suppression appliquée à l’entrée. Le résultat a les mêmes dimensions de capteur que l’entrée.

Description

L’opération Dropout() sélectionne aléatoirement les éléments de l’entrée avec une probabilité donnée appelée taux de suppression et les définit sur 0. Cela a été démontré pour améliorer la généralisabilité des modèles.

Dans l’implémentation de CNTK, les valeurs restantes qui ne sont pas définies sur 0 seront multipliées par (1 / (1 - taux de suppression)). De cette façon, les paramètres de modèle appris avec la suppression sont directement applicables en inférence. (Si cela n’a pas été fait, l’utilisateur doit les mettre manuellement à l’échelle avant l’inférence.)

Pour activer la suppression dans votre formation, vous devez également ajouter un paramètre dropoutRate à la SGD section pour définir le taux de suppression. Cela se fait dans la SGD section, au lieu d’un paramètre lui-même Dropout() , afin de permettre de démarrer une formation sans abandon, puis de l’activer après quelques époques, ce qui est un scénario courant. Pour cela, le dropoutRate vecteur est spécifié, où chaque valeur est pour une époque spécifique.

Lors de l’exécution de l’inférence, l’opération Dropout() transmet son entrée non modifiée (il s’agit d’une opération sans opération).

Exemple

Voici un réseau convolutionnel simple avec une couche de suppression vers la fin :

features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)

En outre, vous avez besoin d’une entrée correspondante dans la SGD section. L’exemple suivant définit l’utilisation d’aucun dropout pour les 3 premières époques, puis de continuer avec un taux d’abandon de 50 %. Pour plus de commodité, cet exemple utilise la syntaxe astérisque (*) pour indiquer la répétition :

SGD = {
    ...
    dropoutRate = 0*3:0.5
    ...
}