Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

GELU (Gaussian Error Linear Unit)

Explore a função de ativação Gaussian Error Linear Unit (GELU). Saiba como a sua suavidade e não linearidade probabilística impulsionam os Transformers, o 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 modernos sistemas de inteligência artificial (IA), particularmente aqueles 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 aspecto probabilístico inspirado nas propriedades da distribuição gaussiana. Ao ponderar as entradas pela sua magnitude, em vez de simplesmente as bloquear, a GELU proporciona 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 modelos de base massivos.

Como o GELU Funciona

No núcleo de qualquer rede neural, as funções de ativação determinam se um neurónio «disparará» com base no seu sinal de entrada. Funções mais antigas, como a Unidade Linear Retificada (ReLU), operam 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.

O GELU melhora isso ao dimensionar a entrada pela função de distribuição cumulativa de uma distribuição gaussiana. Intuitivamente, isso significa que, à medida que o valor de entrada diminui, a probabilidade do neurónio ser descartado aumenta, mas isso acontece gradualmente, em vez de abruptamente. Essa curvatura cria uma função suave e não monotónica que é diferenciável em todos os pontos. Essa suavidade facilita uma melhor retropropagação de gradientes, ajudando a mitigar problemas como o problema do gradiente desaparecido, que pode interromper o treinamento de redes profundas.

Aplicações no Mundo Real

O panorama de otimização mais suave proporcionado pelo GELU tornou-o a escolha padrão para algumas das aplicações mais avançadas em aprendizagem automática (ML).

Comparação com Termos Relacionados

Para compreender o GELU, muitas vezes é necessário distingui-lo de outras funções de ativação populares encontradas no Ultralytics .

  • GELU vs. ReLU: ReLU é computacionalmente mais simples e cria dispersão (zeros exatos), o que pode ser eficiente. No entanto, o «ângulo agudo» no zero pode retardar a convergência. GELU oferece uma aproximação suave que normalmente produz maior precisão em tarefas complexas, embora com um custo computacional ligeiramente mais elevado.
  • GELU vs. SiLU (Swish): A Sigmoid Linear Unit (SiLU) é estruturalmente muito semelhante à GELU e partilha as suas propriedades suaves e não monotónicas. Enquanto a GELU é 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 ponta e excelente desempenho em tarefas de deteção.
  • GELU vs. Leaky ReLU: Leaky ReLU tenta corrigir o problema do «neurónio moribundo» do ReLU padrão, permitindo uma inclinação linear pequena e constante para entradas negativas. Em contrapartida, o GELU é não linear para valores negativos, oferecendo uma resposta mais complexa e adaptativa que muitas vezes leva a uma melhor aprendizagem de representação em redes muito profundas.

Exemplo de implementação

A implementação do GELU é simples utilizando bibliotecas modernas de aprendizagem profunda, como PyTorch. O exemplo a seguir demonstra como aplicar a função a um tensor 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 os programadores que desejam aproveitar essas funções avançadas de ativação em seus próprios projetos de visão computacional, Ultralytics simplifica todo o fluxo de trabalho. Ela fornece uma interface unificada para anotar dados, treinar modelos usando arquiteturas como YOLO26 (que utiliza ativações otimizadas como SiLU) e implantá-los com eficiência na nuvem ou em dispositivos de ponta.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora