Sigmoid
Explore le rôle de la fonction Sigmoid en machine learning. Découvre comment cette fonction d’activation permet la classification binaire dans des modèles comme Ultralytics YOLO26.
La fonction sigmoïde est un composant mathématique fondamental largement utilisé dans les domaines de l’apprentissage automatique (ML) et de l’apprentissage profond (DL). Souvent appelée « fonction d’écrasement », elle prend en entrée tout nombre réel et le transforme en une valeur comprise entre 0 et 1. Cette courbe caractéristique en forme de « S » est extrêmement utile pour convertir les sorties brutes d’un modèle en probabilités interprétables. Dans le contexte d’un réseau neuronal (NN), la fonction sigmoïde agit comme une fonction d’activation, en introduisant une non-linéarité qui permet aux modèles d’apprendre des motifs complexes au-delà des simples relations linéaires. Bien qu’elle ait été largement remplacée par d’autres fonctions dans les couches cachées profondes, elle reste un choix standard pour les couches de sortie dans les tâches de classification binaire.
La mécanique de la sigmoïde en IA#
À la base, la fonction sigmoïde transforme les données d’entrée, souvent appelées logits, en une plage normalisée. Cette transformation est essentielle pour les tâches dont l’objectif est de prédire la probabilité qu’un événement se produise. En bornant la sortie entre 0 et 1, la fonction fournit un score de probabilité clair.
- Régression logistique : Dans la modélisation statistique traditionnelle, la sigmoïde est au cœur de la régression logistique. Elle permet aux data scientists d’estimer la probabilité d’un résultat binaire, par exemple si un client va partir ou rester.
- Classification binaire : Pour les réseaux neuronaux conçus pour distinguer deux classes, par exemple « chat » et « chien », la dernière couche utilise souvent une activation sigmoïde. Si la sortie est supérieure à un seuil, généralement 0,5, le modèle prédit la classe positive.
- Classification multilabel : Contrairement aux problèmes multiclasse, dans lesquels les classes s’excluent mutuellement, les tâches multilabel permettent à une image ou à un texte d’appartenir simultanément à plusieurs catégories. Ici, la sigmoïde est appliquée indépendamment à chaque nœud de sortie, ce qui permet à un modèle de détecter une « voiture » et une « personne » dans la même scène sans conflit.
Principales différences avec les autres fonctions d’activation#
Alors que la sigmoïde était autrefois utilisée par défaut dans toutes les couches, les chercheurs ont découvert des limitations telles que le problème du gradient évanescent, dans lequel les gradients deviennent trop faibles pour mettre efficacement à jour les poids dans les réseaux profonds. Cela a conduit à l’adoption d’alternatives pour les couches cachées.
- Sigmoïde ou ReLU (Unité linéaire rectifiée) : ReLU est plus rapide sur le plan des calculs et évite les gradients évanescents en produisant directement l’entrée si elle est positive, et zéro dans le cas contraire. C’est le choix privilégié pour les couches cachées dans les architectures modernes comme YOLO26, tandis que la sigmoïde est réservée à la couche de sortie finale dans certaines tâches.
- Sigmoïde ou Softmax : Les deux mappent les sorties sur une plage allant de 0 à 1, mais ils remplissent des fonctions différentes. La sigmoïde traite chaque sortie indépendamment, ce qui la rend idéale pour les tâches binaires ou multilabel. Softmax force la somme de toutes les sorties à être égale à 1, créant ainsi une distribution de probabilité utilisée pour la classification multiclasse, dans laquelle une seule classe est correcte.
Applications concrètes#
L’utilité de la fonction sigmoïde s’étend à divers secteurs dans lesquels l’estimation de probabilités est nécessaire.
-
Diagnostic médical : Les modèles d’AI utilisés dans l’analyse d’images médicales utilisent souvent des sorties sigmoïdes pour prédire la probabilité qu’une maladie soit présente sur une radiographie ou une IRM. Par exemple, un modèle peut produire 0,85, ce qui indique une probabilité de 85 % qu’il s’agisse d’une tumeur et aide les médecins à la détecter précocement.
-
Détection des spams : Les systèmes de filtrage des e-mails utilisent des modèles de traitement du langage naturel (NLP) dotés de classifieurs sigmoïdes pour déterminer si un message entrant est un « spam » ou un message « non indésirable ». Le modèle analyse les mots-clés et les métadonnées, puis produit un score qui détermine si l’e-mail arrive dans la boîte de réception ou dans le dossier des courriers indésirables.
Mise en œuvre pratique#
Tu peux observer comment la sigmoïde transforme les données avec PyTorch, une bibliothèque populaire pour créer des modèles d’apprentissage profond. Cet exemple simple illustre l’effet d’« écrasement » sur une plage de valeurs d’entrée.
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputsSi tu souhaites entraîner des modèles qui utilisent ces concepts sans écrire de code de bas niveau, l’Ultralytics Platform offre une interface intuitive pour gérer les jeux de données et entraîner des modèles de pointe comme YOLO26. En gérant automatiquement les complexités architecturales, elle permet aux utilisateurs de se concentrer sur la collecte de données d’entraînement de haute qualité pour leurs applications spécifiques de vision par ordinateur.









