Glossário

GELU (Unidade Linear de Erro Gaussiano)

Descobre como a função de ativação GELU melhora os modelos de transformadores como o GPT-4, aumentando o fluxo de gradiente, a estabilidade e a eficiência.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A GELU (Gaussian Error Linear Unit) é um tipo de função de ativação comummente utilizada nas redes neuronais modernas, em particular nas arquitecturas Transformer. Proposta por Dan Hendrycks e Kevin Gimpel no artigo"Gaussian Error Linear Units (GELUs)", ela tem como objetivo combinar propriedades de dropout, zoneout e ReLU (Rectified Linear Unit) para melhorar o desempenho do modelo. Ao contrário da ReLU, que corta acentuadamente os valores negativos, a GELU fornece uma curva mais suave, ponderando as entradas com base na sua magnitude e não apenas no seu sinal.

Como funciona a GELU

A função GELU modula a entrada com base no seu valor, decidindo efetivamente se deve "ativar" um neurónio. Multiplica a entrada pelo valor da função de distribuição cumulativa gaussiana padrão (CDF) aplicada a essa entrada. Intuitivamente, isto significa que as entradas mais afastadas de zero (tanto positivas como negativas) têm mais probabilidades de serem preservadas, enquanto as entradas mais próximas de zero têm mais probabilidades de serem anuladas. Essa abordagem probabilística introduz uma forma de regularização estocástica semelhante ao dropout, mas determinada pelo próprio valor de entrada, levando a uma função não linear que pode capturar padrões mais complexos nos dados.

GELU vs. Outras funções de ativação

A GELU oferece vantagens em relação a funções de ativação mais simples, contribuindo para a sua adoção em modelos de última geração:

  • ReLU: O ReLU é computacionalmente simples, mas pode sofrer do problema "dying ReLU", em que os neurónios ficam inactivos para entradas negativas, o que pode dificultar a aprendizagem. A curva suave da GELU permite que os gradientes fluam mais facilmente, especialmente para valores negativos, atenuando potencialmente este problema.
  • ReLU com fuga: Enquanto o Leaky ReLU aborda o problema do ReLU moribundo, permitindo um gradiente pequeno e diferente de zero para entradas negativas, mantém uma relação linear simples no domínio negativo. O GELU oferece uma transformação mais complexa e não linear.
  • SiLU (Swish): SiLU (Sigmoid Linear Unit) é outra função de ativação suave que muitas vezes tem desempenho semelhante ao GELU. A escolha entre GELU e SiLU pode depender da arquitetura e do conjunto de dados específicos, muitas vezes determinados por meio de testes empíricos ou ajuste de hiperparâmetros.

Aplicações e significado

A GELU tornou-se uma escolha popular em muitos modelos avançados de aprendizagem profunda devido ao seu forte desempenho empírico:

  1. Processamento de linguagem natural (PNL): É amplamente utilizado em modelos baseados em transformadores, como os modelos BERT e GPT, contribuindo para o seu sucesso em tarefas como a geração de texto e a compreensão da linguagem natural.
  2. Visão por computador: A GELU também é encontrada nos Transformadores de Visão (ViT) e nos modelos de visão subsequentes. Por exemplo, componentes como a Generalized Efficient Layer Aggregation Network (GELAN) utilizada no Ultralytics YOLOv9 empregam a GELU para melhorar a extração de caraterísticas e aumentar a precisão nas tarefas de deteção de objectos, tal como detalhado no documento YOLOv9.

A capacidade da função de fornecer uma não-linearidade suave e incorporar a magnitude da entrada nas decisões de ativação torna-a eficaz para o treino de redes profundas. Embora um pouco mais intensiva em termos de computação do que a ReLU, seus benefícios de desempenho muitas vezes justificam seu uso em modelos de grande escala disponíveis por meio de estruturas como PyTorch e TensorFlow.

Lê tudo