stringtranslate.com

Búsqueda de línea de retroceso

En la optimización matemática (sin restricciones) , una búsqueda de línea de retroceso es un método de búsqueda de línea para determinar la cantidad de movimiento a lo largo de una dirección de búsqueda dada . Su uso requiere que la función objetivo sea diferenciable y que se conozca su gradiente .

El método implica comenzar con una estimación relativamente grande del tamaño del paso para el movimiento a lo largo de la dirección de búsqueda de la línea y reducir iterativamente el tamaño del paso (es decir, "retroceder") hasta que se observe una disminución de la función objetivo que corresponda adecuadamente a la cantidad de disminución que se espera, en función del tamaño del paso y el gradiente local de la función objetivo. Un criterio de detención común es la condición de Armijo-Goldstein.

La búsqueda de línea de retroceso se utiliza normalmente para el descenso de gradiente (GD), pero también se puede utilizar en otros contextos. Por ejemplo, se puede utilizar con el método de Newton si la matriz de Hesse es definida positiva .

Motivación

Dada una posición inicial y una dirección de búsqueda , la tarea de una búsqueda lineal es determinar un tamaño de paso que reduzca adecuadamente la función objetivo (supuesta, es decir, continuamente diferenciable ), es decir, encontrar un valor de que se reduzca en relación con . Sin embargo, normalmente no es deseable dedicar recursos sustanciales a encontrar un valor de para minimizar con precisión . Esto se debe a que los recursos informáticos necesarios para encontrar un mínimo más preciso a lo largo de una dirección particular podrían emplearse en cambio para identificar una mejor dirección de búsqueda. Una vez que la búsqueda lineal ha identificado un punto de partida mejorado, normalmente se realizará otra búsqueda lineal posterior en una nueva dirección. El objetivo, entonces, es simplemente identificar un valor de que proporcione una cantidad razonable de mejora en la función objetivo, en lugar de encontrar el valor minimizador real de .

La búsqueda de línea de retroceso comienza con una estimación grande y la reduce iterativamente. La reducción continúa hasta que se encuentra un valor que es lo suficientemente pequeño como para proporcionar una disminución en la función objetivo que coincida adecuadamente con la disminución que se espera lograr, según el gradiente de la función local.

Defina la pendiente local de la función de a lo largo de la dirección de búsqueda como (donde denota el producto escalar ). Se supone que es un vector para el cual es posible cierta disminución local, es decir, se supone que .

Basándose en un parámetro de control seleccionado , la condición de Armijo-Goldstein prueba si un movimiento escalonado desde una posición actual a una posición modificada logra una disminución correspondiente adecuada en la función objetivo. La condición se cumple, véase Armijo (1966), si

Esta condición, cuando se utiliza adecuadamente como parte de una búsqueda de línea, puede garantizar que el tamaño del paso no sea excesivamente grande. Sin embargo, esta condición no es suficiente por sí sola para garantizar que el tamaño del paso sea casi óptimo, ya que cualquier valor que sea lo suficientemente pequeño satisfará la condición.

Así, la estrategia de búsqueda de línea de retroceso comienza con un tamaño de paso relativamente grande y lo reduce repetidamente por un factor hasta que se cumple la condición de Armijo-Goldstein.

La búsqueda finalizará después de un número finito de pasos para cualquier valor positivo de y que sea menor que 1. Por ejemplo, Armijo usó 12 para y en Armijo (1966).

Algoritmo

Esta condición es de Armijo (1966). Partiendo de un valor de tamaño de paso candidato máximo , utilizando parámetros de control de búsqueda y , el algoritmo de búsqueda de línea de retroceso se puede expresar de la siguiente manera:

  1. Conjunto y contador de iteraciones .
  2. Hasta que se cumpla la condición de que se incremente y establezca repetidamente
  3. Regresar como solución.

En otras palabras, reducir por un factor de en cada iteración hasta que se cumpla la condición de Armijo-Goldstein.

Minimización de funciones mediante búsqueda de línea con retroceso en la práctica

En la práctica, el algoritmo anterior se suele iterar para producir una secuencia , , para converger a un mínimo, siempre que dicho mínimo exista y se seleccione de forma adecuada en cada paso. Para el descenso de gradiente, se selecciona como .

El valor de para el que cumple la condición de Armijo–Goldstein depende de y , y por lo tanto se denota a continuación por . También depende de , , y por supuesto, aunque estas dependencias pueden dejarse implícitas si se supone que son fijas con respecto al problema de optimización.

Los pasos detallados son los siguientes, véase Armijo (1966), Bertsekas (2016):

  1. Elija un punto de partida inicial y configure el contador de iteraciones .
  2. Hasta que se cumpla alguna condición de detención, elija una dirección de descenso , actualice la posición a e incremente .
  3. Regresa como la posición minimizada y como el mínimo de la función.

Para asegurar un buen comportamiento, es necesario que se cumplan algunas condiciones por . En términos generales, no debería estar demasiado lejos de . Una versión precisa es la siguiente (véase, por ejemplo, Bertsekas (2016)). Hay constantes para que se cumplan las dos condiciones siguientes:

  1. Para todo n, . Aquí, es la norma euclidiana de . (Esto asegura que si , entonces también . De manera más general, si , entonces también .) Una versión más estricta requiere también la desigualdad inversa: para una constante positiva .
  2. Para todo n, . (Esta condición asegura que las direcciones de y sean similares).

Límite inferior para las tasas de aprendizaje

Esto aborda la cuestión de si existe una forma sistemática de encontrar un número positivo -dependiente de la función f, el punto y la dirección de descenso- de modo que todas las tasas de aprendizaje satisfagan la condición de Armijo. Cuando , podemos elegir en el orden de , donde es una constante de Lipschitz local para el gradiente cerca del punto (véase Continuidad de Lipschitz ). Si la función es , entonces es cercana al hessiano de la función en el punto . Véase Armijo (1966) para más detalles.

Límite superior para las tasas de aprendizaje

En la misma situación en la que , una pregunta interesante es qué tan grandes pueden elegirse las tasas de aprendizaje en la condición de Armijo (es decir, cuando no se tiene límite en como se define en la sección "Minimización de funciones usando búsqueda de línea de retroceso en la práctica"), ya que las tasas de aprendizaje más grandes cuando está más cerca del punto límite (si existe) pueden hacer que la convergencia sea más rápida. Por ejemplo, en las condiciones de Wolfe , no se menciona pero se introduce otra condición llamada condición de curvatura.

Se muestra que existe un límite superior para las tasas de aprendizaje si se desea que la secuencia construida converja a un punto crítico no degenerado , consulte Truong y Nguyen (2020): Las tasas de aprendizaje deben estar acotadas desde arriba aproximadamente por . Aquí H es el hessiano de la función en el punto límite, es su inversa y es la norma de un operador lineal . Por lo tanto, este resultado se aplica, por ejemplo, cuando se utiliza la búsqueda de línea de retroceso para funciones Morse . Tenga en cuenta que en la dimensión 1, es un número y, por lo tanto, este límite superior es del mismo tamaño que el límite inferior en la sección "Límite inferior para las tasas de aprendizaje".

Por otro lado, si el punto límite está degenerado, entonces las tasas de aprendizaje pueden ser ilimitadas. Por ejemplo, una modificación de la búsqueda de línea de retroceso conocida como descenso de gradiente de retroceso ilimitado (ver Truong & Nguyen (2020)) permite que la tasa de aprendizaje sea la mitad del tamaño de , donde es una constante. Los experimentos con funciones simples como muestran que el descenso de gradiente de retroceso ilimitado converge mucho más rápido que la versión básica descrita en la sección "Minimización de funciones usando la búsqueda de línea de retroceso en la práctica".

Eficiencia de tiempo

Un argumento en contra del uso de la búsqueda de línea de retroceso, en particular en la optimización a gran escala, es que satisfacer la condición de Armijo es costoso. Hay una forma (llamada retroceso bidireccional) de evitarlo, con buenas garantías teóricas y que se ha probado con buenos resultados en redes neuronales profundas , véase Truong y Nguyen (2020). (Allí, también se pueden encontrar implementaciones buenas/estables de la condición de Armijo y su combinación con algunos algoritmos populares como Momentum y NAG, en conjuntos de datos como Cifar10 y Cifar100). Se observa que si la secuencia converge (como se desea cuando se hace uso de un método de optimización iterativo), entonces la secuencia de tasas de aprendizaje debería variar poco cuando n es lo suficientemente grande. Por lo tanto, en la búsqueda de , si siempre se empieza desde , se perdería mucho tiempo si resulta que la secuencia se mantiene lejos de . En cambio, se debería buscar empezando desde . La segunda observación es que podría ser mayor que , y por lo tanto se debería permitir aumentar la tasa de aprendizaje (y no solo disminuirla como en la sección Algoritmo). Aquí está el algoritmo detallado para el retroceso bidireccional: En el paso n

  1. Conjunto . Conjunto y contador de iteraciones .
  2. (Aumenta la tasa de aprendizaje si se cumple la condición de Armijo). Si , entonces mientras esta condición y la condición que se cumplen se establecen repetidamente y se incrementa j.
  3. (De lo contrario, reduzca la tasa de aprendizaje si no se cumple la condición de Armijo). Si, por el contrario , , entonces hasta que se cumpla la condición, incremente y establezca repetidamente
  4. Retorno de la tasa de aprendizaje .

(En Nocedal & Wright (2000) se puede encontrar una descripción de un algoritmo con 1), 3) y 4) arriba, que no fue probado en redes neuronales profundas antes del artículo citado.)

Se puede ahorrar tiempo aún más con una mezcla híbrida entre el backtracking bidireccional y el algoritmo básico de descenso de gradiente estándar. Este procedimiento también tiene una buena garantía teórica y un buen rendimiento de prueba. En términos generales, ejecutamos el backtracking bidireccional unas cuantas veces, luego usamos la tasa de aprendizaje que obtenemos de entonces sin cambios, excepto si el valor de la función aumenta. Aquí es exactamente cómo se hace. Se elige de antemano un número y un número .

  1. Establezca el contador de iteración j=0.
  2. En los pasos , utilice el retroceso bidireccional.
  3. En cada paso k del conjunto : Establezca . Si , entonces elija y . (Por lo tanto, en este caso, utilice la tasa de aprendizaje sin cambios). De lo contrario, si , utilice el retroceso bidireccional. Aumente k en 1 y repita.
  4. Aumenta j en 1.

Garantía teórica (para descenso de gradiente)

En comparación con las condiciones de Wolfe, que son más complicadas, la condición de Armijo tiene una mayor garantía teórica. De hecho, hasta ahora, la búsqueda de línea de retroceso y sus modificaciones son los métodos con mayor garantía teórica entre todos los algoritmos de optimización numérica en lo que respecta a la convergencia a puntos críticos y la evitación de puntos de silla , véase más adelante.

Los puntos críticos son puntos donde el gradiente de la función objetivo es 0. Los mínimos locales son puntos críticos, pero hay puntos críticos que no son mínimos locales. Un ejemplo son los puntos de silla. Los puntos de silla son puntos críticos, en los que hay al menos una dirección donde la función es máxima (local). Por lo tanto, estos puntos están lejos de ser mínimos locales. Por ejemplo, si una función tiene al menos un punto de silla, entonces no puede ser convexa . La relevancia de los puntos de silla para los algoritmos de optimización es que en la optimización a gran escala (es decir, de alta dimensión), es probable que se vean más puntos de silla que mínimos, consulte Bray y Dean (2007). Por lo tanto, un buen algoritmo de optimización debería poder evitar los puntos de silla. En el entorno del aprendizaje profundo , los puntos de silla también prevalecen, consulte Dauphin et al. (2014). Por lo tanto, para aplicar en el aprendizaje profundo, se necesitan resultados para funciones no convexas.

Para la convergencia a puntos críticos: por ejemplo, si la función de costo es una función analítica real , entonces se muestra en Absil, Mahony y Andrews (2005) que la convergencia está garantizada. La idea principal es utilizar la desigualdad de Łojasiewicz que disfruta una función analítica real. Para funciones no suaves que satisfacen la desigualdad de Łojasiewicz , se extiende la garantía de convergencia anterior, consulte Attouch, Bolte y Svaiter (2011). En Bertsekas (2016), hay una prueba de que para cada secuencia construida mediante búsqueda de línea de retroceso, un punto de clúster (es decir, el límite de una subsecuencia , si la subsecuencia converge) es un punto crítico. Para el caso de una función con como máximo un número contable de puntos críticos (como una función de Morse ) y subniveles compactos , así como con gradiente continuo de Lipschitz donde se usa GD estándar con tasa de aprendizaje <1/L (ver la sección "Descenso de gradiente estocástico"), entonces la convergencia está garantizada, ver por ejemplo el Capítulo 12 en Lange (2013). Aquí la suposición sobre subniveles compactos es asegurarse de que uno trata solo con conjuntos compactos del espacio euclidiano. En el caso general, donde solo se supone que es y tiene como máximo un número contable de puntos críticos, la convergencia está garantizada, ver Truong & Nguyen (2020). En la misma referencia, de manera similar, la convergencia está garantizada para otras modificaciones de la búsqueda de línea de retroceso (como el descenso de gradiente de retroceso ilimitado mencionado en la sección "Límite superior para tasas de aprendizaje"), e incluso si la función tiene un número incontable de puntos críticos aún se pueden deducir algunos hechos no triviales sobre el comportamiento de convergencia. En el contexto estocástico, bajo el mismo supuesto de que el gradiente es continuo en el sentido de Lipschitz y se utiliza una versión más restrictiva (que requiere además que la suma de las tasas de aprendizaje sea infinita y la suma de los cuadrados de las tasas de aprendizaje sea finita) del esquema de tasa de aprendizaje decreciente (ver la sección "Descenso del gradiente estocástico") y además la función es estrictamente convexa, entonces la convergencia se establece en el conocido resultado de Robbins y Monro (1951), ver Bertsekas y Tsitsiklis (2006) para generalizaciones a versiones menos restrictivas de un esquema de tasa de aprendizaje decreciente. Ninguno de estos resultados (para funciones no convexas) ha sido probado para ningún otro algoritmo de optimización hasta el momento. [ cita requerida ]

Para evitar los puntos de silla: por ejemplo, si el gradiente de la función de costo es Lipschitz continuo y se elige GD estándar con tasa de aprendizaje <1/L, entonces con una elección aleatoria del punto inicial (más precisamente, fuera de un conjunto de medida de Lebesgue cero), la secuencia construida no convergerá a un punto de silla no degenerado (probado en Lee et al. (2016)), y de manera más general también es cierto que la secuencia construida no convergerá a un punto de silla degenerado (probado en Panageas & Piliouras (2017)). Bajo el mismo supuesto de que el gradiente es Lipschitz continuo y se usa un esquema de tasa de aprendizaje decreciente (ver la sección "Descenso de gradiente estocástico"), entonces se establece la evitación de los puntos de silla en Panageas, Piliouras & Wang (2019).

Un caso especial: descenso de gradiente estocástico (estándar) (SGD)

Si bien es trivial mencionarlo, si el gradiente de una función de costo es Lipschitz continuo, con Lipschitz constante L, entonces al elegir una tasa de aprendizaje constante y de tamaño , uno tiene un caso especial de búsqueda de línea de retroceso (para descenso de gradiente). Esto se ha utilizado al menos en Armijo (1966). Sin embargo, este esquema requiere que uno tenga una buena estimación para L, de lo contrario, si la tasa de aprendizaje es demasiado grande (en relación con 1/L), entonces el esquema no tiene garantía de convergencia. Uno puede ver qué saldrá mal si la función de costo es un suavizado (cerca del punto 0) de la función f(t)=|t|. Sin embargo, una estimación tan buena es difícil y laboriosa en grandes dimensiones. Además, si el gradiente de la función no es globalmente Lipschitz continuo, entonces este esquema no tiene garantía de convergencia. Por ejemplo, esto es similar a un ejercicio de Bertsekas (2016), para la función de costo y para cualquier tasa de aprendizaje constante que se elija, con un punto inicial aleatorio la secuencia construida por este esquema especial no converge al mínimo global 0.

Si a uno no le importa la condición de que la tasa de aprendizaje debe estar limitada por 1/L, entonces este esquema especial ha sido utilizado mucho más antiguamente, al menos desde 1847 por Cauchy , que puede llamarse GD estándar (que no debe confundirse con el descenso de gradiente estocástico, que se abrevia aquí como SGD). En el entorno estocástico (como en el entorno de minilotes en el aprendizaje profundo), el GD estándar se llama descenso de gradiente estocástico o SGD.

Incluso si la función de costo tiene un gradiente continuo global, una buena estimación de la constante de Lipschitz para las funciones de costo en el aprendizaje profundo puede no ser factible o deseable, dadas las dimensiones muy altas de las redes neuronales profundas . Por lo tanto, existe una técnica de ajuste fino de las tasas de aprendizaje al aplicar GD o SGD estándar. Una forma es elegir muchas tasas de aprendizaje de una búsqueda de cuadrícula, con la esperanza de que algunas de las tasas de aprendizaje puedan dar buenos resultados. (Sin embargo, si la función de pérdida no tiene un gradiente continuo global de Lipschitz, entonces el ejemplo anterior muestra que la búsqueda de cuadrícula no puede ayudar). Otra forma es el llamado GD o SGD estándar adaptativo, algunos representantes son Adam, Adadelta, RMSProp, etc., consulte el artículo sobre Descenso de gradiente estocástico . En el GD o SGD estándar adaptativo, se permite que las tasas de aprendizaje varíen en cada paso de iteración n, pero de una manera diferente a la búsqueda de línea de retroceso para el descenso de gradiente. Aparentemente, sería más costoso usar la búsqueda de línea de retroceso para el descenso de gradiente, ya que uno necesita hacer una búsqueda de bucle hasta que se satisfaga la condición de Armijo, mientras que para GD o SGD estándar adaptativos no se necesita una búsqueda de bucle. La mayoría de estos GD o SGD estándar adaptativos no tienen la propiedad de descenso , para todo n, como la búsqueda de línea de retroceso para el descenso de gradiente. Solo unos pocos tienen esta propiedad, y tienen buenas propiedades teóricas, pero resultan ser casos especiales de búsqueda de línea de retroceso o, más generalmente, la condición de Armijo Armijo (1966). El primero es cuando uno elige que la tasa de aprendizaje sea una constante <1/L, como se mencionó anteriormente, si uno puede tener una buena estimación de L. El segundo es la llamada tasa de aprendizaje decreciente, utilizada en el conocido artículo de Robbins y Monro (1951), si nuevamente la función tiene gradiente continuo de Lipschitz globalmente (pero la constante de Lipschitz puede ser desconocida) y las tasas de aprendizaje convergen a 0.

Resumen

En resumen, la búsqueda de línea de retroceso (y sus modificaciones) es un método fácil de implementar, aplicable a funciones muy generales, con muy buenas garantías teóricas (tanto para la convergencia a puntos críticos como para evitar puntos de silla) y que funciona bien en la práctica. Varios otros métodos que tienen buenas garantías teóricas, como las tasas de aprendizaje decrecientes o la GD estándar con una tasa de aprendizaje <1/L (ambos requieren que el gradiente de la función objetivo sea Lipschitz continuo), resultan ser un caso especial de búsqueda de línea de retroceso o satisfacen la condición de Armijo. Aunque a priori se necesita que la función de costo sea continuamente diferenciable para aplicar este método, en la práctica se puede aplicar este método con éxito también para funciones que son continuamente diferenciables en un subconjunto abierto denso como o .

Véase también

Referencias