Tanh (Tangente Hyperbolique)

La fonction Tanh (Tangente Hyperbolique) est une fonction d’activation utilisée dans les réseaux neuronaux, similaire à la fonction Sigmoid, mais elle est centrée autour de zéro. Elle transforme les entrées en une plage de valeurs comprises entre -1 et 1. La fonction Tanh est souvent utilisée pour les réseaux neuronaux récurrents (RNN) et autres modèles, car elle offre une meilleure performance par rapport à la Sigmoid, en particulier pour les tâches qui nécessitent des valeurs positives et négatives.

La fonction Tanh est définie par la formule suivante :

 

f(x)=tanh(x)=exexex+exf(x) = \tanh(x) = \frac{e^{x} – e^{-x}}{e^{x} + e^{-x}}

Fonctions :

  • Tanh()

    La fonction tangente hyperbolique (tanh) est une fonction d’activation qui transforme une valeur réelle en une plage entre -1 et 1. Elle est centrée sur zéro, ce qui facilite l'entraînement de certains réseaux de neurones profonds.

    Importation :

    from tensorflow.keras.layers import Activation
    import tensorflow as tf

    Attributs :

    Paramètre Type Description Valeur par défaut
    La couche Tanh() ne possède pas de paramètre configurable — elle est entièrement déterministe.

    Exemple de code :

    from tensorflow.keras.layers import Activation
    import tensorflow as tf
    
    # Données d'entrée
    inputs = tf.constant([[-3.0, 0.0, 2.0, 5.0]])
    
    # Couche Tanh
    tanh = Activation('tanh')
    
    # Application
    outputs = tanh(inputs)
    
    print(outputs.numpy())  # [[-0.995  0.     0.964  0.9999]]

    Explication du code :

    Importation de la fonction
    La couche `Activation('tanh')` permet d’appliquer la fonction tangente hyperbolique à chaque entrée.
    Transformation des données
    Chaque valeur est transformée selon la formule : \[ \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \] Les valeurs proches de 0 restent proches de 0, les très grandes tendent vers 1, les très petites vers -1.
    Utilisation typique
    - Dans les couches cachées des réseaux neuronaux récurrents (`SimpleRNN`, `LSTM`, `GRU`) - Quand on souhaite une activation **centrée** autour de zéro (meilleure convergence que `sigmoid` dans certains cas)