ReLU (Rectified Linear Unit)
-
Formule :
Cela signifie que si l’entrée est inférieure à zéro, la sortie sera 0, et si l’entrée est supérieure à zéro, la sortie sera égale à l’entrée.
-
Propriétés :
-
Non-linéarité : Bien que la ReLU soit une fonction linéaire par morceaux, elle est non linéaire, ce qui permet au modèle d’apprendre des relations complexes dans les données.
-
Efficacité : La ReLU est computationnellement efficace car elle implique une simple opération de comparaison et de retour de la valeur.
-
Problème du « Dead Neuron » : Lorsqu’une unité ReLU est appliquée à une entrée négative, elle renvoie 0, ce qui peut conduire à un phénomène où certains neurones ne s’activent jamais, appelés « neurones morts ». Pour contrer cela, des variantes comme Leaky ReLU ou Parametric ReLU sont utilisées, qui permettent une petite pente pour les valeurs négatives.
-
-
Avantages de la ReLU :
-
Convergence rapide : Par rapport à des fonctions comme la sigmoïde ou la tangente hyperbolique, la ReLU est moins susceptible d’entraîner des gradients nuls, ce qui permet une propagation plus efficace de l’information pendant l’entraînement.
-
Simplicité : C’est une fonction d’activation très simple à calculer et qui est donc rapide en termes de calculs.
-
-
Variantes de ReLU :
-
Leaky ReLU : Permet une petite pente pour les valeurs négatives au lieu de les tronquer à 0. Cela peut aider à éviter le problème des « neurones morts ».
-
Parametric ReLU (PReLU) : Variante où la pente négative est paramétrique et donc apprend pendant l’entraînement.
-
Applications :
-
Vision par ordinateur : La ReLU est très utilisée dans les réseaux de neurones convolutifs (CNN) pour la classification d’images, la détection d’objets, etc.
-
Traitement du langage naturel (NLP) : Elle est aussi utilisée dans les modèles de type RNN et Transformer pour des tâches de traitement de texte.
Remarque :
La ReLU est très utilisée dans les architectures modernes de réseaux neuronaux grâce à son efficacité, mais elle n’est pas toujours idéale. Par exemple, dans des architectures récurrentes ou dans des réseaux de très grande taille, des variantes comme Leaky ReLU ou ELU (Exponential Linear Unit) peuvent être préférées.
Fonctions :
-
ReLU()
La fonction d’activation ReLU (Rectified Linear Unit) transforme ses entrées en remplaçant toutes les valeurs négatives par zéro, tout en conservant les valeurs positives inchangées. C’est l’une des fonctions d’activation les plus utilisées dans les réseaux de neurones, notamment pour sa simplicité et son efficacité à réduire le problème de gradient nul.
Importation :
from keras.layers import ReLU
Attributs :
Paramètre Type Description Valeur par défaut max_value
float ou None
Valeur maximale à laquelle la sortie est plafonnée (cap). Si None
, pas de plafond.None
negative_slope
float Pente pour les valeurs négatives (permet une version "Leaky ReLU"). 0.0
threshold
float Valeur seuil en-dessous de laquelle la sortie est égale à zéro. 0.0
Exemple de code :
from tensorflow.keras.layers import ReLU import numpy as np import tensorflow as tf # Données d'entrée avec valeurs négatives et positives inputs = tf.constant([[-3.0, -1.0, 0.0, 2.0, 4.0]]) # Couche ReLU standard relu_layer = ReLU() # Application de ReLU outputs = relu_layer(inputs) print(outputs.numpy()) # [[0. 0. 0. 2. 4.]]
Explication du code :
Importation de la couche
On importe la fonction d’activation `ReLU` de Keras.Préparation des données
On crée un tenseur contenant des valeurs négatives, nulles et positives.Définition de la couche
On instancie la couche `ReLU` sans arguments, ce qui correspond à la version classique.Application de ReLU
La couche transforme toutes les valeurs négatives en zéro, laissant les autres inchangées.Affichage
On affiche le résultat où les valeurs négatives sont supprimées.