Fonctions d’activation de couche

Utilisation des activations

Les activations peuvent être utilisées soit par le biais d’une couche Activation, soit par le biais de l’argument activation pris en charge par toutes les couches avant :

model.add(layers.Dense(64, activation=activations.relu))

Ceci est équivalent à :

Toutes les activations intégrées peuvent également être transmises via leur identifiant de chaîne de caractères:

model.add(layers.Dense(64, activation='relu'))

Activations disponibles

fonction relu

tf.keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0)

Applique la fonction d’activation d’unité linéaire rectifiée.

Avec les valeurs par défaut, cela renvoie l’activation standard ReLU:max(x, 0), le maximum élément par élément de 0 et le tenseur d’entrée.

Modifier les paramètres par défaut vous permet d’utiliser des seuils non nuls, de changer la valeur maximale de l’activation et d’utiliser un multiple non nul de l’entrée pour les valeurs inférieures au seuil.

Par exemple :

Arguments

  • x : Entrée tensor ou variable.
  • alpha : Un float qui régit la pente pour les valeurs inférieures au seuil.
  • Valeur_max : Un float qui fixe le seuil de saturation (la plus grande valeur que la fonction retournera).
  • seuil : Un float donnant la valeur seuil de la fonction d’activation en dessous de laquelle les valeurs seront amorties ou mises à zéro.

Retourne

A Tensor représentant le tenseur d’entrée,transformé par la fonction d’activation relu.Le tenseur sera de la même forme et dtype d’entrée x.

Fonction sigmoïde

tf.keras.activations.sigmoid(x)

Fonction d’activation sigmoïde, sigmoid(x) = 1 / (1 + exp(-x)).

Applique la fonction d’activation sigmoïde. Pour les petites valeurs (<-5),sigmoid renvoie une valeur proche de zéro, et pour les grandes valeurs (>5)le résultat de la fonction se rapproche de 1.

La sigmoïde est équivalente à une Softmax à 2 éléments, où le deuxième élément estassumé être zéro. La fonction sigmoïde renvoie toujours une valeur comprise entre0 et 1.

Par exemple :

Arguments

  • x : Tenseur d’entrée.

Retourne

  • Tenseur avec l’activation sigmoïde : 1 / (1 + exp(-x)).

Fonction softmax

tf.keras.activations.softmax(x, axis=-1)

Softmax convertit un vecteur réel en un vecteur de probabilités catégoriques.

Les éléments du vecteur de sortie sont dans l’intervalle (0, 1) et leur somme est égale à 1.

Chaque vecteur est traité indépendamment. L’argument axis définit l’axe de l’entrée le long duquel la fonction est appliquée.

Le softmax est souvent utilisé comme activation pour la dernière couche d’un réseau de classification car le résultat pourrait être interprété comme une distribution de probabilité.

La softmax de chaque vecteur x est calculée commeexp(x) / tf.reduce_sum(exp(x)).

Les valeurs d’entrée dans sont les log-odds de la probabilité résultante.

Arguments

  • x : Tenseur d’entrée.
  • axis : Entier, axe le long duquel la normalisation softmax est appliquée.

Retourne

Tenseur, sortie de la transformation softmax (toutes les valeurs sont non négatives et leur somme est égale à 1).

Revient

  • ValueError : Dans le cas dim(x) == 1.

fonction softplus

tf.keras.activations.softplus(x)

Fonction d’activation softplus, softplus(x) = log(exp(x) + 1).

Exemple Utilisation:

Arguments

  • x : Tenseur d’entrée.

Retourne

  • L’activation de softplus : log(exp(x) + 1).

Fonction softsign

tf.keras.activations.softsign(x)

Fonction d’activation softsign, softsign(x) = x / (abs(x) + 1).

Exemple d’utilisation:

>>> a = tf.constant(, dtype = tf.float32)>>> b = tf.keras.activations.softsign(a)>>> b.numpy()array(, dtype=float32)

Arguments

  • x : Tenseur d’entrée.

Retourne

  • L’activation du softsign : x / (abs(x) + 1).

fonction tanh

tf.keras.activations.tanh(x)

Fonction d’activation tangente hyperbolique.

Par exemple:

Arguments

  • x : Tenseur d’entrée.

Retourne

  • Tenseur de même forme et dtype de l’entrée x, avec activation tanh:tanh(x) = sinh(x)/cosh(x) = ((exp(x) - exp(-x))/(exp(x) + exp(-x))).

fonction selu

tf.keras.activations.selu(x)

Scaled Exponential Linear Unit (SELU).

La fonction d’activation SELU (Scaled Exponential Linear Unit) est définie comme:

  • if x > 0: return scale * x
  • if x < 0: return scale * alpha * (exp(x) - 1)

alpha et scale sont des constantes prédéfinies(alpha=1.67326324 et scale=1.05070098).

Basiquement, la fonction d’activation SELU multiplie scale (> 1) avec la sortie de la fonction tf.keras.activations.elu pour assurer une pente supérieure à un pour les entrées positives.

Les valeurs de alpha et scale sont choisies de manière à ce que la moyenne et la variance des entrées soient préservées entre deux couches consécutives, tant que les poids sont initialiséscorrectement (voir l’initialisateur tf.keras.initializers.LecunNormal)et que le nombre d’unités d’entrée est « suffisamment grand »(voir le document de référence pour plus d’informations).

Exemple d’utilisation:

Arguments

  • x : Un tenseur ou une variable pour laquelle calculer la fonction d’activation.

Retourne

  • L’activation exponentielle unitaire échelonnée : scale * elu(x, alpha).

Notes: – A utiliser conjointement avec l’initialisateur tf.keras.initializers.LecunNormal. – À utiliser conjointement avec la variante de décrochage tf.keras.layers.AlphaDropout (pas le décrochage régulier).

Références : – Klambauer et al., 2017

Fonction elu

tf.keras.activations.elu(x, alpha=1.0)

Unité linéaire exponentielle.

L’unité linéaire exponentielle (ELU) avec alpha > 0 est:x si x > 0 etalpha * (exp(x) - 1) si x < 0L’hyperparamètre ELU alpha contrôle la valeur à laquelle une ELU sature pour des entrées nettes négatives. Les ELUs diminuent l’effet de gradient croissant.

Les ELUs ont des valeurs négatives qui poussent la moyenne des activations plus près de zéro.Les activations moyennes plus proches de zéro permettent un apprentissage plus rapide car elles rapprochent le gradient du gradient naturel.Les ULE saturent à une valeur négative lorsque l’argument devient plus petit.La saturation signifie une petite dérivée qui diminue la variationet l’information qui est propagée à la couche suivante.

Exemple d’utilisation:

Arguments

  • x : Tenseur d’entrée.
  • alpha : Un scalaire, pente de section négative. alpha contrôle la valeur à laquelle une ULE sature pour les entrées négatives du réseau.

Retourne

  • La fonction d’activation de l’unité linéaire exponentielle (ULE) : x si x > 0 etalpha * (exp(x) - 1) si x < 0.

Référence : Apprentissage rapide et précis de réseaux profonds par unités linéaires exponentielles (ELU) (Clevert et al, 2016)

fonction exponentielle

tf.keras.activations.exponential(x)

Fonction d’activation exponentielle.

Par exemple:

Arguments

  • x : Tenseur d’entrée.

Retourne

  • Tenseur avec activation exponentielle : exp(x).

Création d’activations personnalisées

Vous pouvez également utiliser un appelable TensorFlow comme activation(dans ce cas, il doit prendre un tenseur et retourner un tenseur de la même forme et du même dtype):

model.add(layers.Dense(64, activation=tf.nn.tanh))

A propos des couches d' »activation avancée »

Les activations qui sont plus complexes qu’une simple fonction TensorFlow (par ex. les activations apprenantes, qui maintiennent un état)sont disponibles en tant que couches d’activation avancées,et peuvent être trouvées dans le module tf.keras.layers.advanced_activations. Il s’agit notamment de PReLU et LeakyReLU.Si vous avez besoin d’une activation personnalisée qui nécessite un état, vous devez l’implémenter en tant que couche personnalisée.

Notez que vous ne devez pas passer les instances de couches d’activation en tant qu’argument activation d’une couche.Elles sont destinées à être utilisées comme des couches ordinaires, par exemple:

x = layers.Dense(10)(x)x = layers.LeakyReLU()(x)

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.