Explore o papel da função sigmoidal na aprendizagem automática. Saiba como essa função de ativação permite a classificação binária em modelos como Ultralytics .
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.
Embora o sigmoidal já tenha sido o padrão para todas as camadas, os investigadores descobriram limitações como o problema do gradiente desaparecido, em que os gradientes se tornam muito pequenos para atualizar os pesos de forma eficaz em redes profundas. Isso levou à adoção de alternativas para camadas ocultas .
A utilidade da função sigmoidal estende-se por vários setores em que é necessária a estimativa de probabilidades.
Você pode observar como o Sigmoid transforma dados usando PyTorch, uma biblioteca popular para a construção de modelos de aprendizagem profunda. Este exemplo simples demonstra o efeito de "esmagamento" em uma gama 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 inputs
Para aqueles que desejam treinar modelos que utilizam esses conceitos sem escrever código de baixo nível, a Ultralytics oferece uma interface intuitiva para gerenciar conjuntos de dados e treinar modelos de última geração, como o YOLO26. Ao lidar automaticamente com as complexidades arquitetónicas, ela permite que os utilizadores se concentrem na coleta de dados de treinamento de alta qualidade para suas aplicações específicas de visão computacional.