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.
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.
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).
Para compreender o GELU, muitas vezes é necessário distingui-lo de outras funções de ativação populares encontradas no Ultralytics .
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.