Dirección de Descenso de Newton y Descenso Alternado

Mariano Rivera

septiembre 2018

[1] J. Nocedal and s. Wright, Numerical Optimization, 2ed. Springer (2006).

Descenso de gradiente

Notación. Para simplificar nuestra notación definimos:
  ft=def    f(xt) ft=def   f(xt)2 ft=def2 f(xt). \; f^t \overset{def}{=} \;\;f(x^t) \\ \nabla\,f^t \overset{def}{=} \;\nabla\,f(x^t)\\ \nabla^2 \,f^t \overset{def}{=} \nabla^2\,f(x^t).

Sea el problema de optimización

(1)
argminx    f(x) \underset{x}{\arg\min} \;\; f(x)
para ff suave (2 veces continuamente diferenciable).

Luego, sea xtx^t el punto actual tal que  ft0\nabla\,f^t \ne 0, entonces el punto xt+1x^{t+1} puede obtenerse mediante la fórmula de actualización

(2)
xt+1=xt+α pt \boxed{ x^{t+1} = x^{t} + \alpha \, p^t }

donde α\alpha es el tamaño de paso. Luego para una α\alpha suficientemente pequeña que garantiza:

(3)
f(xt+α pt)<ft f(x^{t} + \alpha \, p^t) < f^{t}

Usando expansión de Taylor de Primer orden en (3), y dado que α>0\alpha>0, tenemos

(4)
p ft<0 p^\top \nabla\,f^t < 0
para una p\| p\| fija, esta cantidad será mas negativa si

(5)
pt= ft \boxed{ p^t = - \nabla\,f^t }

que es llamada dirección de descenso de gradiente o de máximo descenso.

Método de Newton

Una dirección distinta a la de descenso de gradiente es la de Newton, en ella partimos de usar la fórmula de actualización (2), pero asumimos que α=1\alpha=1.

Entonces, ptp^t se calcula tal que:

(6)
pt=argminp  q(p)=deff(xt+p) p^t = \underset{p}{\arg \min} \,\, q(p) \overset{def}{=} f(x^{t} + p)

Ahora, expandimos en series de Taylor de segundo orden:

(7)
qt(p)=ft+p ft+12p2ftp q^t(p) = f^t + p^\top \nabla\,f^t + \frac{1}{2} p^\top \nabla^2 f^t p
y encontarmos el óptimo de este modelo cuadrático mediante:

(8)
pqt(p)=0 \nabla_p q^t(p) = 0 \\
esto es  ft+2ftp=0\nabla\,f^t + \nabla^2 f^t p =0. Po r lo que ptp^t es solución de

(9)
2ftp= ft \boxed{ \nabla^2 f^t p = - \nabla\,f^t }
que es conocida como la dirección de descenso de Newton o dirección de Newton (Nw).

Note que ptp^t es óptima con respecto a qt(p)q^t(p), pero no necesariamnete satisface f(xt+pt)<ftf(x^t+p^t) < f^t. Entonces usamos un tamaño de paso α\alpha que permita asegurar descenso, quedando la actualización como (2).

El método tienen convergencia cuadrática (superior a la de descenso de gradiente), sin embargo la desventaje implica que debe calcularse el Hessiano (2ft\nabla^2 f^t) de la función objetivo y resolverse, aproximadamente, el sistema lineal (9) en cada iteración.

Note que (9) puede resolverse aproximadamente mediante la detención temprana de métodos iterativos, como el de Descenso de Gradiente. Este método Newton-Gradiente Conjugado, no requiere del cálculo explícito del Hassiano pero si del producto 2ftp\nabla^2 f^t p.

Descenso coordenado

Una variante del método de newton se obtienen si elegimos solo una variabla a actializar en cada iteración; definimos el índice de la variable a actualizar como

(10)
i=t%n i = t \% n

donde %\% representa el módulo, nn es la dimensión de xx y tt la iteración actual.

Entonces fijamos la orientación de descenso mediante

(10)
pt=ei p^t = e_i

donde eie_i es el ii-ésimo vector canónico: el que corresponde a la variable xix_i.

Ahora, usando la fórmula de actualización (2), el tamaño de paso se calcula mediante:

(11)
αt=argminp  q(α)=deff(xt+αei)ft+αeift+12α2ei  2ft  ei \alpha^t = \underset{p}{\arg \min} \,\, q(\alpha) \overset{def}{=} f(x^{t} + \alpha e_i) \approx f^t + \alpha e_i^\top \nabla f^t + \frac{1}{2} \alpha^2 e_i^\top \; \nabla^2 f^t \; e_i

Donde hemos aproximado qq por la serie de Taylor de segundo orden. Abusando de la notacióm, continuamos llamando qq al modelo de segundo orden, entonces de αq=0\nabla_\alpha q =0 tenemos

(11)
eift+αei  2ft  ei=0 e_i^\top \nabla f^t + \alpha e_i^\top \; \nabla^2 f^t \; e_i =0

Por lo que es facil resolver para α\alpha:

(12)
α=eiftei  2ft  ei \alpha = - \frac{ e_i^\top \nabla f^t}{ e_i^\top \; \nabla^2 f^t \; e_i}

Esto es simplemente

(13)
α=1Hiiftei \alpha = - \frac{ 1}{H_{ii}} \frac{\partial f^t}{\partial e_i}

Donde hemos definido
H=def2ftH \overset{def}{=}\nabla^2 f^t, por lo que Hii=ei  2ft  eiH_{ii} = e_i^\top \; \nabla^2 f^t \; e_i que corresponde al elemento ii-ésimo de la diagonal de matriz Hassianan HH. Ahora sustitumos en (2) y tenemos que para la iteración tt actualizamos la variable ii mediante:

(14)
xi=Hiixiβ[ft]iHii \boxed{ x_i^ = \frac{ H_{ii} x_i - \beta [\nabla f^t]_i }{H_{ii}} }

donde β\beta es tamaño de paso que garantice que la funcion ff descienda, porque α\alpha garantiza descenso en el modelo qq pero no en la función objetivo ff.

Derivación alternativa del método de Gauss-Seidel

Ahora consideremos el caso simple en que la función objetivo es cuadrática, es decir de la forma

(15)
argminx    f(x)=12xAxbx \underset{x}{\arg\min} \;\; f(x) = \frac{1}{2} x^\top A x - b^\top x

Entonces, la solución se encuentra mediante la solución de xf\nabla_x f, que corresponde a resolver el sistema lineal:
Axb=0 Ax-b=0
donde AA es la matriz Hessiana y es simétrica, pues asumimos ff suave y sea aia_i^\top el renglón ii-ésimo de AA:

A=[a0a1a2an1] A = \begin{bmatrix} a_0^\top\\ a_1^\top\\ a_2^\top\\ \vdots \\ a_{n-1}^\top \end{bmatrix}

Ahora, la actualización (14) corresponde a

(16)
xi=aiixiβ (ai xbi)aii \boxed{ x_i = \frac{ a_{ii} x_i - \beta \, ( a_i^\top \, x -b_i ) }{a_{ii}} }

Que para β=1\beta=1 es el Método de Gauss-Seidel (GS); para β(0,1)\beta \in (0,1) es la versión amortiguada y para β>1\beta>1 es la sobre-relajada.

Observe que