Tamaño de paso de descenso de gradiente adaptable cuando no puede hacer una búsqueda de línea

9

Tengo una función objetivo depende de un valor , donde es la solución para un PDE. Estoy optimizando por gradiente de descenso en la condición inicial de la PDE: . Es decir, actualizo y luego tengo que integrar el PDE para calcular mi residual. Eso significa que, si tuviera que hacer una búsqueda de línea para el tamaño del paso de descenso del gradiente (llámelo ), para cada valor potencial de tendría que integrar el PDE nuevamente.ϕ ( x , t = 1.0 ) ϕ ( x , t ) EEϕ(x,t=1.0)ϕ(x,t)Eϕ ( x , t = 0.0 ) α αϕ(x,t=0.0)ϕ(x,t=0.0)αα

En mi caso eso sería prohibitivamente costoso. ¿Hay otra opción para el tamaño de paso de descenso de gradiente adaptativo?

No solo estoy buscando esquemas de principios matemáticos aquí (aunque, por supuesto, eso es mejor si algo existe), sino que estaría contento con cualquier cosa que generalmente sea mejor que un tamaño de paso estático.

¡Gracias!

NLi10Me
fuente
No creo que quiera modificar la forma en que integro el PDE en este momento, ya que para mí eso sería una gran reescritura de código. Además, no es tanto que el PDE sea complicado, sino que tengo que resolverlo en una cuadrícula muy densa en el espacio-tiempo, ya que necesito una precisión numérica muy alta.
NLi10Me
Por otro lado, el método BB (con el que no estaba familiarizado) parece bastante bueno; todo lo que tengo que hacer es realizar un seguimiento del estado y el gradiente de la iteración anterior y obtengo una aproximación de segundo orden ... eso parece muy bueno. Sin embargo, la derivación asume una cuadrática convexa y mi problema casi con certeza no lo es. Sin embargo, también estoy encontrando (y contento con) mínimos locales más que globales. ¿Sabes qué tan bien ha funcionado BB en problemas de muy alta dimensión?
NLi10Me
Supongo que lo que quise decir sobre los mínimos locales es que, en el vecindario de un mínimo local, ¿no hay ninguna función aproximadamente cuadrática? Creo que mi estado inicial está suficientemente cerca de un mínimo, ya que en muchos casos obtengo una convergencia suave incluso con el tamaño de paso estático. Entonces, a pesar de que es de dimensiones muy altas y, en general, si considera todo el espacio de búsqueda, el problema es no convexo / no cuadrático, ¿podría BB ser una buena opción sin búsqueda de línea? ϕ(0)(x,t=0.0)
NLi10Me
Los otros "ingredientes" para son datos de imágenes experimentales. intenta deformar una imagen para que "coincida" con la otra (medida por alguna coincidencia funcional como la norma L2 integrada sobre vóxeles). Para algunos pares de imágenes, obtengo una convergencia suave con (mi elección actual de) tamaño de paso estático. Para otros pares de imágenes, obtengo muchas oscilaciones. El sistema tiene que estar completamente automatizado, por lo que no puedo volver atrás y editar manualmente el tamaño del paso para pares de imágenes problemáticas. ϕ ( x , t = 1.0 )Eϕ(x,t=1.0)
NLi10Me
Bien, tengo que resolver el sistema adjunto para obtener el gradiente (que es un sistema más desagradable y lleva más tiempo). Ok, creo que intentaré BB con búsqueda de línea de retroceso. Gracias muy mucho por el consejo; mis asesores suelen ser difíciles de contactar y muchos de ellos no están interesados ​​tanto en la implementación como en el modelo. Estoy descubriendo que los métodos numéricos son el componente crucial para demostrar si un modelo es bueno o no en primer lugar, así que gracias nuevamente, realmente lo aprecio.
NLi10Me

Respuestas:

15

Comenzaré con una observación general: la información de primer orden (es decir, usando solo gradientes, que codifican la pendiente) solo puede brindarle información direccional: puede decirle que el valor de la función disminuye en la dirección de búsqueda, pero no por cuánto tiempo . Para decidir qué tan lejos ir a lo largo de la dirección de búsqueda, necesita información adicional (el descenso del gradiente con longitudes de paso constantes puede fallar incluso en problemas cuadráticos convexos) Para esto, básicamente tienes dos opciones:

  1. Use información de segundo orden (que codifica la curvatura), por ejemplo, usando el método de Newton en lugar del descenso de gradiente (para el cual siempre puede usar la longitud de paso suficientemente cerca del minimizador).1
  2. Prueba y error (por lo que, por supuesto, me refiero a usar una búsqueda de línea adecuada como Armijo).

Si, mientras escribe, no tiene acceso a segundas derivadas, y evaluar la función de obediencia es muy costoso, su única esperanza es comprometerse: use suficiente información aproximada de segundo orden para obtener una buena longitud de paso de candidato, de modo que una línea la búsqueda solo necesita evaluaciones (es decir, como máximo un múltiplo constante (pequeño) del esfuerzo que necesita para evaluar su gradiente).O(1)

Una posibilidad es utilizar las longitudes de paso Barzilai - Borwein (véase, por ejemplo, Fletcher: sobre el método Barzilai-Borwein . Optimización y control con aplicaciones, 235–256, Appl. Optim., 96, Springer, Nueva York, 2005 ). La idea es utilizar una aproximación de diferencia finita de la curvatura a lo largo de la dirección de búsqueda para obtener una estimación del tamaño del paso. Específicamente, elija arbitrario, establezca y luego para :g 0 : = f ( x 0 ) k = 0 , . . .α0>0g0:=f(x0)k=0,...

  1. Establezca yx k + 1 = x k + s ksk=αk1gkxk+1=xk+sk
  2. Evalúe y establezcagk+1=f(xk+1)yk=gk+1gk
  3. Establecerαk+1=(yk)Tyk(yk)Tsk

Se puede demostrar que esta opción converge (en la práctica muy rápidamente) para funciones cuadráticas, pero la convergencia no es monótona (es decir, el valor de la función puede ser mayor que , pero solo de vez en cuando; vea el diagrama en la página 10 en el artículo de Fletcher). Para las funciones no cuadráticas, debe combinar esto con una búsqueda de línea, que debe modificarse para tratar la no monotonicidad. Una posibilidad es elegir (por ejemplo, retrocediendo) de modo que donde es el parámetro típico de Armijo yf(xk+1)f(xk)σk(0,αk1)

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
γ(0,1)Mcontrola el grado de monotonicidad (p. ej., ). También hay una variante que usa valores de gradiente en lugar de valores de función, pero en su caso el gradiente es aún más costoso de evaluar que la función, por lo que no tiene sentido aquí. (Nota: por supuesto, puede intentar aceptar ciegamente las longitudes de los pasos BB y confiar en su suerte, pero si necesita algún tipo de solidez, como escribió en sus comentarios, sería una muy mala idea).M=10

Un enfoque alternativo (y, en mi opinión, mucho mejor) sería utilizar esta aproximación de diferencia finita ya en el cálculo de la dirección de búsqueda; Esto se llama un método cuasi-Newton . La idea es construir una aproximación incremental de la de Hesse utilizando diferencias de gradientes. Por ejemplo, podría tomar (la matriz de identidad) y para resolver y establece con como arriba y . (Esto se llama actualización Broyden2f(xk)H0=Idk=0,

(1)Hksk=gk,
ykxk+1=xk+sk
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+sky rara vez se usa en la práctica; Una actualización mejor pero un poco más complicada es la actualización BFGS , para lo cual, y más información, me refiero al libro de Optimización numérica de Nocedal y Wright .) La desventaja es que a) esto requeriría resolver un sistema lineal en cada paso (pero solo del tamaño de lo desconocido, que en su caso es una condición inicial, por lo tanto, el esfuerzo debe dominarse resolviendo PDE para obtener el gradiente; también, existen reglas de actualización para aproximaciones de la arpillera inversa , que solo requieren calcular una matriz única -vector producto) yb) todavía necesita una búsqueda de línea para garantizar la convergencia ...

Afortunadamente, en este contexto existe un enfoque alternativo que hace uso de cada evaluación de la función. La idea es que para simétrico y positivo definido (que está garantizado para la actualización BFGS), resolver es equivalente a minimizar el modelo cuadrático En un método de región de confianza , lo haría con la restricción adicional que , donde es un radio de región de confianza elegido adecuadamente (que desempeña el papel de la longitud del paso ). La idea clave ahora es elegir este radio de forma adaptativa, en función del paso calculado. Específicamente, miras la relación (1) q k ( s ) = 1Hk(1)SΔk

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
de la reducción real y prevista del valor de la función. Si es muy pequeño, su modelo era malo y descarta e intenta nuevamente con . Si está cerca de , su modelo es bueno y configura y aumenta . De lo contrario, simplemente establezca y deje solo . Para calcular el minimizador real deρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s), existen varias estrategias para evitar tener que resolver el problema de optimización con restricciones completas; mi favorito es el método de CG truncado de Steihaug . Para más detalles, nuevamente me refiero a Nocedal y Wright.
Christian Clason
fuente
Ahora estoy mirando esto nuevamente y me doy cuenta de que tengo una pregunta. En el paso tres para el método BB, tiene ; donde y . El numerador y el denominador en la expresión para parecen productos internos. En mi caso, , donde es un espacio vectorial con una métrica riemanniana no trivial: K. Es decir, . ¿Afecta eso la definición de ? αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10Me
Sí, si tiene una estructura de espacio vectorial no trivial, debe respetarla en los algoritmos. En particular, debe distinguir entre productos internos de dos funciones en el mismo espacio (por ejemplo, e ) y productos de dualidad entre una función en el espacio y una en el espacio dual (por ejemplo, e ): para este último, primero debe incluir el mapeo de Riesz para convertirlo en un producto interno. (Esto puede interpretarse como preacondicionamiento).y k s k y kykykskyk
Christian Clason
Dr. Clason, enviaré un artículo al ISBI 2017 que detalla algunos experimentos que he realizado utilizando el método de búsqueda de línea BB + para una tarea de registro de imágenes difeomorfas. ¿Te gustaría ser incluido como autor en el manuscrito? Todavía no lo he escrito, pero tengo la mayoría de los experimentos completos o en curso. Por favor hagamelo saber.
NLi10Me
@ NLi10Me Gracias por la amable oferta, pero no he hecho nada que merezca la coautoría: todo lo que escribí es material de libros de texto estándar. Si lo siente con firmeza, puede agradecerme por "comentarios útiles sobre (lo que sea que haya ayudado)", pero ni siquiera eso sería necesario. ¡Saber que lo que escribí fue útil es suficiente!
Christian Clason el
1
Lo sentimos, tienes razón, eso es un error tipográfico - corregido! (La condición de Armijo a menudo se escribe como , donde es la dirección de búsqueda, no necesariamente la negativa gradiente - y el tamaño del paso, lo que debería aclarar lo que está sucediendo.)s σf(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason