¿En qué se diferencia el descenso de gradiente estocástico del clásico?
sobes.tech AI
Respuesta de la IA
El descenso de gradiente estocástico (SGD) se diferencia del descenso de gradiente clásico (normal) en cómo actualiza los parámetros del modelo:
-
Descenso de gradiente clásico calcula el gradiente de la función de pérdida en todo el conjunto de datos de entrenamiento y luego actualiza los parámetros. Esto proporciona una dirección de descenso precisa, pero puede ser muy lento con grandes conjuntos de datos.
-
Descenso de gradiente estocástico actualiza los parámetros basándose en el gradiente calculado para un ejemplo seleccionado aleatoriamente (o un pequeño mini-lote) del conjunto de entrenamiento. Esto hace que las actualizaciones sean más ruidosas y menos precisas, pero acelera significativamente el entrenamiento y ayuda a salir de mínimos locales.
Ejemplo:
# Descenso de gradiente clásico
for epoch in range(epochs):
grad = compute_gradient(full_dataset)
weights -= learning_rate * grad
# Descenso de gradiente estocástico
for epoch in range(epochs):
for sample in dataset:
grad = compute_gradient(sample)
weights -= learning_rate * grad
Por lo tanto, SGD es más rápido y más adecuado para grandes conjuntos de datos, pero requiere ajuste de parámetros y puede fluctuar alrededor del mínimo.