3.4 Optimización vectorial
4.1.1 Métodos de descenso
La secuencia de minimización que producen estos algoritmos es la siguiente x(k+1) =x(k)+ t(k)∆x(k)
con t > 0 excepto cuandox(k)es óptimo. El símbolo ∆xes un vector en Rn
llamado paso o dirección de búsqueda. El escalar t(k) ≥ 0 es eltamaño del
pasoen la iteración k, aunque en realidad este nombre no es estrictamente
correcto, ya que no vale kx(k+1)−x(k)k, salvo que k∆x(k)k valga 1.
Decimos que son métodos de descenso porque f (x(k+1)) < f (x(k)) ex-
cepto cuando x(k) es óptimo. Esto implica que todos los x(k) están dentro
del conjunto subnivel inicial. Este conjunto se define como S = {x∈ dom f | f (x) ≤ f (x(0))}
Si la función es convexa, de acuerdo con la expresión (2.6) del apartado §2.3.1.1, se cumple que
∇f (x(k))T(x(k+1)−x(k)) ≥ 0 =⇒ f (x(k+1)) ≥ f (x(k))
Para buscar el mínimo no nos podemos permitir que esto ocurra. Por tanto, una dirección de búsqueda en un método de descenso tiene que cumplir que
∇f (x(k))T∆x(k)< 0
es decir, ∆x(k) tiene que formar un ángulo agudo con el gradiente negativo.
Si lo cumple, decimos que tenemos unadirección descendente.
El algoritmo 4.1 se basa en alternar dos fases principales: determinar la
dirección de descenso ∆x, y seleccionar un tamaño de paso t.
Algoritmo 4.1: Método general de descenso Datos: un punto inicialx∈ dom f
repetir
Determinar una dirección de descenso ∆x
Seguimiento lineal. Elegir un tamaño de paso t > 0
Actualizar, x:=x+ t∆x.
hasta que se satisface el criterio de parada
La diferencia entre los distintos métodos de descenso está en la dirección elegida. En este trabajo veremos como ejemplo el descenso de gradiente en §4.1.1.1. Otras opciones son el descenso por máxima pendiente [Boy04], el de gradientes conjugados [Hes52], los métodos de direcciones viables [Pol72], o el de gradiente reducido generalizado [Aba69].
4.1. MINIMIZACIÓN SIN RESTRICCIONES 51 El siguiente paso del algoritmo 4.1, el seguimiento lineal, se llama así porque la selección del tamaño de paso determina dónde estará la siguiente
iteración dentro de la línea {x+ t∆x| t ∈ R+}. Las opciones más comunes
que encontraremos son las que tratamos en §4.1.1.2 y §4.1.1.3.
4.1.1.1 Descenso de gradiente
Una elección lógica de dirección de búsqueda es la opuesta al gradiente,
∆x= −∇f (x), que corresponde al algoritmo de descenso de gradiente. De
hecho, es el método más obvio que se nos puede ocurrir para minimizar una función, ya que en cada iteración buscamos el máximo progreso hacia el objetivo sin necesidad de considerar lo que pueda ocurrir en los siguientes pasos. Sin embargo, su utilización práctica no da buenos resultados. Para demostrarlo podemos recurrir al análisis de convergencia de [Boy04, Cap. 9] donde se llega a la conclusión de que la diferencia entre el valor en un punto
x(k) y el óptimo p∗ después de k iteraciones tiene la siguiente expresión
f (x(k)) − p∗ ≤ ckf (x(0)) − p∗
Esto quiere decir que el error converge a cero en una serie geométrica ca- racterizada por la constante c < 1. Por tanto, se trata de una convergencia lineal, según la nomenclatura habitual en el contexto de métodos numéri- cos, debido a su representación en un eje semilogarítmico. La constante c que marca la velocidad de convergencia depende en gran medida de la matriz
hessiana, ∇2f (x), que define la forma de las curvas de nivel. La convergencia
puede ser muy lenta si la relación entre sus autovalores máximo y mínimo es muy alta.
Una vez definida la dirección de descenso, se asigna el tamaño del pa- so con uno de los métodos de §4.1.1.2 o §4.1.1.3, y repetimos el algorit- mo 4.1 hasta que se cumpla el criterio de parada, que suele expresarse como
k∇f (x)k2 ≤ η, siendo η un valor pequeño y positivo.
A pesar del inconveniente de la velocidad de convergencia, su utilización se justifica porque la principal ventaja de este método es su simplicidad.
4.1.1.2 Búsqueda lineal exacta
Este método consiste en elegir t que minimice f en la línea {x+ t∆x| t ≥ 0}
t = argmin s≥0
f (x+ s∆x)
Se utiliza esta solución cuando el coste del problema de minimización es bajo en comparación con el coste de calcular la dirección de búsqueda. En algunos casos se puede calcular analíticamente el minimizador sobre una línea.
4.1.1.3 Búsqueda lineal con retroceso
La mayoría de las búsquedas lineales en la práctica no son exactas. La lon- gitud de paso se elige para minimizar aproximadamente f sobre la línea
{x+ t∆x| t ≥ 0} o incluso simplemente para reducir f suficientemente.
Un método inexacto de búsqueda lineal es el algoritmo 4.2, conocido como método con retroceso, que depende de dos constantes α y β tales que 0 < α < 0,5 y 0 < β < 1. El nombre de este método se debe a que comienza con un paso unitario y lo reduce por un factor β hasta que llega a cumplir la siguiente condición
f (x+ t∆x) ≤ f (x) + αt∇f (x)T∆x (4.1)
Como ∆xes una dirección descendente, se cumple que ∇f (x)T∆x< 0, por
lo que si t es suficientemente pequeño podemos aproximar
f (x+ t∆x) ≈ f (x) + t∇f (x)T∆x< f (x) + αt∇f (x)T∆x
Algoritmo 4.2: Búsqueda lineal con retroceso
Datos: α ∈ (0, 0,5), β ∈ (0, 1), y una dirección de descenso ∆xpara
f enx∈ domf
t := 1
mientras que f (x+ t∆x) > f (x) + αt∇f (x)T∆x
t := βt
La condición de retroceso se muestra en la figura 4.1. Si suponemos que el
punto inicial t = 1 está a la derecha de t0, al reducir el valor de t llegaremos
a un punto inferior a t0. Si por el contrario, al empezar con t = 1 ya estamos
a la izquierda de t0, (t0 ≥ 1), entonces no hace falta cambiarlo. Vemos en
esta figura que la desigualdad (4.1) se mantiene para t ≥ 0 en un intervalo
(0, t0]. La búsqueda termina con una longitud de paso t que satisface
t = 1, o t ∈ (βt0, t0]
Podemos decir que la longitud de paso que obtenemos con el retroceso satisface lo siguiente
t ≥ m´ın{1, βt0}
Cuando el dominio de f no es todo Rn, la condición (4.1) se tiene que
interpretar con cuidado. Según requeríamos, f tiene que ser infinito fuera de su dominio. La desigualdad implica que
4.1. MINIMIZACIÓN SIN RESTRICCIONES 53 t f (x + tΔx) t = 0 t0 f (x) + αt∇f(x)TΔx f (x) + t∇f(x)TΔx
Figura 4.1: Búsqueda lineal con retroceso
En una implementación práctica, primero multiplicamos t por β hasta que
x+ t∆xesté dentro del dominio de f , y entonces comenzamos a comprobar
si se cumple dicha desigualdad (4.1).
El parámetro α se elige típicamente entre 0.01 y 0.3, por lo que aceptamos un decremento en f entre el 1 % y el 30 % de la predicción basada en la extrapolación lineal. El parámetro β se elige entre 0.1 y 0.8, donde el valor de 0.1 corresponde a una búsqueda muy fina, y 0.8 tendrá saltos de t más amplios.