Sigmoid
Explore o papel da função Sigmoid na aprendizagem automática. Saiba como esta função de ativação permite a classificação binária em modelos como o Ultralytics YOLO26.
A função Sigmoid é um componente matemático fundamental amplamente utilizado nas áreas de aprendizagem automática (ML) e aprendizagem profunda (DL). Frequentemente denominada "função de compressão", recebe como entrada qualquer número real e mapeia-o para um valor entre 0 e 1. Esta curva em forma de "S" torna-a extremamente útil para converter as saídas brutas dos modelos em probabilidades interpretáveis. No contexto de uma rede neural (NN), a função Sigmoid atua como uma função de ativação, introduzindo não linearidade que permite aos modelos aprender padrões complexos para além de relações lineares simples. Embora tenha sido amplamente substituída por outras funções nas camadas ocultas profundas, continua a ser uma escolha padrão para as camadas de saída em tarefas de classificação binária.
A mecânica da Sigmoid na IA#
No seu núcleo, a função Sigmoid transforma os dados de entrada — frequentemente denominados logits — num intervalo normalizado. Esta transformação é crucial para tarefas cujo objetivo é prever a probabilidade de um evento. Ao limitar a saída entre 0 e 1, a função fornece uma pontuação de probabilidade clara.
- Regressão logística: Na modelação estatística tradicional, a Sigmoid é o motor por detrás da regressão logística. Permite aos cientistas de dados estimar a probabilidade de um resultado binário, como a possibilidade de um cliente abandonar o serviço ou permanecer.
- Classificação binária: Nas redes neurais concebidas para distinguir entre duas classes (por exemplo, "gato" e "cão"), a camada final utiliza frequentemente uma ativação Sigmoid. Se a saída for superior a um limiar (normalmente 0,5), o modelo prevê a classe positiva.
- Classificação multilabel: Ao contrário dos problemas multiclasse, em que as classes são mutuamente exclusivas, as tarefas multilabel permitem que uma imagem ou um texto pertença simultaneamente a várias categorias. Neste caso, a Sigmoid é aplicada de forma independente a cada nó de saída, permitindo que um modelo detete um "carro" e uma "pessoa" na mesma cena sem conflitos.
Principais diferenças em relação a outras funções de ativação#
Embora a Sigmoid tenha sido anteriormente a predefinição para todas as camadas, os investigadores descobriram limitações, como o problema do gradiente evanescente, em que os gradientes se tornam demasiado pequenos para atualizar os pesos de forma eficaz em redes profundas. Isto levou à adoção de alternativas para as camadas ocultas.
- Sigmoid vs. ReLU (Unidade Linear Retificada): A ReLU é computacionalmente mais rápida e evita gradientes evanescentes ao produzir diretamente a entrada se esta for positiva, e zero caso contrário. É a escolha preferida para as camadas ocultas em arquiteturas modernas, como a YOLO26, enquanto a Sigmoid é reservada para a camada de saída final em tarefas específicas.
- Sigmoid vs. Softmax: Ambas mapeiam as saídas para um intervalo de 0 a 1, mas têm finalidades diferentes. A Sigmoid trata cada saída de forma independente, o que a torna ideal para tarefas binárias ou multilabel. A Softmax força a soma de todas as saídas a ser 1, criando uma distribuição de probabilidade utilizada para classificação multiclasse, em que apenas uma classe está correta.
Aplicações no mundo real#
A utilidade da função Sigmoid estende-se a vários setores em que é necessária a estimação de probabilidades.
-
Diagnóstico médico: Os modelos de IA utilizados na análise de imagens médicas recorrem frequentemente a saídas Sigmoid para prever a probabilidade de uma doença estar presente numa radiografia ou num exame de MRI. Por exemplo, um modelo pode produzir 0,85, indicando uma probabilidade de 85% de existir um tumor e ajudando os médicos na deteção precoce.
-
Deteção de spam: Os sistemas de filtragem de e-mail utilizam modelos de processamento de linguagem natural (NLP) com classificadores Sigmoid para determinar se uma mensagem recebida é "spam" ou "não é spam". O modelo analisa palavras-chave e metadados, produzindo uma pontuação que determina se o e-mail chega à caixa de entrada ou à pasta de lixo eletrónico.
Implementação prática#
Podes observar como a Sigmoid transforma os dados utilizando PyTorch, uma biblioteca popular para criar modelos de aprendizagem profunda. Este exemplo simples demonstra o efeito de "compressão" num conjunto de valores de entrada.
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 inputsPara quem pretende treinar modelos que utilizam estes conceitos sem escrever código de baixo nível, a Ultralytics Platform oferece uma interface intuitiva para gerir conjuntos de dados e treinar modelos de última geração, como a YOLO26. Ao tratar automaticamente das complexidades arquiteturais, permite que os utilizadores se concentrem na recolha de dados de treino de alta qualidade para as suas aplicações específicas de visão computacional.









