GELU (Gaussian Error Linear Unit)

Activación probabilística usada en Transformers y LLMs

La GELU (Gaussian Error Linear Unit) es una función de activación suave que pondera las entradas según su probabilidad bajo una distribución normal.

👉 Es la activación estándar en modelos como BERT, GPT y Transformers modernos.

Definición corta

La GELU activa valores de forma probabilística, suavizando la transición entre activado y no activado

Definición matemática

f(x)=xΦ(x)f(x)=x\cdot\Phi(x)

👉 donde Φ(x)\Phi(x) es la función de distribución acumulada de una normal estándar.

Aproximación común (más eficiente)

f(x)0.5x(1+tanh(2π(x+0.044715x3)))f(x) \approx 0.5x \left(1 + \tanh\left(\sqrt{\frac{2}{\pi}}(x + 0.044715x^3)\right)\right)

Intuición

GELU responde:

👉 “Activo una entrada según qué tan probable es que sea relevante”

Valores grandes → activados  
Valores pequeños → parcialmente activados
Valores negativos → suavemente atenuados

Interpretación geométrica

  • curva suave
  • transición gradual
  • no linealidad continua

Comparación conceptual

ReLU → corte brusco  
GELU → transición probabilística

Diferencia clave con ReLU

PropiedadReLUGELU
Tipodeterministaprobabilística
Suavidadno
Negativos0pequeños valores
Derivadadiscontinuacontinua

Interpretación probabilística

f(x)=xP(Xx)f(x) = x \cdot P(X \le x)

👉 pondera la activación según la probabilidad.


📊 Ejemplo conceptual

Entrada  

Probabilidad asociada

Activación ponderada

Ventajas

  • transición suave
  • mejor flujo de gradiente
  • mayor expresividad
  • mejor rendimiento en modelos grandes

🧠 Desventajas

  • más costosa que ReLU
  • menos intuitiva
  • no siempre necesaria en modelos simples

Uso en arquitecturas modernas

🔹 Transformers

  • BERT
  • GPT
  • LLMs

🔹 Redes profundas avanzadas

  • modelos con alta capacidad

📊 Ejemplo conceptual

Transformer  

GELU

Representación rica

GELU vs otras activaciones

  • vs ReLU → más suave
  • vs Swish → similar pero diferente base
  • vs Mish → más estable en práctica

📊 Ejemplo en Python

import numpy as np
def gelu(x):
return 0.5 * x * (1 + np.tanh(np.sqrt(2/np.pi)*(x + 0.044715*x**3)))
x = np.array([-2, -1, 0, 1, 2])
print(gelu(x))

Ejemplo en PyTorch

import torch
import torch.nn as nn
gelu = nn.GELU()
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
print(gelu(x))

Ejemplo en modelo

import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 20),
nn.GELU(),
nn.Linear(20, 1)
)

Qué muestra este ejemplo

  • activación suave
  • comportamiento probabilístico
  • uso en modelos modernos

Errores comunes

Pensar que siempre supera a ReLU

Depende del modelo.

Usarla en sistemas con restricciones

Puede ser costosa.

No entender su naturaleza probabilística

Clave para su comportamiento.

Ejemplo conceptual en ML

Entrada  

GELU

Activación suave

Mejor representación

Interpretación profunda

GELU introduce un cambio clave:

👉 De activaciones deterministas a activaciones probabilísticas

Esto permite:

  • decisiones más suaves
  • mejor modelado de incertidumbre
  • mayor capacidad en modelos complejos

Conclusión

La GELU es una función de activación moderna que combina suavidad y probabilidad, siendo clave en Transformers y modelos de lenguaje actuales.

👉 Es una de las razones del éxito de los LLMs modernos.


Related Concepts

  • ReLU
  • Swish
  • Mish
  • Transformers
  • Función de activación