Découvrez le rôle de la fonction sigmoïde dans l'apprentissage automatique. Apprenez comment cette fonction d'activation permet la classification binaire dans des modèles tels que Ultralytics .
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 n'importe quel nombre réel et le mappe à une valeur comprise entre 0 et 1. Cette courbe caractéristique en forme de « S » la rend extrêmement utile pour convertir les résultats bruts des modèles en probabilités interprétables. Dans le contexte d'un réseau neuronal (NN), la fonction sigmoïde agit comme une fonction d'activation, introduisant une non-linéarité qui permet aux modèles d'apprendre des modèles 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 base, la fonction sigmoïde transforme les données d'entrée, souvent appelées logits, en une plage normalisée. Cette transformation est cruciale pour les tâches dont l'objectif est de prédire la probabilité d'un événement. En limitant la sortie entre 0 et 1, la fonction fournit un score de probabilité clair.
Alors que la fonction sigmoïde était autrefois la norme pour toutes les couches, les chercheurs ont découvert des limites telles que le problème de gradient disparu, où les gradients deviennent trop faibles pour mettre à jour efficacement les poids dans les réseaux profonds. Cela a conduit à l'adoption d'alternatives pour les couches cachées .
L'utilité de la fonction sigmoïde s'étend à divers secteurs où l'estimation de probabilité est nécessaire.
Vous pouvez observer comment Sigmoid transforme les données à l'aide de PyTorch, une bibliothèque populaire pour la création de 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 inputs
Pour ceux qui souhaitent former des modèles utilisant ces concepts sans écrire de code de bas niveau, Ultralytics offre une interface intuitive pour gérer les ensembles de données et former des modèles de pointe tels que 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.