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 ) Eϕ ( 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!
fuente
Respuestas:
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:
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>0 g0:=∇f(x0) k=0,...
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,α−1k)
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 Broyden∇2f(xk) H0=Id k=0,…
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
fuente