GELU (Gaussian Error Linear Unit)
Explora a função de ativação Gaussian Error Linear Unit (GELU). Aprende como a sua não linearidade suave e probabilística potencia Transformers, BERT e a IA moderna.
A Unidade Linear de Erro Gaussiano (GELU) é uma sofisticada função de ativação que desempenha um papel fundamental no desempenho dos sistemas modernos de inteligência artificial (AI), particularmente dos baseados na arquitetura Transformer. Ao contrário das funções tradicionais, que aplicam um limiar rígido e determinístico às entradas dos neurónios, a GELU introduz um aspeto probabilístico inspirado nas propriedades da distribuição gaussiana. Ao ponderar as entradas pela sua magnitude, em vez de simplesmente as bloquear ou permitir, a GELU fornece uma não linearidade mais suave que ajuda na otimização de modelos de aprendizagem profunda (DL). Esta característica única permite que as redes modelem padrões de dados complexos de forma mais eficaz, contribuindo significativamente para o sucesso de enormes modelos fundacionais.
Como funciona a GELU#
No centro de qualquer rede neuronal, as funções de ativação determinam se um neurónio "dispara" com base no seu sinal de entrada. Funções mais antigas, como a Unidade Linear Retificada (ReLU), funcionam como um interruptor, produzindo zero para qualquer entrada negativa e a própria entrada para valores positivos. Embora eficiente, este corte abrupto pode prejudicar a dinâmica do treino.
A GELU melhora este processo ao dimensionar a entrada pela função de distribuição cumulativa de uma distribuição gaussiana. Intuitivamente, isto significa que, à medida que o valor da entrada diminui, aumenta a probabilidade de o neurónio ser desativado, mas isso acontece gradualmente e não de forma abrupta. Esta curvatura cria uma função suave e não monótona, diferenciável em todos os pontos. Esta suavidade facilita a retropropagação dos gradientes, ajudando a mitigar problemas como o problema do desaparecimento do gradiente, que pode interromper o treino de redes profundas.
Aplicações no mundo real#
O cenário de otimização mais suave proporcionado pela GELU tornou-a a escolha predefinida para algumas das aplicações mais avançadas em aprendizagem automática (ML).
- Modelos de Linguagem de Grande Escala (LLMs): A GELU ganhou destaque com a introdução do BERT (Representações de Codificadores Bidirecionais de Transformadores) por investigadores da Google. Atualmente, é um componente padrão da série GPT e de outros modelos de geração de texto. Em tarefas como sumarização de texto ou análise de sentimentos, a GELU ajuda o modelo a captar nuances subtis nas representações da linguagem que ativações rígidas poderiam não detetar.
- Transformadores de Visão (ViT): No domínio da visão computacional, os modelos que adaptam a arquitetura Transformer para a classificação de imagens dependem fortemente da GELU. Ao processarem imagens como sequências de blocos, estes modelos utilizam a GELU para preservar informações ricas sobre as características ao longo das camadas profundas, permitindo obter elevada precisão em referências como a ImageNet.
Comparação com termos relacionados#
Compreender a GELU exige muitas vezes distingui-la de outras funções de ativação populares presentes no glossário da Ultralytics.
- GELU vs. ReLU: A ReLU é computacionalmente mais simples e cria esparsidade (zeros exatos), o que pode ser eficiente. No entanto, o "canto pronunciado" no zero pode abrandar a convergência. A GELU oferece uma aproximação suave que normalmente produz maior precisão em tarefas complexas, embora com um custo computacional ligeiramente superior.
- GELU vs. SiLU (Swish): A Unidade Linear Sigmoide (SiLU) é estruturalmente muito semelhante à GELU e partilha as suas propriedades suaves e não monótonas. Embora a GELU seja dominante no Processamento de Linguagem Natural (NLP), a SiLU é frequentemente preferida em detetores de objetos altamente otimizados, como o YOLO26, devido à sua eficiência em hardware de edge e ao seu excelente desempenho em tarefas de deteção.
- GELU vs. Leaky ReLU: A Leaky ReLU tenta corrigir o problema do "neurónio morto" da ReLU padrão ao permitir uma pequena inclinação linear constante para entradas negativas. Em contraste, a GELU é não linear para valores negativos, oferecendo uma resposta mais complexa e adaptativa que muitas vezes conduz a uma melhor aprendizagem de representações em redes muito profundas.
Exemplo de Implementação#
Implementar a GELU é simples utilizando bibliotecas modernas de aprendizagem profunda, como o PyTorch. O exemplo seguinte demonstra como aplicar a função a um tensor de dados de entrada.
import torch
import torch.nn as nn
# Initialize the GELU activation function
gelu_activation = nn.GELU()
# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
# Apply GELU to the inputs
output = gelu_activation(input_data)
# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")Para programadores que pretendem utilizar estas funções de ativação avançadas nos seus próprios projetos de visão computacional, a Ultralytics Platform simplifica todo o fluxo de trabalho. Fornece uma interface unificada para anotar dados, treinar modelos utilizando arquiteturas como o YOLO26 (que utiliza funções de ativação otimizadas, como a SiLU) e implementá-los de forma eficiente na cloud ou em dispositivos edge.









