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.
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.
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.
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:
A GELU tornou-se uma escolha popular em muitos modelos avançados de aprendizagem profunda devido ao seu forte desempenho empírico:
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.