Explosión del gradiente

Cuando los gradientes crecen sin control durante el entrenamiento

La explosión del gradiente ocurre cuando los gradientes se vuelven extremadamente grandes, causando actualizaciones inestables y dificultando (o imposibilitando) el entrenamiento de un modelo.

👉 Es un problema común en redes profundas y redes recurrentes.

Definición corta

La explosión del gradiente ocurre cuando los gradientes crecen excesivamente durante el entrenamiento.

Definición detallada

Durante el entrenamiento, los parámetros se actualizan mediante:θt+1=θtηL(θt)\theta_{t+1} = \theta_t – \eta \nabla L(\theta_t)

Si:L1\|\nabla L\| \gg 1

👉 las actualizaciones se vuelven enormes → inestabilidad.

Intuición

La explosión del gradiente responde:

👉 “Estoy dando pasos demasiado grandes en la optimización”

Gradiente pequeño → aprendizaje estable  
Gradiente grande → salto enorme → inestabilidad

Interpretación geométrica

  • superficie con pendientes muy pronunciadas
  • cambios abruptos en la función

👉 provoca saltos fuera del mínimo.

Ejemplo conceptual

Valle  

Gradiente enorme

Salto fuera del valle

Relación con otros conceptos

  • Gradiente
  • Descenso de gradiente
  • Backpropagation
  • Estabilidad numérica

¿Por qué ocurre?

🔹 1. Multiplicación repetida de gradientes

En redes profundas:iWi\prod_i W_i

👉 puede crecer exponencialmente.

🔹 2. Pesos grandes

Amplifican gradientes.

🔹 3. Activaciones no controladas

Ej: funciones sin normalización.

🔹 4. Secuencias largas (RNNs)

Backpropagation through time

Ejemplo matemático

gradiente(W)n\text{gradiente} \propto (W)^n

👉 si W>1W > 1W>1, crece rápidamente.

Impacto en machine learning

🔹 1. Inestabilidad

Loss oscila o diverge.

🔹 2. NaNs

Valores numéricos inválidos.


🔹 3. Entrenamiento fallido

No converge.

🔹 4. Sensibilidad extrema

Pequeños cambios → grandes efectos.

Ejemplo conceptual

Gradientes pequeños → aprendizaje estable  
Gradientes enormes → caos

🧠 Cómo detectarlo

  • pérdida diverge
  • valores NaN
  • gradientes muy grandes

Soluciones

🔹 1. Gradient clipping

g=ggthresholdg = \frac{g}{\|g\|} \cdot \text{threshold}

👉 limita el tamaño del gradiente.

🔹 2. Inicialización adecuada

  • Xavier
  • He

🔹 3. Normalización

  • BatchNorm
  • LayerNorm

🔹 4. Learning rate menor

Reduce magnitud de pasos.

🔹 5. Arquitecturas modernas

  • LSTM / GRU
  • Transformers

Ejemplo en Python (conceptual)

Python
import numpy as np
g = np.array([1000.0, 2000.0])
norm = np.linalg.norm(g)
threshold = 1.0
g_clipped = g / norm * threshold
print(g_clipped)

Ejemplo en PyTorch (gradient clipping)

Python
import torch
import torch.nn as nn
model = nn.Linear(10, 1)
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
x = torch.randn(5, 10)
y = torch.randn(5, 1)
loss_fn = nn.MSELoss()
for _ in range(5):
optimizer.zero_grad()
output = model(x)
loss = loss_fn(output, y)
loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
optimizer.step()

Qué muestra este ejemplo

  • Control de gradientes
  • Estabilidad del entrenamiento
  • Prevención de explosión

Errores comunes

Ignorar clipping

Puede romper el entrenamiento.

Learning rate alto

Amplifica el problema.

Mala inicialización

Genera gradientes grandes.

Ejemplo conceptual en ML

Forward pass  

Backward pass

Gradiente enorme

Actualización inestable

🧠 Interpretación profunda

La explosión del gradiente revela:

  • problemas de estabilidad
  • limitaciones de arquitecturas profundas
  • importancia del control numérico

👉 Es un desafío clave en deep learning.

Conclusión

La explosión del gradiente ocurre cuando los gradientes crecen excesivamente, causando inestabilidad en el entrenamiento. Es un problema crítico que requiere técnicas como clipping y normalización.

👉 Controlar los gradientes es esencial para entrenar modelos profundos.

Related Concepts

  • Gradiente
  • Desvanecimiento del gradiente
  • Backpropagation
  • Estabilidad numérica
  • Optimización