Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

SiLU (Sigmoid Linear Unit)

SiLU, également appelée Swish, multiplie une entrée par sa sigmoïde pour produire une fonction d’activation lisse à auto-contrôle. Au programme : ses mathématiques, ses origines et une comparaison avec ReLU.

L’unité linéaire sigmoïde (SiLU) est une fonction d’activation définie par SiLU(x) = x · σ(x), où σ est la fonction sigmoïde. Elle laisse presque inchangées les grandes entrées positives, ramène les grandes entrées négatives à une valeur proche de zéro et évolue progressivement entre les deux, avec un minimum d’environ −0,278 pour x ≈ −1,278. SiLU est la même fonction que Swish avec β = 1, et les deux noms sont utilisés indifféremment. C’est une fonction par défaut courante dans les modèles de vision convolutifs et, dans le bloc SwiGLU, elle active aussi les couches feed-forward de nombreux grands modèles de langage (LLM).

Définition et propriétés#

SiLU multiplie chaque entrée par une porte, σ(x), comprise entre 0 et 1 et calculée à partir de l’entrée elle-même, d’où le nom d’auto-gatée. Sa dérivée est σ(x) · (1 + x · (1 − σ(x))) et, ensemble, elles confèrent à SiLU quatre propriétés qui distinguent son comportement à l’entraînement de celui de ReLU :

  • Lisse partout : la courbe et sa dérivée sont continues, sans angle en zéro. De petites variations des poids entraînent donc de petites variations de la sortie, ce qui convient à la descente de gradient.
  • Gradient pour les entrées négatives : une unité dont l’entrée est négative reçoit tout de même un petit gradient et continue donc d’apprendre. Les unités ReLU dont les entrées restent négatives ne reçoivent aucun gradient et peuvent cesser d’apprendre définitivement ; ce phénomène est appelé « ReLU morte ».
  • Non monotone : la sortie diminue légèrement à mesure que x augmente depuis de grandes valeurs négatives jusqu’à environ −1,28, puis augmente ; la fonction n’est donc pas monotone.
  • Bornée inférieurement, non bornée supérieurement : les sorties ne descendent jamais sous environ −0,278 et les entrées positives sont transmises sans saturation, comme avec ReLU. Cela évite le problème du gradient évanescent associé à la sigmoïde et à tanh dans les réseaux profonds.

Le code PyTorch ci-dessous calcule SiLU et les gradients de SiLU et de ReLU en cinq points.

import torch
import torch.nn.functional as F

x = torch.tensor([-4.0, -1.28, 0.0, 1.0, 4.0], requires_grad=True)

# SiLU(x) = x * sigmoid(x), comparée à ReLU pour les mêmes entrées
silu = F.silu(x)
relu = F.relu(x)

# Gradient de chaque activation par rapport à son entrée
silu_grad = torch.autograd.grad(silu.sum(), x)[0]
relu_grad = torch.autograd.grad(relu.sum(), x)[0]

print("SiLU output:  ", [round(v, 4) for v in silu.tolist()])
print("SiLU gradient:", [round(v, 4) for v in silu_grad.tolist()])
print("ReLU gradient:", relu_grad.tolist())

La sortie affiche les résultats de SiLU [-0.0719, -0.2785, 0.0, 0.7311, 3.9281], les gradients de SiLU [-0.0527, -0.0003, 0.5, 0.9277, 1.0527] et les gradients de ReLU [0.0, 0.0, 0.0, 1.0, 1.0]. Pour −4, ReLU renvoie 0 et ne transmet aucun gradient, tandis que SiLU transmet encore −0.0527. Pour −1.28, SiLU atteint son minimum de −0.2785 avec un gradient presque exactement égal à 0, et pour 4, son gradient dépasse légèrement 1.

Origine du nom#

Hendrycks et Gimpel ont nommé x · σ(x) « unité linéaire sigmoïde » dans leur article de 2016 présentant GELU. La fonction y apparaissait comme une variante de GELU basée sur la sigmoïde, moins performante que GELU, mais généralement meilleure que ReLU et ELU. En 2017, Elfwing, Uchibe et Doya ont ensuite utilisé SiLU pour l’approximation de fonctions par des réseaux neuronaux en apprentissage par renforcement. Plus tard cette année-là, des chercheurs de Google ont redécouvert x · σ(βx) grâce à une recherche automatisée de fonctions d’activation, l’ont appelée Swish et ont signalé que remplacer ReLU par cette fonction améliorait de 0,9 % la précision top-1 sur ImageNet pour Mobile NASNet-A, et de 0,6 % pour Inception-ResNet-v2. PyTorch a ajouté nn.SiLU dans la version 1.7, en reprenant le nom antérieur.

SiLU et les autres fonctions d’activation#

  • ReLU : max(0, x) est moins coûteuse à calculer, produit des zéros exacts et a un gradient constant de 1 pour les entrées positives. SiLU ajoute une sigmoïde par élément en échange d’une courbe lisse et de gradients du côté négatif.
  • GELU : x · Φ(x), où Φ est la fonction de répartition de la loi normale standard. Les deux courbes ont la même forme, et la SiLU mise à l’échelle x · σ(1.702x approche GELU avec un écart inférieur à environ 0.02 partout. GELU est le choix habituel dans les Transformers comme BERT et ViT, tandis que SiLU est plus courante dans les détecteurs basés sur des CNN.
  • Sigmoïde : σ(x) seule comprime les entrées dans l’intervalle de 0 à 1 et sature aux deux extrémités ; elle sert donc de couche de sortie pour les probabilités. SiLU l’utilise uniquement comme porte.
  • Hard-Swish : x · ReLU6(x + 3) / 6, approximation de SiLU introduite avec MobileNetV3. Elle remplace la porte sigmoïde par une fonction linéaire par morceaux, évitant ainsi le calcul exponentiel sur les appareils mobiles.
  • SwiGLU : unité linéaire à portes qui multiplie élément par élément SiLU(xW) par une deuxième projection xV. Elle forme le bloc feed-forward de LLaMA et de nombreux autres LLM.

Utilisations de SiLU#

SiLU, sous le nom Swish, est la fonction d’activation utilisée dans tout EfficientNet et elle est courante dans les détecteurs d’objets modernes en temps réel. Les modèles Ultralytics YOLO utilisent SiLU depuis que YOLOv5 v4.0 a remplacé LeakyReLU et Hardswish par SiLU en janvier 2021. Dans YOLO26, chaque bloc Conv comprend une convolution, une normalisation par lots et SiLU.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique