Learn how the Sigmoid function acts as a squashing activation function in deep learning. Explore its role in binary classification and [YOLO26](https://docs.ultralytics.com/models/yolo26/) models.
A função sigmoide é um componente matemático fundamental amplamente utilizado nas áreas de aprendizagem automática (ML) e aprendizagem profunda (DL). Frequentemente referida como uma «função de esmagamento», ela recebe qualquer número real como entrada e mapeia-o para um valor entre 0 e 1. Esta curva característica em forma de «S» torna-a incrivelmente útil para converter resultados brutos do modelo em probabilidades interpretáveis. No contexto de uma rede neural (NN), a função sigmoide atua como uma função de ativação, introduzindo não linearidade que permite que os modelos aprendam padrões complexos além de relações lineares simples. Embora tenha sido amplamente substituída por outras funções em camadas ocultas profundas, continua a ser uma escolha padrão para camadas de saída em tarefas de classificação binária .
Na sua essência, a função sigmoide transforma os dados de entrada — frequentemente referidos como 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.
While Sigmoid was once the default for all layers, researchers discovered limitations like the vanishing gradient problem, where gradients become too small to update weights effectively in deep networks. This led to the adoption of alternatives for hidden layers.
The utility of the Sigmoid function extends across various industries where probability estimation is required.
You can observe how Sigmoid transforms data using PyTorch, a popular library for building deep learning models. This simple example demonstrates the "squashing" effect on a range of input values.
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
For those looking to train models that utilize these concepts without writing low-level code, the Ultralytics Platform offers an intuitive interface to manage datasets and train state-of-the-art models like YOLO26. By handling the architectural complexities automatically, it allows users to focus on gathering high-quality training data for their specific computer vision applications.