Evitando neuronas muertas con un pequeño flujo negativo
La Leaky ReLU es una variante de ReLU que permite un pequeño valor en la región negativa en lugar de anularla completamente.
👉 Fue diseñada para resolver el problema del Dying ReLU, donde algunas neuronas dejan de aprender.
Definición corta
La Leaky ReLU permite que los valores negativos pasen con una pequeña pendiente.
Definición matemática
👉 donde es un valor pequeño (por ejemplo, 0.01).
Intuición
Leaky ReLU responde:
👉 “No elimino completamente los valores negativos, solo los reduzco”
ReLU → 0 en negativos
Leaky ReLU → pequeño valor negativo
Interpretación geométrica
- región positiva → igual que ReLU
- región negativa → línea con pendiente pequeña
Comparación visual conceptual
ReLU:
/
----/Leaky ReLU:
/
---/
/
Diferencia clave con ReLU
| Propiedad | ReLU | Leaky ReLU |
|---|---|---|
| Negativos | 0 | αx |
| Gradiente negativo | 0 | ≠ 0 |
| Dying ReLU | posible | menos probable |
| Complejidad | mínima | baja |
Problema que resuelve
🔹 Dying ReLU
👉 la neurona deja de actualizarse.
Solución
👉 mantiene el gradiente activo.
Ejemplo conceptual
Entrada negativa
↓
Salida pequeña
↓
Gradiente ≠ 0
↓
Sigue aprendiendo
Impacto en el gradiente
- positivos → gradiente = 1
- negativos → gradiente = α
👉 evita gradiente cero.
Ventajas
- evita neuronas muertas
- mantiene flujo de gradiente
- mejora estabilidad
- simple de implementar
Desventajas
- α fijo (no adaptativo)
- puede introducir sesgo negativo
- menos usada que ReLU en algunos casos
Variantes relacionadas
- PReLU → α aprendible
- RReLU → α aleatorio
- ELU → suaviza negativos
Cuándo usar Leaky ReLU
Usa Leaky ReLU cuando:
- observas neuronas muertas
- redes profundas
- entrenamiento inestable
Evítala cuando:
- necesitas máxima simplicidad
- el modelo ya funciona bien con ReLU
Ejemplo en Python
import numpy as npdef leaky_relu(x, alpha=0.01): return np.where(x > 0, x, alpha * x)x = np.array([-2, -1, 0, 1, 2])print(leaky_relu(x))
Ejemplo en PyTorch
import torchimport torch.nn as nnleaky = nn.LeakyReLU(0.01)x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])print(leaky(x))
Ejemplo en modelo
import torch.nn as nnmodel = nn.Sequential( nn.Linear(10, 20), nn.LeakyReLU(0.01), nn.Linear(20, 1))
Qué muestra este ejemplo
- flujo continuo de gradiente
- activación robusta
- alternativa directa a ReLU
Errores comunes
Usar α demasiado alto
Reduce no linealidad.
Pensar que elimina todos los problemas
No evita saturación completa.
Ignorar otras alternativas
ELU, GELU pueden ser mejores.
Ejemplo conceptual en ML
Entrada
↓
Leaky ReLU
↓
Gradiente continuo
↓
Aprendizaje estable
Interpretación profunda
Leaky ReLU representa una mejora simple pero poderosa:
👉 Pequeños cambios en funciones de activación pueden tener gran impacto en el aprendizaje
Conclusión
La Leaky ReLU es una mejora directa de ReLU que evita neuronas muertas al permitir un pequeño flujo negativo.
👉 Es una solución simple y efectiva para mejorar estabilidad.
Related Concepts
- ReLU
- PReLU
- ELU
- Desvanecimiento del gradiente
- Función de activación