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

Sigmoid

A função sigmoide mapeia qualquer número real para um valor entre 0 e 1. Aborda a fórmula, o gradiente, as saídas de probabilidade, as portas e o código PyTorch.

A função sigmoide, σ(x) = 1 / (1 + e^(−x)), mapeia qualquer número real para um valor entre 0 e 1 em uma curva em forma de S: entradas muito negativas produzem saídas próximas de 0, entradas muito positivas produzem saídas próximas de 1 e uma entrada igual a 0 produz exatamente 0.5. Em aprendizado de máquina (ML), “sigmoide” quase sempre significa essa função logística, a mesma curva que transforma uma pontuação linear em probabilidade na regressão logística. Em uma rede neural (NN), a sigmoide desempenha três funções: era a função de ativação original das camadas ocultas, transforma uma pontuação final em uma probabilidade para saídas binárias e multirrótulo e atua como um interruptor suave nos gates de células recorrentes e de outras camadas com gate. Desde então, as camadas ocultas passaram a usar funções como ReLU; por isso, a maioria das sigmoides nos modelos atuais aparece nas saídas e nos gates.

Fórmula e propriedades#

A sigmoide é simétrica em torno do ponto médio, σ(−x) = 1 − σ(x), e sua inversa é a função logit, log(p / (1 − p)), que converte uma probabilidade de volta em log-odds. Por isso, a saída bruta de uma rede antes da sigmoide é chamada de logit. A derivada tem uma forma compacta, σ′(x) = σ(x)(1 − σ(x)), que atinge o máximo de 0.25 quando x = 0 e tende a zero à medida que a curva se achata em cada extremidade, um comportamento chamado saturação. O trecho de código PyTorch abaixo calcula as saídas e os gradientes em cinco pontos:

import torch

x = torch.tensor([-6.0, -2.0, 0.0, 2.0, 6.0], requires_grad=True)
y = torch.sigmoid(x)

# Backpropagate to get the derivative sigmoid(x) * (1 - sigmoid(x)) at each input
y.sum().backward()

print(f"Sigmoid:  {[round(v, 4) for v in y.tolist()]}")
print(f"Gradient: {[round(v, 4) for v in x.grad.tolist()]}")

Imprime os valores da sigmoide [0.0025, 0.1192, 0.5, 0.8808, 0.9975] e os gradientes [0.0025, 0.105, 0.25, 0.105, 0.0025]. Em ±6, a saída está a menos de 0.0025 do limite e o gradiente é 100 vezes menor do que em zero, então uma entrada nesse intervalo quase não altera os pesos que a produziram.

Sigmoide nas camadas ocultas#

As primeiras redes multicamadas usavam sigmoide em todas as camadas ocultas, o que causava dois problemas. A retropropagação multiplica uma derivada de ativação por camada e, como a derivada da sigmoide nunca excede 0.25, em dez camadas sigmoides essas derivadas, sozinhas, reduzem o gradiente em no máximo 0.25¹⁰, menos de um milionésimo: o problema do gradiente evanescente. As saídas da sigmoide também são sempre positivas, então todos os gradientes dos pesos de um neurônio que as recebe têm o mesmo sinal em cada atualização, e os pesos só conseguem oscilar em direção ao valor ideal. A tanh centraliza suas saídas em zero, e Xavier Glorot e Yoshua Bengio mostraram em 2010 que a média positiva da sigmoide leva a camada oculta superior de uma rede profunda inicializada aleatoriamente à saturação. A ReLU eliminou ambos os problemas e se tornou a opção padrão para camadas ocultas; sucessoras suaves como a SiLU, x · σ(x), ainda usam a sigmoide internamente como gate.

Sigmoide como camada de saída#

Na classificação binária, uma única saída z torna-se p = σ(z), a probabilidade prevista da classe positiva; um limiar de 0,5 para p equivale a um limiar de 0 para z. O treinamento combina a sigmoide com a entropia cruzada binária, cujo gradiente em relação ao logit é simplesmente p − y, a probabilidade prevista menos o rótulo. As estruturas de software fundem os dois para garantir estabilidade numérica: BCEWithLogitsLoss do PyTorch recebe logits brutos e usa internamente o truque log-sum-exp, evitando calcular o logaritmo de uma probabilidade arredondada exatamente para 0 ou 1.

Quando os rótulos podem ocorrer juntos, o modelo usa uma sigmoide por rótulo, numa configuração chamada classificação multirrótulo. Já o softmax faz as classes competirem por uma única unidade de probabilidade, o que é adequado para rótulos mutuamente excludentes:

import torch

# Logits from a classifier for the labels "person", "backpack", and "car"
logits = torch.tensor([2.0, 1.5, -3.0])

# Sigmoid scores each label on its own; softmax makes the labels compete for one total
sigmoid_probs = torch.sigmoid(logits)
softmax_probs = torch.softmax(logits, dim=0)

print(f"Sigmoid: {[round(p, 3) for p in sigmoid_probs.tolist()]}, sum {sigmoid_probs.sum():.3f}")
print(f"Softmax: {[round(p, 3) for p in softmax_probs.tolist()]}, sum {softmax_probs.sum():.3f}")

As pontuações da sigmoide [0.881, 0.818, 0.047] somam 1.746, então “person” e “backpack” ultrapassam 0.5, enquanto o softmax divide os mesmos logits em [0.62, 0.376, 0.004] e apenas “person” permanece acima de 0.5. Os modelos de detecção YOLO26 calculam a pontuação de cada classe com uma sigmoide independente treinada com BCEWithLogitsLoss, então as pontuações de classe de uma caixa não precisam somar 1; os modelos de pose YOLO26 aplicam uma sigmoide ao logit de visibilidade de cada ponto-chave para produzir a probabilidade de que esse ponto esteja visível.

Sigmoide como gate#

Como sua saída fica entre 0 e 1, a sigmoide pode escalar outro sinal elemento a elemento, de totalmente bloqueado a totalmente transmitido, mantendo a diferenciabilidade:

  • Células LSTM e GRU: Os gates sigmoides decidem quanto da memória antiga manter, quanto do conteúdo novo escrever e quanto do estado expor em cada passo temporal, enquanto a tanh molda o próprio conteúdo.
  • SwiGLU: As camadas feed-forward de muitos modelos de linguagem grandes (LLMs) multiplicam uma projeção aprendida por uma segunda projeção ativada por SiLU, um gate baseado em sigmoide.
  • SigLIP: Esse modelo de imagem e texto calcula a pontuação de cada par imagem-legenda em um lote com sua própria sigmoide, que representa uma probabilidade binária de correspondência; assim, sua função de perda não precisa de normalização entre os elementos do lote.
  • Função logística: Um sinônimo de sigmoide em aprendizado de máquina. Em matemática, “sigmoide” também abrange outras curvas em forma de S, incluindo tanh e a função erro.
  • Softmax: Normaliza um vetor inteiro em probabilidades que somam 1. Para duas classes, o softmax dos logits (z₁, z₂) produz a sigmoide σ(z₁ − z₂) para a primeira classe; assim, um softmax com duas saídas e uma sigmoide com uma saída descrevem o mesmo modelo.
  • Tanh: Uma sigmoide redimensionada, tanh(x) = 2σ(2x) − 1, com saídas de −1 a 1 centradas em zero e derivada máxima igual a 1.
  • Sigmoide rígida: Uma aproximação linear por partes que evita a exponencial em hardware móvel. A MobileNetV3 usa ReLU6(x + 3) / 6, que vale 0 abaixo de x = −3, 1 acima de x = 3 e é uma linha reta entre esses valores.

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