RMSProp/es

    From Marovi AI
    This page is a translated version of the page RMSProp and the translation is 100% complete.
    Other languages:
    Article
    Topic area optimization
    Prerequisites Stochastic Gradient Descent, Backpropagation, Gradient Descent


    Visión general

    RMSProp (Root Mean Square Propagation, propagación de la raíz cuadrática media) es un algoritmo de optimización con tasa de aprendizaje adaptativa para entrenar redes neuronales mediante descenso de gradiente estocástico. Propuesto por Geoffrey Hinton en su clase de Coursera de 2012 sobre redes neuronales, RMSProp escala la actualización de cada parámetro por un promedio móvil con decaimiento exponencial de los gradientes al cuadrado observados hasta ese momento. Los parámetros cuyos gradientes han sido sistemáticamente grandes reciben un tamaño de paso efectivo menor, mientras que los parámetros con gradientes pequeños o dispersos reciben actualizaciones mayores. Este reescalado por parámetro ayuda al optimizador a avanzar rápidamente en las direcciones poco pronunciadas de la superficie de pérdida sin divergir en las pronunciadas, y ha sido históricamente el optimizador predeterminado para las redes neuronales recurrentes antes del auge de Adam.[1]

    El método ocupa un terreno intermedio entre el descenso de gradiente estándar y los métodos totalmente adaptativos como Adam. Aborda un modo de fallo bien conocido de AdaGrad, en el que la suma acumulada de gradientes al cuadrado crece de forma monótona y termina reduciendo a cero la tasa de aprendizaje efectiva. Al sustituir la suma acumulada por un promedio móvil exponencial, RMSProp mantiene los tamaños de paso sensibles a la curvatura reciente y sigue siendo utilizable en entrenamientos largos y en objetivos no estacionarios, como los que se encuentran en aprendizaje profundo y aprendizaje por refuerzo.

    Intuición

    La idea central es estimar, para cada parámetro, la magnitud típica de los gradientes recientes y dividir cada actualización por esa estimación. Si el gradiente de un parámetro ha sido sistemáticamente grande en valor absoluto, el promedio móvil de los gradientes al cuadrado también es grande y la actualización se atenúa. Si el gradiente ha sido pequeño, el divisor es pequeño, de modo que la misma tasa de aprendizaje nominal produce un paso efectivo mayor. El resultado es una normalización aproximada del tamaño de paso por parámetro sin necesidad de información de segundo orden, como la matriz hessiana.

    Una imagen mental útil es la de un valle largo y estrecho en la superficie de pérdida. El SGD simple con una única tasa de aprendizaje global o bien rebota de un lado a otro entre las paredes empinadas (si la tasa es demasiado grande) o avanza muy lentamente por el suelo (si es demasiado pequeña). RMSProp reduce el tamaño de paso en la dirección empinada, donde los gradientes al cuadrado son grandes, mientras deja relativamente intactos los pasos en la dirección suave. La trayectoria se vuelve más estable y el avance por el suelo del valle se acelera. A diferencia de AdaGrad, la estimación del gradiente al cuadrado decae con el tiempo, por lo que el optimizador no pierde la capacidad de dar pasos grandes más adelante en el entrenamiento cuando es necesario.

    Formulación

    Sea $ \theta_t \in \mathbb{R}^n $ el vector de parámetros en el paso $ t $, y sea $ g_t = \nabla_\theta L(\theta_t) $ el gradiente de la pérdida $ L $ respecto a los parámetros, evaluado sobre un minilote. RMSProp mantiene un promedio móvil exponencial $ v_t $ de los gradientes al cuadrado elemento a elemento y utiliza su raíz cuadrada para reescalar la actualización:

    $ {\displaystyle v_t = \rho\, v_{t-1} + (1 - \rho)\, g_t \odot g_t} $

    $ {\displaystyle \theta_{t+1} = \theta_t - \frac{\eta}{\sqrt{v_t} + \epsilon}\, g_t} $

    Aquí $ \eta $ es la tasa de aprendizaje global, $ \rho \in [0, 1) $ es la tasa de decaimiento del promedio móvil (a menudo denotada $ \beta $ o $ \gamma $) y $ \epsilon $ es una constante pequeña que evita la división por cero. La operación $ \odot $ denota la multiplicación elemento a elemento, y la raíz cuadrada y la división también son elemento a elemento. El estado $ v_0 $ se inicializa a cero.

    Una alternativa habitual escribe el denominador como $ \sqrt{v_t + \epsilon} $, con $ \epsilon $ dentro de la raíz cuadrada en lugar de sumarse después; esta es la forma utilizada en TensorFlow y proporciona un comportamiento numérico ligeramente distinto al inicio del entrenamiento, pero por lo demás equivalente en espíritu. Los valores predeterminados típicos de los hiperparámetros son $ \eta = 10^{-3} $, $ \rho = 0.9 $ y $ \epsilon = 10^{-8} $, aunque la tasa de aprendizaje suele requerir un ajuste específico para cada problema.

    Entrenamiento e inferencia

    RMSProp se utiliza únicamente en el entrenamiento; en la inferencia, los pesos entrenados se aplican directamente sin que intervenga el estado del optimizador. Durante el entrenamiento, el optimizador mantiene un tensor adicional con la misma forma que los parámetros (el promedio móvil $ v_t $), por lo que la sobrecarga de memoria es aproximadamente igual a la del propio modelo. Esto es más económico que Adam, que almacena tanto el primer como el segundo momento, pero más costoso que el SGD estándar, que no almacena ninguno.

    Cada paso requiere un cuadrado elemento a elemento, una multiplicación-suma elemento a elemento para actualizar $ v_t $, una raíz cuadrada elemento a elemento y una división elemento a elemento. Estas operaciones son trivialmente paralelas en GPU y suponen una sobrecarga insignificante en comparación con las pasadas hacia adelante y hacia atrás por la red. Dado que las estimaciones de los momentos se acumulan a lo largo de los lotes, la unidad significativa de progreso es el paso del optimizador en lugar del segundo de reloj; los planes de tasa de aprendizaje y los periodos de calentamiento se expresan habitualmente en pasos.

    Al reanudar el entrenamiento desde un punto de control, deben restaurarse tanto los parámetros como el estado del optimizador. Restaurar solo los parámetros equivale a reiniciar a cero la estimación del gradiente al cuadrado, lo que provoca que las primeras actualizaciones sean excesivamente grandes y puede desestabilizar el entrenamiento en un arranque en frío. La mayoría de los marcos de aprendizaje profundo guardan y restauran automáticamente el estado del optimizador al hacer puntos de control.

    Variantes

    En la literatura y en la práctica aparecen varias variantes del algoritmo básico. La clase original de Hinton describe RMSProp sin momento, pero una extensión habitual añade momento manteniendo un búfer de velocidad independiente:

    $ {\displaystyle m_t = \mu\, m_{t-1} + \frac{\eta}{\sqrt{v_t} + \epsilon}\, g_t} $

    $ {\displaystyle \theta_{t+1} = \theta_t - m_t} $

    Esta forma de RMSProp con momento es la que TensorFlow expone cuando su hiperparámetro de momento es distinto de cero, y tiende a comportarse mejor en problemas con curvatura mal condicionada. Una extensión adicional propuesta por Graves aplica una anticipación al estilo de Nesterov al paso de momento.[2]

    El algoritmo estrechamente relacionado AdaDelta, introducido por Zeiler en 2012, se desarrolló de forma independiente y llega a una regla de actualización similar, pero además reescala el numerador mediante un promedio móvil de las actualizaciones de parámetros al cuadrado, eliminando la necesidad de especificar una tasa de aprendizaje global.[3] Adam puede verse como RMSProp ampliado con una estimación del primer momento (un gradiente suavizado) y términos de corrección del sesgo; en la práctica, ambos suelen producir resultados comparables en tareas de aprendizaje supervisado, y Adam es la opción predeterminada más común en los canales de entrenamiento modernos.

    Comparación con otros optimizadores

    En comparación con AdaGrad, RMSProp evita la reducción indefinida del tamaño de paso al hacer decaer exponencialmente la información antigua del gradiente al cuadrado; esto lo hace preferible para entrenamientos largos y para problemas no estacionarios. En comparación con el SGD estándar con una tasa de aprendizaje global fija, RMSProp es más tolerante a una elección deficiente de la tasa de aprendizaje y converge más rápido en problemas con escalas de parámetros heterogéneas, como cuando se entrena a través de distintos tipos de capas o modalidades. El coste es un tensor de estado adicional por parámetro y algo más de aritmética por paso.

    En comparación con Adam, RMSProp omite la estimación del primer momento (la velocidad) y el paso de corrección del sesgo. En entornos donde el primer momento proporciona un suavizado significativo de los gradientes ruidosos, como tamaños de lote pequeños o despliegues ruidosos de aprendizaje por refuerzo, Adam tiende a superar a RMSProp. En entornos donde los gradientes ya son relativamente bien comportados, ambos suelen ser intercambiables, y la sencillez y la huella de memoria ligeramente menor de RMSProp pueden ser una ventaja. Empíricamente, RMSProp con momento fue el predeterminado para muchos canales de entrenamiento de redes recurrentes profundas y de gradientes de política a mediados de la década de 2010, y sigue apareciendo como referencia en las bibliotecas de aprendizaje por refuerzo.

    Limitaciones

    RMSProp hereda las limitaciones generales de los optimizadores adaptativos. El reescalado por parámetro puede interferir con la atenuación explícita de pesos; acoplar el regularizador a la actualización reescalada produce una penalización efectiva diferente a la que se obtiene al acoplarlo al gradiente original, lo que motivó las variantes con atenuación de pesos desacoplada que desde entonces se han convertido en el estándar para los métodos de tipo Adam. También se requiere precaución al combinar RMSProp con calentamiento de la tasa de aprendizaje o con cambios bruscos de plan, porque el promedio móvil $ v_t $ tarda varios miles de pasos en estabilizarse y puede interactuar de forma inesperada con saltos abruptos del tamaño de paso.

    El algoritmo no ofrece garantías de convergencia en objetivos no convexos más fuertes que las del SGD, y se ha demostrado que en algunos problemas convexos no converge a un punto estacionario incluso en el límite de muestras infinitas, una deficiencia que comparte con Adam.[4] En la práctica esto rara vez es un problema en redes neuronales sobreparametrizadas, pero implica que no debe confiarse en RMSProp como solucionador de caja negra en entornos donde las garantías de convergencia importan. Por último, como todos los métodos adaptativos elemento a elemento, RMSProp ignora las correlaciones entre parámetros y, por tanto, no puede aprovechar la estructura de curvatura que un verdadero método de segundo orden sí captaría.

    Referencias

    1. Hinton, G. Lecture 6.5 - rmsprop: Divide the gradient by a running average of its recent magnitude. Coursera: Neural Networks for Machine Learning, 2012.
    2. Graves, A. Generating Sequences With Recurrent Neural Networks. arXiv:1308.0850, 2013.
    3. Zeiler, M. D. ADADELTA: An Adaptive Learning Rate Method. arXiv:1212.5701, 2012.
    4. Reddi, S. J., Kale, S., Kumar, S. On the Convergence of Adam and Beyond. ICLR, 2018.