• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

5 – Ajuste programado de la tasa de aprendizaje

Lección 5 del curso PyTorch Nivel Avanzado.

En la lección anterior vimos cómo implementar la regularización con «Dropout» en PyTorch, una estrategia muy usada al momento de entrenar un modelo de Deep Learning y que permite reducir el overfitting del modelo tras el proceso de entrenamiento.

En esta última lección del curso veremos qué es y cómo realizar el ajuste programado de la tasa de aprendizaje en PyTorch, otra estrategia muy usada al momento de entrenar un modelo y que en última instancia permite mejorar su desempeño.

En esencia, lo que busca este ajuste programado de la tasa de aprendizaje es usar diferentes valores de la tasa de aprendizaje durante el entrenamiento. Así que, en lugar de usar un valor fijo en cada iteración lo que hacemos es incrementar o disminuir progresivamente, y de forma automática, dicha tasa de aprendizaje dependiendo de ciertos criterios pre-establecidos.

Así que veamos en detalle en qué consiste este ajuste programado de la tasa de aprendizaje y cómo implementarlo al momento de entrenar un modelo de PyTorch:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, la estrategia de ajuste programado de la tasa de aprendizaje resulta útil en este tipo de situaciones:

  • Cuando no hay convergencia de la función de pérdida (es decir, cuando ésta no se reduce lo suficientemente rápido durante el entrenamiento)
  • Cuando tenemos el fenómeno de «overshoot» que hace que tras cierto número de iteraciones se incremente el valor de la pérdida (en lugar de reducirse)
  • O cuando se alcanzan «mesetas» (o plateaus) en la pérdida, es decir cuando a pesar de tener un número elevado de iteraciones de entrenamiento dicha pérdida se estanca

En estos casos podemos usar diferentes alternativas de ajuste programado, entre las cuales las más usadas son el incremento o reducción lineal o exponencial de la tasa de aprendizaje, así como la reducción de dicha tasa si se alcanza una meseta.

Y la implementación de estos tres métodos en PyTorch es realmente muy sencilla. Para el caso de los dos primeros métodos (reducción lineal o exponencial) simplemente debemos crear un «scheduler» (una instancia del método de reducción/incremento) y agregarlo a la función de entrenamiento después de cada iteración de entrenamiento. Por otra parte, para el caso de la «reducción on plateau» debemos agregar el «scheduler» al bloque de validación (para monitorizar la pérdida asociada) y ejecutar dicha reducción después de cada iteración de validación.

Y con esto ya tenemos otra de las herramientas que resultan muy útiles al momento de controlar y mejorar el proceso de entrenamiento de un modelo de Deep Learning en PyTorch.

Así que con esto hemos culminado este curso avanzado de PyTorch, en donde hemos comenzado viendo cómo realizar la transferencia de aprendizaje para un modelo de visión por computador y luego vimos cómo usar diferentes técnicas para almacenar progresivamente el proceso de entrenamiento (usando los «checkpoints») y cómo implementar estrategias de regularización de un modelo como la parada temprana y el «dropout».

Así que con todo esto y con todo lo visto en los cursos PyTorch Nivel Básico y Pytorch Nivel Intermedio ya tenemos la mayoría de las herramientas a las que usualmente tendremos que acudir cuando construyamos cualquier tipo de modelo de Deep Learning.

Recuerda que si te gustó este curso o si quieres compartirme tu opinión o sugerencias para nuevos cursos acá en la Academia, me puedes contactar directamente a través de la Intranet. Además, te invito a seguir tu proceso de formación tomando los diferentes cursos disponibles en la Academia y organizados por rutas de aprendizaje.

¡Te envío un saludo y nos vemos en el próximo curso!

Todas las lecciones del curso PyTorch Nivel Avanzado

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }