Ritmo de aprendizaje e impulso

Introducción al aprendizaje profundo con PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Actualizar pesos con SGD

  • Entrenar una red neuronal = resolver un problema de optimización.

Optimizador de descenso de gradiente estocástico (SGD)

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Dos argumentos:
    • tasa de aprendizaje: controla el tamaño del paso
    • impulso: añade inercia para evitar quedarse atascado
Introducción al aprendizaje profundo con PyTorch

Impacto de la tasa de aprendizaje: ritmo de aprendizaje óptimo

un ejemplo de tasa de aprendizaje óptima

  • El tamaño del paso disminuye casi a cero a medida que el gradiente se hace más pequeño
Introducción al aprendizaje profundo con PyTorch

Impacto de la tasa de aprendizaje: ritmo de aprendizaje insuficiente

un ejemplo de baja tasa de aprendizaje

Introducción al aprendizaje profundo con PyTorch

Impacto de la tasa de aprendizaje: elevado ritmo de aprendizaje

un valor real de la tasa de aprendizaje

Introducción al aprendizaje profundo con PyTorch

Funciones convexas y no convexas

Se trata de una función convexa.

un ejemplo de función convexa

Se trata de una función no convexa.

un ejemplo de función no convexa

  • Las funciones de pérdida no son convexas
Introducción al aprendizaje profundo con PyTorch

Sin impulso

  • lr = 0.01 momentum = 0después de 100 pasos se ha encontrado el mínimo para x = -1.23 y y = -0.14

un ejemplo de optimizador atascado en un mínimo local

Introducción al aprendizaje profundo con PyTorch

Con impulso

  • lr = 0.01 momentum = 0.9después de 100 pasos se ha encontrado el mínimo para x = 0.92 y y = -2.04

un ejemplo de optimización con impulso

Introducción al aprendizaje profundo con PyTorch

Resumen

$$

Tasa de aprendizaje Impulso
Controla el tamaño del paso Controla la inercia
Demasiado alto → bajo rendimiento Ayuda a escapar del mínimo local
Demasiado bajo → entrenamiento lento Demasiado pequeño → el optimizador se atasca
Rango típico: 0.01 ($10^{-2}$) and 0.0001 ($10^{-4}$) Rango típico: 0,85 a 0,99
Introducción al aprendizaje profundo con PyTorch

¡Vamos a practicar!

Introducción al aprendizaje profundo con PyTorch

Preparing Video For Download...