Sobes.tech
Middle — Senior

O que é GELU e por que é melhor que ReLU em transformadores?

sobes.tech IA

Resposta da IA

GELU (Unidade Linear de Erro Gaussiana) é uma função de ativação frequentemente usada em transformadores e outras redes neurais modernas. Ela difere do ReLU clássico por ser suave e considerar a natureza probabilística da ativação.

A fórmula do GELU aproxima-se assim:

[ \text{GELU}(x) = x \cdot \Phi(x) ]

onde ( \Phi(x) ) é a função de distribuição da distribuição normal padrão.

Vantagens do GELU sobre o ReLU:

  • Suavidade: GELU é contínuo e diferenciável, o que melhora o treinamento.
  • Estocasticidade: GELU leva em conta a probabilidade de ativação do neurônio, ajudando o modelo a lidar melhor com ruído e incerteza.
  • Melhor representação de dados: em tarefas de NLP e transformadores, o GELU promove um treinamento mais eficiente e melhora a qualidade do modelo.

Exemplo de uso em PyTorch:

import torch
import torch.nn.functional as F

def gelu(x):
    return 0.5 * x * (1 + torch.tanh(torch.sqrt(torch.tensor(2 / 3.1415)) * (x + 0.044715 * x ** 3)))

x = torch.tensor([-1.0, 0.0, 1.0])
print(gelu(x))

Assim, o GELU fornece uma ativação mais suave e informativa em comparação com ReLU, o que é importante para modelos complexos como transformadores.