Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

SiLU (Sigmoid Linear Unit)

SiLU, também chamada Swish, multiplica uma entrada pela sua sigmoide para produzir uma ativação suave com autorregulação. Aborda sua matemática, origem e comparação com ReLU.

A Unidade Linear Sigmoide (SiLU) é uma função de ativação definida como SiLU(x) = x · σ(x), em que σ é a função sigmoide. Ela deixa passar entradas positivas grandes quase sem alterações, mapeia entradas negativas grandes para valores próximos de zero e faz uma transição suave entre elas, atingindo um mínimo de cerca de −0.278 em x ≈ −1.278. SiLU é a mesma função que Swish com β = 1, e os dois nomes são usados de forma intercambiável. É uma opção padrão comum em modelos convolucionais de visão e, dentro do bloco SwiGLU, também alimenta as camadas feed-forward de muitos modelos de linguagem grandes (LLMs).

Definição e propriedades#

A SiLU multiplica cada entrada por um gate, σ(x), cujo valor fica entre 0 e 1 e é calculado a partir da própria entrada; por isso, ela é chamada de auto-guiada. Sua derivada é σ(x) · (1 + x · (1 − σ(x))), e, em conjunto, elas conferem à SiLU quatro propriedades que diferenciam seu comportamento durante o treinamento do da ReLU:

  • Suave em todos os pontos: A curva e sua derivada são contínuas, sem descontinuidade em zero, então pequenas alterações nos pesos causam pequenas alterações na saída, o que favorece o gradiente descendente.
  • Gradiente para entradas negativas: Uma unidade cuja entrada é negativa ainda recebe um gradiente pequeno, então continua aprendendo. As unidades ReLU cujas entradas permanecem negativas não recebem nenhum gradiente e podem parar de aprender para sempre; essa falha é conhecida como ReLU morta.
  • Não monotônica: A saída diminui um pouco à medida que x aumenta de valores muito negativos até cerca de −1.28 e aumenta a partir daí, portanto a função não é monotônica.
  • Limitada inferiormente e ilimitada superiormente: As saídas nunca ficam abaixo de cerca de −0.278, e as entradas positivas passam sem saturar, como na ReLU, o que evita o comportamento de gradiente evanescente da sigmoide e da tanh em redes profundas.

O código PyTorch abaixo calcula a SiLU e os gradientes da SiLU e da ReLU em cinco pontos.

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), comparada com ReLU nas mesmas entradas
silu = F.silu(x)
relu = F.relu(x)

# Gradiente de cada ativação em relação à sua entrada
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())

Imprime as saídas da SiLU [-0.0719, -0.2785, 0.0, 0.7311, 3.9281], os gradientes da SiLU [-0.0527, -0.0003, 0.5, 0.9277, 1.0527] e os gradientes da ReLU [0.0, 0.0, 0.0, 1.0, 1.0]. Em −4, a ReLU produz 0 e não transmite gradiente, enquanto a SiLU ainda transmite −0.0527. Em −1.28, a SiLU está em seu mínimo de −0.2785, com um gradiente quase exatamente igual a 0, e em 4 seu gradiente é ligeiramente maior que 1.

Origem do nome#

Hendrycks e Gimpel chamaram x · σ(x) de Unidade Linear Sigmoide em seu artigo de 2016, que apresentou a GELU, onde ela surgiu como uma variante da GELU baseada em sigmoide que tinha desempenho inferior ao da GELU, mas geralmente superior ao da ReLU e da ELU. Em 2017, Elfwing, Uchibe e Doya usaram a SiLU para aproximar funções de redes neurais em aprendizado por reforço. Mais tarde naquele ano, pesquisadores do Google redescobriram x · σ(βx) por meio de uma busca automatizada por funções de ativação, deram a ela o nome Swish e relataram que substituir ReLU por essa função aumentou a acurácia top-1 no ImageNet em 0.9% para a Mobile NASNet-A e em 0.6% para a Inception-ResNet-v2. O PyTorch adicionou nn.SiLU na versão 1.7, usando o nome anterior.

SiLU versus outras funções de ativação#

  • ReLU: max(0, x) é mais barata de calcular, produz zeros exatos e tem um gradiente constante de 1 para entradas positivas. A SiLU adiciona uma sigmoide por elemento em troca de suavidade e gradientes no lado negativo.
  • GELU: x · Φ(x), em que Φ é a função de distribuição cumulativa normal padrão. As duas curvas têm o mesmo formato, e a SiLU escalonada x · σ(1.702x) aproxima a GELU com diferença inferior a cerca de 0.02 em todos os pontos. A GELU é a opção habitual em Transformers como BERT e ViT, enquanto a SiLU é mais comum em detectores baseados em CNN.
  • Sigmoide: σ(x), sozinha, comprime as entradas no intervalo de 0 a 1 e satura nas duas extremidades, por isso é usada como camada de saída para probabilidades. A SiLU a usa apenas como gate.
  • Hard-Swish: x · ReLU6(x + 3) / 6, uma aproximação da SiLU apresentada com a MobileNetV3 que substitui o gate sigmoide por um gate linear por partes, evitando a exponencial em hardware móvel.
  • SwiGLU: Uma unidade linear com gate que multiplica SiLU(xW), elemento a elemento, por uma segunda projeção xV. Ela forma o bloco feed-forward da LLaMA e de muitos outros LLMs.

Onde a SiLU é usada#

A SiLU, com o nome Swish, é a ativação usada em toda a EfficientNet e é comum em detectores de objetos em tempo real modernos. Os modelos Ultralytics YOLO usam SiLU desde que a versão 4.0 da YOLOv5 substituiu LeakyReLU e Hardswish por ela, em janeiro de 2021; no YOLO26, cada bloco Conv consiste em uma convolução, normalização em lote e SiLU.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina