Optimización Avanzada en Redes Neuronales
Los optimizadores avanzados permiten entrenar redes neuronales de forma más rápida, estable y eficiente. En esta guía aprenderás los optimizadores más usados en la industria y cómo funcionan.
Tabla de contenidos
- Qué es un optimizador
- SGD con Momentum
- Adam
- RMSProp
- Nadam
- Learning Rate Schedulers
- Warmup
- Ejemplo con Keras
- Ejercicios
1. Qué es un optimizador
Un optimizador controla cómo se actualizan los pesos durante el entrenamiento. Afecta directamente la velocidad, estabilidad y precisión del modelo.
2. SGD con Momentum
El optimizador más básico es SGD, pero con Momentum se vuelve mucho más eficiente.
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9)
- Evita oscilaciones
- Acelera el descenso
- Más estable que SGD puro
3. Adam
Adam combina Momentum + RMSProp y es el optimizador más usado en IA moderna.
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
- Rápido
- Estable
- Funciona bien en casi todos los modelos
4. RMSProp
RMSProp ajusta el learning rate dinámicamente según el gradiente reciente.
optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.001)
5. Nadam
Nadam es Adam + Nesterov Momentum, más rápido en algunos casos.
optimizer = tf.keras.optimizers.Nadam(learning_rate=0.001)
6. Learning Rate Schedulers
Los schedulers ajustan el learning rate durante el entrenamiento.
- Step decay
- Exponential decay
- Cosine decay
- ReduceLROnPlateau
callback = tf.keras.callbacks.ReduceLROnPlateau(
monitor='loss',
factor=0.5,
patience=3
)
7. Warmup
Warmup aumenta el learning rate gradualmente al inicio del entrenamiento. Es esencial en Transformers.
8. Ejemplo con Keras
model.compile(
optimizer=tf.keras.optimizers.Adam(0.001),
loss='categorical_crossentropy'
)
model.fit(X_train, y_train, epochs=20, callbacks=[callback])
9. Ejercicios
- Define qué es un optimizador.
- Explica qué es Momentum.
- ¿Por qué Adam es tan usado?
- Menciona un scheduler de learning rate.
- ¿Qué es Warmup?
# pista momentum
"Acumula gradientes para acelerar el descenso."
# pista warmup
"Learning rate pequeño → grande progresivamente."