Cyclic Learning Rates/es
| Article | |
|---|---|
| Topic area | Optimization |
| Prerequisites | Stochastic Gradient Descent, Learning Rate Schedule |
Resumen
Las tasas de aprendizaje cíclicas (CLR) son una familia de programaciones de tasa de aprendizaje que varían la tasa de aprendizaje periódicamente entre un límite inferior y uno superior, en lugar de disminuirla monótonamente. La técnica fue introducida por Leslie N. Smith en 2015 como alternativa práctica a las reducciones por pasos ajustadas manualmente y a los optimizadores adaptativos más elaborados, basándose en la observación empírica de que permitir que la tasa de aprendizaje oscile suele alcanzar una exactitud objetivo en menos iteraciones que una programación fija o decreciente cuidadosamente ajustada.[1] El mismo artículo introdujo la prueba de rango de tasa de aprendizaje, un barrido breve que localiza automáticamente los límites del ciclo.
Las programaciones cíclicas se han convertido desde entonces en una opción por defecto en bibliotecas como PyTorch (`torch.optim.lr_scheduler.CyclicLR`) y en la pila de entrenamiento de fast.ai, y constituyen el fundamento de la popular política one-cycle utilizada para entrenar redes profundas hasta alta exactitud en decenas, en lugar de cientos, de épocas.
Antecedentes y motivación
La mayoría de las recetas de entrenamiento anteriores a 2015 utilizaban una tasa de aprendizaje constante por tramos con una o dos reducciones manuales, en ocasiones complementada con un decaimiento de la tasa de aprendizaje vinculado a la pérdida de validación. Dos problemas prácticos motivan las programaciones cíclicas. Primero, elegir la tasa de aprendizaje inicial y el momento de las reducciones requiere costosos barridos de prueba y error. Segundo, incluso una programación monótona bien ajustada puede dejar al optimizador atrapado cerca de puntos silla o en mínimos agudos estrechos de los que un paso pequeño no puede escapar.
La hipótesis de Smith es que aumentar periódicamente la tasa de aprendizaje tiene un efecto regularizador útil: los pasos grandes alejan al iterado de los mínimos agudos y a través de las crestas silla, mientras que las fases posteriores de tasa baja le permiten asentarse en cuencas más planas cercanas. También se reduce el cómputo total invertido en tasas de aprendizaje muy pequeñas, lo que contribuye a la aceleración observada en tiempo real.
La programación triangular
La política CLR básica, llamada triangular, interpola linealmente la tasa de aprendizaje entre un valor base $ \eta_{\min} $ y un máximo $ \eta_{\max} $ a lo largo de un semiperíodo de longitud $ s $ (el tamaño de paso), y luego regresa linealmente a $ \eta_{\min} $ durante el siguiente semiperíodo. Defina el índice del ciclo
$ {\displaystyle c = \left\lfloor 1 + \frac{t}{2s} \right\rfloor,} $
y la posición dentro del ciclo
$ {\displaystyle x = \left| \frac{t}{s} - 2c + 1 \right|.} $
La tasa de aprendizaje en la iteración $ t $ es entonces
$ {\displaystyle \eta_t = \eta_{\min} + (\eta_{\max} - \eta_{\min})\,\max(0, 1 - x).} $
Un tamaño de paso típico se encuentra entre dos y diez épocas medidas en iteraciones. Smith reporta buenos resultados con ciclos lo suficientemente cortos para que varios ciclos completos quepan dentro del presupuesto de entrenamiento.
Prueba de rango de tasa de aprendizaje
Para elegir $ \eta_{\min} $ y $ \eta_{\max} $, Smith propone la prueba de rango (también conocida como el buscador de LR). Se entrena durante unos cientos de iteraciones mientras se incrementa exponencialmente la tasa de aprendizaje desde un valor minúsculo (p. ej. $ 10^{-7} $) hasta uno grande (p. ej. $ 10 $), registrando la pérdida de entrenamiento en cada paso. La curva resultante de pérdida frente a tasa muestra típicamente tres regímenes: una región plana donde la tasa es demasiado pequeña para hacer progreso, una región de descenso pronunciado de aprendizaje efectivo, y una región divergente donde la pérdida explota.
Una heurística práctica consiste en establecer $ \eta_{\max} $ en el valor en el que la pérdida comienza a aumentar, o justo por debajo, y $ \eta_{\min} $ aproximadamente un orden de magnitud menor, cerca del inicio de la región descendente. La prueba de rango es económica (típicamente menos de una época completa) y reemplaza varias ejecuciones de entrenamiento completas que serían necesarias para una búsqueda en cuadrícula tradicional.
Variantes
El artículo original de Smith define tres políticas que comparten la forma triangular base pero modulan la amplitud a lo largo del tiempo.
- triangular: triángulo puro, amplitud constante a lo largo de todos los ciclos.
- triangular2: la diferencia $ \eta_{\max} - \eta_{\min} $ se reduce a la mitad al final de cada ciclo, contrayendo gradualmente la oscilación mientras se preserva su forma. Esto combina el beneficio de exploración del ciclado con el comportamiento de convergencia de una programación decreciente.
- exp_range: la amplitud decae exponencialmente, $ (\eta_{\max} - \eta_{\min})\gamma^t $, para algún $ \gamma \in (0,1) $.
Una variante cosenoidal estrechamente relacionada reemplaza el triángulo con una onda semicosenoidal; esta transición más suave es la base de SGDR (descenso de gradiente estocástico con reinicios cálidos), introducido por Loshchilov y Hutter.[2]
La política one-cycle
En un trabajo de seguimiento de 2018, Smith propuso la política one-cycle, en la que la tasa de aprendizaje ejecuta un único triángulo a lo largo de toda la ejecución de entrenamiento, opcionalmente seguido de una breve fase de aniquilación que la reduce muy por debajo de $ \eta_{\min} $ durante el último pequeño porcentaje de iteraciones.[3] La política se combina a menudo con una programación reflejada de momento cíclico que disminuye el coeficiente de momento mientras la tasa de aprendizaje aumenta, y luego invierte, sobre la heurística de que las tasas de aprendizaje altas se toleran mejor cuando el momento se reduce.
El entrenamiento one-cycle se popularizó como una receta para la superconvergencia, en la que los modelos CIFAR-10 e ImageNet se entrenan hasta una exactitud competitiva en aproximadamente un orden de magnitud menos de iteraciones que con las programaciones convencionales. La implementación de PyTorch es `torch.optim.lr_scheduler.OneCycleLR`.
Comparación con otras programaciones
Las programaciones cíclicas ocupan una posición intermedia entre el decaimiento totalmente monótono y la familia de reinicios cálidos. En comparación con el decaimiento por pasos o el recocido cosenoidal, las programaciones cíclicas pasan significativamente más tiempo a tasas de aprendizaje altas, lo que actúa como un regularizador implícito y puede ser especialmente útil cuando los datos de entrenamiento son limitados o ruidosos. En comparación con el recocido cosenoidal con reinicios cálidos (SGDR), la forma triangular es más simple y posiblemente más fácil de razonar, mientras que SGDR tiende a producir curvas de pérdida más suaves y se presta naturalmente al ensamblado por instantáneas.[4]
Los optimizadores adaptativos como Adam interactúan de forma no trivial con las programaciones cíclicas: el escalado adaptativo por parámetro ya atenúa los pasos efectivos grandes para las direcciones de alta curvatura, por lo que el beneficio empírico del ciclado generalmente es menor que con SGD simple con momento. La receta one-cycle se empareja con mayor frecuencia con SGD más momento.
Consideraciones prácticas y limitaciones
Las programaciones cíclicas introducen dos nuevos hiperparámetros ($ \eta_{\min} $, $ \eta_{\max} $) y un tamaño de paso, pero la prueba de rango automatiza en gran medida los dos primeros y existen buenos valores por defecto para el tercero. El principal coste es que las instantáneas intermedias no son directamente comparables entre ciclos: la exactitud de validación oscila con la tasa de aprendizaje, por lo que la selección del modelo debe realizarse al final de un ciclo en lugar de en iteraciones arbitrarias.
Varias salvedades están documentadas en la literatura y en la experiencia de los profesionales.
- La interacción con las estadísticas de normalización por lotes puede ser no trivial; las tasas de aprendizaje muy altas desestabilizan brevemente las estadísticas en ejecución, lo que a veces requiere extender la porción de calentamiento del primer ciclo.
- El valor óptimo de $ \eta_{\max} $ depende del tamaño de lote y del ancho del modelo; duplicar el tamaño de lote permite típicamente una tasa pico proporcionalmente mayor.
- Para modelos transformer muy profundos, la política one-cycle se utiliza con menos frecuencia que el calentamiento lineal seguido de decaimiento cosenoidal, en parte porque las arquitecturas con normalización de capa y pre-norm toleran tasas constantes más altas.
Las tasas de aprendizaje cíclicas siguen siendo una opción por defecto sólida para modelos convolucionales y recurrentes de escala media y una herramienta de diagnóstico útil incluso en flujos de trabajo que finalmente adoptan otra programación, porque la prueba de rango proporciona una manera rápida y fundamentada de acotar cualquier barrido de tasa de aprendizaje.
Referencias
- ↑ Smith, L. N. Cyclical Learning Rates for Training Neural Networks. WACV, 2017. arXiv:1506.01186.
- ↑ Loshchilov, I. and Hutter, F. SGDR: Stochastic Gradient Descent with Warm Restarts. ICLR, 2017. arXiv:1608.03983.
- ↑ Smith, L. N. A Disciplined Approach to Neural Network Hyper-parameters: Part 1. Technical Report, US Naval Research Laboratory, 2018. arXiv:1803.09820.
- ↑ Huang, G. et al. Snapshot Ensembles: Train 1, get M for free. ICLR, 2017. arXiv:1704.00109.