A função Sigmoide é uma função de ativação amplamente reconhecida, utilizada na aprendizagem automática (ML) e, em particular, nas redes neuronais (NN). Caracteriza-se por sua curva em forma de "S", mapeando matematicamente qualquer valor de entrada para uma saída entre 0 e 1. Essa propriedade a torna especialmente útil para converter saídas brutas (logits) de um modelo em probabilidades, que são mais fáceis de interpretar. Historicamente, a Sigmoide era uma escolha popular para camadas ocultas em NNs, embora tenha sido amplamente substituída por funções como ReLU para esse fim em arquitecturas modernas de aprendizagem profunda (DL) devido a certas limitações.
Como funciona o Sigmoid
A função Sigmoid pega em qualquer número real e esmaga-o no intervalo (0, 1). Entradas negativas grandes resultam em saídas próximas de 0, entradas positivas grandes resultam em saídas próximas de 1 e uma entrada de 0 resulta em uma saída de 0,5. É uma função não linear, o que é crucial porque o empilhamento de várias camadas lineares em uma rede neural sem não linearidade resultaria simplesmente em outra função linear, limitando a capacidade do modelo de aprender padrões complexos presentes em dados como imagens ou texto. A sigmoide também é diferenciável, uma propriedade necessária para treinar redes neurais usando métodos de otimização baseados em gradiente, como retropropagação e descida de gradiente.
Aplicações do Sigmoid
A principal aplicação do Sigmoid hoje é na camada de saída de modelos de classificação binária. Como a sua saída se situa naturalmente entre 0 e 1, é ideal para representar a probabilidade de uma entrada pertencer à classe positiva.
- Diagnóstico médico: Na análise de imagens médicas, um modelo pode analisar caraterísticas de um exame (por exemplo, um conjunto de dados de tumores cerebrais) e usar uma camada de saída Sigmoid para prever a probabilidade de uma condição específica (por exemplo, malignidade) estar presente. Uma saída acima de um determinado limite (geralmente 0,5) indica uma previsão positiva. Este resultado probabilístico ajuda os médicos a compreender a confiança do modelo. Vê exemplos na investigação de IA em Radiologia.
- Deteção de spam: No Processamento de Linguagem Natural (PLN), uma função Sigmoide pode ser utilizada na camada final de um modelo concebido para classificação de texto, como identificar se um e-mail é spam ou não. O modelo processa o conteúdo da mensagem de correio eletrónico e produz uma probabilidade (através da Sigmoide) de a mensagem ser spam. Este é um problema clássico de classificação binária comum em aplicações de PLN.
O Sigmoid também pode ser usado em tarefas de classificação com vários rótulos, em que uma entrada pode pertencer a várias categorias simultaneamente (por exemplo, um artigo de notícias marcado com "política", "economia" e "Europa"). Neste caso, é utilizado um neurónio de saída Sigmoid separado para cada etiqueta potencial, estimando a probabilidade de essa etiqueta específica ser relevante, independentemente das outras. Isso contrasta com a classificação multiclasse (em que apenas um rótulo se aplica, como classificar uma imagem como "gato", "cachorro" ou "pássaro"), que normalmente usa a função Softmax.
Sigmoid Vs. Funções de ativação relacionadas
Compreender a Sigmoid envolve frequentemente compará-la com outras funções de ativação:
- ReLU (Unidade Linear Rectificada): A ReLU produz a entrada diretamente se for positiva, e zero caso contrário. É computacionalmente mais simples e evita o problema do gradiente de desaparecimento para entradas positivas, tornando-a a escolha preferida para camadas ocultas na maioria das NNs modernas, incluindo muitas Ultralytics YOLO como o YOLOv8. Variantes como o Leaky ReLU resolvem o problema do "neurónio moribundo" do ReLU.
- Tanh (Tangente hiperbólica): Tanh é matematicamente relacionado a Sigmoid, mas reduz as entradas ao intervalo (-1, 1). Sua saída é centrada em zero, o que às vezes pode ajudar na otimização em comparação com a saída não centrada em zero de Sigmoid (0 a 1). No entanto, como Sigmoid, sofre do problema do gradiente de desaparecimento.
- Softmax: Usado na camada de saída para problemas de classificação de várias classes. Ao contrário do Sigmoid (que fornece probabilidades independentes para tarefas binárias ou com vários rótulos), o Softmax produz uma distribuição de probabilidade em todas as classes, garantindo que a soma das probabilidades seja 1. Isso o torna adequado quando as classes são mutuamente exclusivas.
- SiLU (Sigmoid Linear Unit) / Swish: Uma função de ativação mais recente que multiplica a entrada pela Sigmoide da entrada. Tem frequentemente um desempenho melhor do que a ReLU em modelos mais profundos e é utilizada em arquitecturas como a EfficientNet e algumas variantes YOLO . Demonstra como o Sigmoide continua a ser relevante como um componente dentro de funções mais recentes. Vê a documentação PyTorch para a implementação do SiLU.
Vantagens e limitações
Vantagens:
- Interpretação probabilística: O intervalo de saída (0, 1) é intuitivo para representar probabilidades na classificação binária.
- Gradiente suave: Ao contrário das funções com alterações abruptas (como as funções escalonadas), a Sigmoide tem uma derivada suave e bem definida, facilitando a aprendizagem baseada em gradientes.
Limitações:
- Desaparecimento de gradientes: Para valores de entrada muito altos ou muito baixos, o gradiente da função Sigmoid torna-se extremamente pequeno (próximo de zero). Durante a retropropagação, esses gradientes pequenos podem ser multiplicados por muitas camadas, fazendo com que os gradientes das camadas anteriores desapareçam, interrompendo efetivamente o aprendizado. Esta é uma das principais razões pelas quais é menos favorecida para camadas ocultas profundas.
- Saída não centrada em zero: O intervalo de saída (0, 1) não está centrado em zero. Isso às vezes pode retardar a convergência de algoritmos de descida de gradiente em comparação com funções centradas em zero, como Tanh.
- Custo computacional: A operação exponencial envolvida torna-a ligeiramente mais dispendiosa do ponto de vista computacional do que funções mais simples como a ReLU.
Uso moderno e disponibilidade
Embora menos comum nas camadas ocultas das redes profundas actuais, o Sigmoide continua a ser uma escolha padrão para as camadas de saída em tarefas de classificação binária e de classificação com vários rótulos. Também forma um componente central nos mecanismos de regulação das redes neurais recorrentes (RNN), como LSTMs e GRUs, controlando o fluxo de informações.
O Sigmoid está disponível em todos os principais quadros de aprendizagem profundaincluindo PyTorch (como torch.sigmoid
) e TensorFlow (como tf.keras.activations.sigmoid
). Plataformas como Ultralytics HUB modelos de suporte que utilizam várias funções de ativação, permitindo aos utilizadores comboio e implanta sofisticado visão computacional soluções.