Middle — Senior
¿Qué es GELU y en qué se diferencia de ReLU en los transformadores?
sobes.tech AI
Respuesta de la IA
GELU (Unidad Lineal de Error Gaussiana) es una función de activación que se usa frecuentemente en transformadores y otras redes neuronales modernas. Se diferencia del ReLU clásico en que es suave y considera la naturaleza probabilística de la activación.
La fórmula de GELU se aproxima así:
[ \text{GELU}(x) = x \cdot \Phi(x) ]
donde ( \Phi(x) ) es la función de distribución de la distribución normal estándar.
Ventajas de GELU sobre ReLU:
- Suavidad: GELU es continua y diferenciable, lo que mejora el entrenamiento.
- Estocasticidad: GELU considera la probabilidad de activación de la neurona, ayudando al modelo a manejar mejor el ruido y la incertidumbre.
- Mejor representación de datos: en tareas de NLP y transformadores, GELU favorece un entrenamiento más eficiente y mejora la calidad del modelo.
Ejemplo de uso en 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))
De esta forma, GELU proporciona una activación más suave e informativa en comparación con ReLU, lo cual es importante para modelos complejos como los transformadores.