5. Conjugate Gradient Methods

son·2023년 1월 27일
0

개요

Large linear systems을 풀기에 가장 효율적인 방법이다 (이 목적으로 개발된 것이기도 하다). 그리고 이를 nonlinear optimization problem을 풀기위해 활용할 수 있다.

Linear system을 풀기 위해 사용될 때는 (Gaussian elimination을 대신하는 개념, linear conjugate gradient) 성능이 coefficient matrix의 eigenvalue의 분포에 따라 달라지는데, transform하거나, precondition 하는 방법으로 convergence를 향상시킬 수 있다.

Nonlinear conjugate gradient method로 large scale nonlinear optimization problem을 풀 수 있고, 이 때 장점은 steepest descent 보다 빠르고, matrix storage를 필요로 하지 않는다는 점이다.

The linear conjugate gradient method

Ax=bAx=b

Linear system of equation을 interative하게 푼다. 이 때, AAn×nn\times n symmetric positive definite matrix이다. 이는 optimization 문제로 바꿔서 표현할 수 있다.

minϕ(x)=12xTAxbTx\min \phi(x)=\frac{1}{2}x^{T}Ax- b^{T}x

처음의 linear equation의 해와 위의 optimization 문제의 해는 같다. ϕ\phi의 gradient은 linear system의 residual과 같다.

ϕ(x)=Axb=r(x)\nabla \phi(x)=Ax-b=r(x)

Nonzero vectors {p0,p1,,pl}\{p_{0},p_{1},\dots,p_{l}\}이 symmetric positive definite matrix AA에 대해서 conjugate하다는 것은 다음을 만족하는 것이다.

piTApj=0for all ijp^{T}_{i}Ap_{j}=0\quad\text{for all }i\neq j

이 vector들은 linearly independent하다는 것을 볼 수 있다. Conjugate gradient method의 장점은 conjugacy를 가지는 vector들의 set을 경제적으로 만들 수 있다는 것이다. Conjugacy를 가지고 있으면 ϕ()\phi(\cdot)nn step 동안 각 direction에 따라 minimize 할 수 있다. 이를 보이기 위해 다음의 conjugate direction method를 살펴보자. 시작점 x0Rnx_{0}\in \mathbb{R}^{n}과 conjugate direction {p0,p1,,pl1}\{ p_{0},p_{1},\dots,p_{l-1}\}에 대해 sequence {xk}\{x_{k}\}를 다음과 같이 얻을 수 있다.

xk+1=xk+αkpkx_{k+1}=x_{k}+\alpha_{k}p_{k}

이 때, αk\alpha_{k}ϕ()\phi(\cdot)xk+αpkx_{k}+\alpha p_{k} 를 따라 얻은 one-dimensional minimizer이고

αk=rkTpkpkTApk\alpha_{k}=-\frac{r^{T}_{k}p_{k}}{p^{T}_{k}Ap_{k}}

이다.

Theorem 5.1

아무 시작점 x0Rnx_{0}\in \mathbb{R}^{n}에 대해, conjugate direction method를 통해 얻어진 sequence {xk}\{x_{k}\}는 linear system의 solution xx^{\ast}에 최대 nn step 안에 converge한다.

  • 증명

    {pi}\{p_{i}\}는 서로 linearly independent 하기 때문에 Rn\mathbb{R}^{n}을 span한다. 따라서

    xx0=i=0n1σipix^{\ast}-x_{0}=\sum^{n-1}_{i=0}\sigma_{i}p_{i}

    로 표현할 수 있다. 양변의 앞에 pkTAp^{T}_{k}A를 곱하고 정리하면

    σk=pkTA(xx0)pkTApk\sigma_{k}=\frac{p^{T}_{k}A(x^{\ast}-x_{0})}{p^{T}_{k}Ap_{k}}

    을 얻을 수 있다. xkx_{k}가 conjugate direction method를 통해 얻어지기 때문에

    xk=x0+i=0k1αipix_{k}=x_{0}+\sum^{k-1}_{i=0}\alpha_{i}p_{i}

    이고, 양변의 앞에 pkTAp^{T}_{k}A를 곱하고 정리하면

    pkTA(xkx0)=0p^{T}_{k}A(x_{k}-x_{0})=0

    이고,

    pkTA(xx0)=pkTA(xxk)=pkT(bAxk)=pkTrkp^{T}_{k}A(x^{\ast}-x_{0})=p^{T}_{k}A(x^{\ast}-x_{k})=p^{T}_{k}(b-Ax_{k})=-p^{T}_{k}r_{k}

    따라서 αk=σk\alpha_{k}=\sigma_{k}이다.

Conjugate direction method의 kk iteration 후 얻어진 xkx_{k}span{p0,p1,,pk1}\text{span}\{p_{0},p_{1},\dots,p_{k-1}\}에서 ϕ()\phi(\cdot)이 minimize되는 점이다.

Theorem 5.2

아무 시작점 x0Rnx_{0}\in\mathbb{R}^{n}에 대해, sequence {xk}\{x_{k}\}가 conjugate direction method를 통해 얻어진다고 가정하자. 그러면,

rkTpi=0for i=0,1,,k1r^{T}_{k}p_{i}=0 \quad \text{for }i=0,1,\dots,k-1

이고, xkx_{k}ϕ(x)=12xTAxbTx\phi(x)=\frac{1}{2}x^{T}Ax-b^{T}x의 set

{xx=x0+span{p0,p1,,pk1}}\{x|x=x_{0}+\text{span}\{p_{0},p_{1},\dots,p_{k-1}\}\}

에서의 minimizer이다.

  • 증명

    먼저 점 x~\tilde{x}가 set {xx=x0+span{p0,p1,,pk1}}\{x|x=x_{0}+\text{span}\{p_{0},p_{1},\dots,p_{k-1}\}\}에서 ϕ\phi를 minimize한다와 i=0,1,,k1i=0,1,\dots,k-1에 대해 r(x~)Tpi=0r(\tilde{x})^{T}p_{i}=0 이다가 동치임을 보이자. h(σ)=ϕ(x0+σ0p0++σk1pk1)h(\sigma)=\phi(x_{0}+\sigma_{0}p_{0}+\cdots+\sigma_{k-1}p_{k-1}) (이 때, σ=(σ0,,σk1)T\sigma=(\sigma_{0},\dots,\sigma_{k-1})^{T}을 정의하자. h(σ)h(\sigma)는 strictly convex quadratic이기 때문에,

    h(σ)σi=0i=0,1,,k1\frac{\partial h(\sigma^{\ast})}{\partial \sigma_{i}}=0 \quad i=0,1,\dots,k-1

    을 만족하는 unique minimizer σ\sigma^{\ast}가 존재한다. Chain rule에 따라

    ϕ(x0+σ0p0++σk1pk1)Tpi=0i=0,1,,k1\nabla \phi(x_{0}+\sigma^{\ast}_{0}p_{0}+\cdots + \sigma^{\ast}_{k-1}p_{k-1})^{T}p_{i}=0\quad i=0,1,\dots,k-1

    이다. 이 때, ϕ(x)=Axb=r(x)\nabla \phi(x)=Ax-b=r(x)로 정의했었으니, minimizer x~=x0+σ0p0++σk1pk1\tilde{x}=x_{0}+\sigma^{\ast}_{0}p_{0}+\cdots + \sigma^{\ast}_{k-1}p_{k-1}에 대해서, r(x~)Tpi=0r(\tilde{x})^{T}p_{i}=0임을 보인 것이다.

    이제 xkx_{k}rkTpi=0r^{T}_{k}p_{i}=0 (i=0,1,,k1i=0,1,\dots,k-1)을 만족함을 보이자. k=1k=1인 경우, x1=x0+α0p0x_{1}=x_{0}+\alpha_{0}p_{0}p0p_{0}을 따라 ϕ\phi를 minimize한다는 점에서 r1Tp0=0r^{T}_{1}p_{0}=0이다. 이제 i=0,1,,k2i=0,1,\dots ,k-2에 대해서 rk1Tpi=0r^{T}_{k-1}p_{i}=0이라 가정하자.

    rk=rk1+αk1Apk1r_{k}=r_{k-1}+\alpha_{k-1}Ap_{k-1}

    의 앞에 pk1Tp^{T}_{k-1}을 곱하면

    pk1Trk=pk1Trk1+αk1pk1TApk1=0p^{T}_{k-1}r_{k}=p^{T}_{k-1}r_{k-1}+\alpha_{k-1}p^{T}_{k-1}Ap_{k-1}=0

    αk1\alpha_{k-1}의 정의에 의해 rkTpk1=0r^{T}_{k}p_{k-1}=0을 얻는다. i=0,1,,k2i=0,1,\dots, k-2pip_{i}에 대해서는

    piTrk=piTrk1+αk1piTApk1=0p^{T}_{i}r_{k}=p^{T}_{i}r_{k-1}+\alpha_{k-1}p^{T}_{i}Ap_{k-1}=0

    가정에 의해 piTrk1=0p^{T}_{i}r_{k-1}=0 이고, pip_{i}의 conjugacy에 의해 piTApk1=0p^{T}_{i}Ap_{k-1}=0이다. 따라서 i=0,1,,k1i=0,1,\dots,k-1에 대해 rkTpi=0r^{T}_{k}p_{i}=0이다.

{pi}\{p_{i}\}는 conjugacy를 가지기만 하면 어떤 것이든 상관이 없다. 가장 쉽게 생각해볼 수 있는 건 Eigenvector일텐데 계산 복잡도가 커서 현실적이지 못하다. Gram-Schmidt orthogonalization을 이용하는 것도 마찬가지이다.

Conjugate gradient method는 conjugate direction method의 한 종류이다. Conjugate vector pkp_{k}를 만드는 과정에서 pk1p_{k-1}만을 이용하여 만드는데, pkp_{k}p0,,pk2p_{0},\dots,p_{k-2}와 conjugate하다. 이 때문에, conjugate gradient method는 memory 사용과 computational cost 측면에서 우수하다. 각 direction pkp_{k}

pk=rk+βkpk1p_{k}=-r_{k}+\beta_{k}p_{k-1}

을 통해서 구해지는데, 이 때, βk\beta_{k}pk1p_{k-1}pkp_{k}AA에 대해서 conjugate 하도록 정한다.

βk=rkTApk1pk1TApk1\beta_{k}=\frac{r^{T}_{k}Ap_{k-1}}{p^{T}_{k-1}Ap_{k-1}}

p0p_{0}x0x_{0}에서의 steepest direction으로 잡는다. Conjugate direction method 처럼 각 direction에 대해 one-dimensional minimization을 하게 된다.

이제, p0,p1,,pn1p_{0},p_{1},\dots ,p_{n-1}이 서로 conjugate하고, residual rir_{i}들이 서로 orthogonal하고, search direction pkp_{k}와 residual rkr_{k}가 다음과 같이 정의되는 r0r_{0}Krylov subspace of degree kk에 포함됨을 보이자.

K(r0;k)=span{r0,Ar0,,Akr0}\mathcal{K}(r_{0};k)=\text{span}\{ r_{0},Ar_{0},\dots,A^{k}r_{0}\}

Theorem 5.3

Conjugate gradient method에 의해 kk번째 생성된 점이 solution xx^{\ast}가 아니라 가정하자. 다음의 네 성질이 성립한다.

rkTri=0for i=0,1,,k1span{r0,r1,,rk}=span{r0,Ar0,,Akr0}span{p0,p1,,pk}=span{r0,Ar0,,Akr0}pkTApi=0for i=0,1,,k1r^{T}_{k}r_{i}=0 \quad \text{for }i=0,1,\dots,k-1 \\ \text{span}\{r_{0},r_{1},\dots,r_{k}\}=\text{span}\{r_{0}, Ar_{0},\dots,A^{k}r_{0}\} \\ \text{span}\{ p_{0},p_{1},\dots, p_{k}\}=\text{span}\{r_{0},Ar_{0},\dots,A^{k}r_{0}\} \\ p^{T}_{k}Ap_{i}=0 \quad \text{for }i=0,1,\dots,k-1

따라서, sequence {xk}\{x_{k}\}xx^{\ast}로 최대 nn step 안에 수렴한다.

  • 증명

    귀납적으로 증명하자. 2, 3번째 성질은 k=0k=0에서 성립함을 쉽게 알 수 있다. 그리고 4번째 성질은 k=1k=1일 때 성립한다. 이제 kk에서 이 세 성질이 성립하면 k+1k+1에서도 성립함을 보이자.

    2번째 성질이 성립함을 보이기 위해 먼저 좌변의 set이 우변의 set에 포함됨을 보이자. 먼저 kk에서 성립함을 가정했으므로

    rkspan{r0,Ar0,Akr0}pkspan{r0,Ar0,Akr0}r_{k}\in\text{span}\{r_{0}, Ar_{0},\dots A^{k}r_{0}\} \\ p_{k}\in\text{span}\{r_{0}, Ar_{0},\dots A^{k}r_{0}\}

    이다. 앞에 AA를 곱하면

    Apkspan{Ar0,A2r0,Ak+1r0}Ap_{k}\in\text{span}\{Ar_{0}, A^{2}r_{0},\dots A^{k+1}r_{0}\}

    이 때, rk+1=rk+αkApkr_{k+1}=r_{k}+\alpha_{k}Ap_{k}이므로,

    rk+1span{r0,Ar0,Ak+1r0}r_{k+1}\in\text{span}\{r_{0}, Ar_{0},\dots A^{k+1}r_{0}\}

    따라서

    span{r0,r1,,rk+1}span{r0,Ar0,,Ak+1r0}\text{span}\{r_{0},r_{1},\dots,r_{k+1}\}\sub\text{span}\{r_{0}, Ar_{0},\dots,A^{k+1}r_{0}\}

    역이 성립함을 보이자. 먼저 kk에서 성립함을 가정했으므로

    Akr0span{p0,p1,,pk}A^{k}r_{0}\in\text{span}\{ p_{0},p_{1},\dots, p_{k}\}

    앞에 AA를 곱하면

    Ak+1r0span{Ap0,Ap1,,Apk}A^{k+1}r_{0}\in\text{span}\{ Ap_{0},Ap_{1},\dots, Ap_{k}\}

    업데이트 식에 의해 Api=(ri+1ri)/αiAp_{i}=(r_{i+1}-r_{i})/\alpha_{i} (i=0,1,,ki=0,1,\dots, k)이니까 결국

    Ak+1r0span{r0,r1,,rk+1}A^{k+1}r_{0}\in \text{span}\{r_{0},r_{1},\dots,r_{k+1}\}

    이다. 따라서

    span{r0,Ar0,,Ak+1r0}span{r0,r1,,rk+1}\text{span}\{r_{0}, Ar_{0},\dots,A^{k+1}r_{0}\} \sub \text{span}\{r_{0},r_{1},\dots,r_{k+1}\}

    2번째 성질에 대해서 증명하였다.

    이제 3번째 성질에 대해서 증명하자.

    span{p0,p1,,pk,pk+1}=span{p0,p1,,pk,rk+1}=span{r0,Ar0,,Akr0,rk+1}=span{r0,r1,,rk,rk+1}=span{r0,Ar0,,Ak+1r0}\text{span}\{p_{0},p_{1},\dots,p_{k},p_{k+1}\}=\text{span}\{p_{0},p_{1},\dots,p_{k},r_{k+1}\}\\=\text{span}\{r_{0}, Ar_{0},\dots,A^{k}r_{0},r_{k+1}\} \\=\text{span}\{r_{0},r_{1},\dots,r_{k},r_{k+1}\}\\=\text{span}\{r_{0}, Ar_{0},\dots,A^{k+1}r_{0}\}

    이제 4번째 성질에 대해서 증명하자. Direction pk+1p_{k+1}를 구하는 식에 ApiAp_{i}를 곱하면

    pk+1TApi=rk+1TApi+βk+1pkTApi(5.21)p^{T}_{k+1}Ap_{i}=-r^{T}_{k+1}Ap_{i}+\beta_{k+1}p^{T}_{k}Ap_{i} \tag{5.21}

    이다. 여기서 βk+1\beta_{k+1}의 정의에 따라 i=ki=k일 때, 오른쪽 term이 0이 된다. ik1i\leq k-1에 대해서 따져보자. 먼저 kk에 대해 네 성질들이 성립함을 가정했으므로 p0,p1,,pkp_{0},p_{1},\dots,p_{k}는 conjugate 하고 Theorem 5.2에 의해서

    rk+1Tpi=0for i=0,1,,kr^{T}_{k+1}p_{i}=0 \quad \text{for }i=0,1,\dots,k

    또,

    Api span{Ar0,A2r0,,Ai+1r0}span{p0,p1,,pi+1}Ap_{i}\in \text{ span}\{Ar_{0}, A^{2}r_{0},\dots,A^{i+1}r_{0}\}\\\sub \text{span}\{p_{0},p_{1},\dots,p_{i+1}\}

    이므로 이 두 사실을 결합하면

    rk+1TApi=0for i=0,1,,k1r^{T}_{k+1}Ap_{i}=0\quad \text{for }i=0,1,\dots,k-1

    따라서 (5.21)의 우변의 두 term이 모두 0가 되어 k+1k+1에 대해 성립함을 보였다.

    마지막으로 1번 성질은 비 귀납적인 방법으로 증명한다. Direction set이 conjugate하므로 모든 i=0,1,,k1i=0,1,\dots,k-1과 아무 k=1,2,,n1k=1,2,\dots,n-1에 대해서 rkTpi=0r^{T}_{k}p_{i}=0이다.

    pi=ri+βipi1p_{i}=-r_{i}+\beta_{i}p_{i-1}

    이므로, 모든 i=0,1,,k1i=0,1,\dots,k-1에 대해서 rispan{pi,pi1}r_{i}\in\text{span}\{p_{i},p_{i-1}\}이다. 따라서 모든 i=1,,k1i=1,\dots,k-1에 대해서 rkTri=0r^{T}_{k}r_{i}=0이다. p0p_{0}의 정의에 의해 rkTr0=rkTp0=0r^{T}_{k}r_{0}=-r^{T}_{k}p_{0}=0이다. 따라서 증명이 성립한다.

Theorem 5.2와 5.3의 결과를 이용하여 더 경제적인 conjugate gradient method를 도출할 수 있다. 먼저 Theorem 5.2의 rkTpi=0for i=0,1,,k1r^{T}_{k}p_{i}=0 \quad \text{for }i=0,1,\dots,k-1을 이용해서 αk\alpha_{k}의 업데이트 식을 다음으로 대체할 수 있다.

αk=rkTrkpkTApk\alpha_{k}=\frac{r^{T}_{k}r_{k}}{p^{T}_{k}Ap_{k}}

두번째로, αkApk=rk+1rk\alpha_{k}Ap_{k}=r_{k+1}-r_{k}임을 이용해서 βk+1\beta_{k+1}식을 단순화 할 수 있다.

βk+1=rk+1Trk+1rkTrk\beta_{k+1}=\frac{r^{T}_{k+1}r_{k+1}}{r^{T}_{k}r_{k}}

요약하자면, 일반적으로 사용하는 conjugate gradient method는 다음의 알고리즘과 같다.

계산복잡도가 낮고, 메모리 효율적이나 문제의 크기가 작은 경우 round error가 적은 Gaussain elimination이나 SVD 같은 방식을 고려하는게 낫다.

기본적으로 정확히 계산했을 때 (수치해석적 오차를 고려하지 않았을 때) nn step 안에 solution을 찾는데, 만약에 AA의 eigenvalue가 특정한 성질을 가지고 있다면 이보다 더 빠를 수 있다. 이에 대해 얘기하기 위해 Theorem 5.2를 살짝 다르게 바라보자.

Algorithm 5.2의 xk+1x_{k+1} 업데이트 식과 theorem 5.3의 세번째 성질로부터

xk+1=x0+α0p0++αkpk=x0+γ0r0+γ1Ar0++γkAkr0x_{k+1}=x_{0}+\alpha_{0}p_{0}+\cdots+\alpha_{k}p_{k}\\=x_{0}+\gamma_{0}r_{0}+\gamma_{1}Ar_{0}+\cdots+\gamma_{k}A^{k}r_{0}

이 때, γi\gamma_{i}는 임의의 상수이다. γ0,γ1,,γk\gamma_{0},\gamma_{1},\dots,\gamma_{k}를 coefficient로 가지는 degree kk의 polynomial Pk()P^{\ast}_{k}(\cdot)을 정의하면

Pk(A)=γ0I+γ1A++γkAkP^{\ast}_{k}(A)=\gamma_{0}I+\gamma_{1}A+\cdots+\gamma_{k}A^{k}

따라서 xk+1x_{k+1}의 식을 Pk()P^{\ast}_{k}(\cdot)을 이용해서 표현할 수 있다.

xk+1=x0+Pk(A)r0x_{k+1}=x_{0}+P^{\ast}_{k}(A)r_{0}

이제, 첫 kk step이 Krylov subspace K(r0;k)\mathcal{K}(r_{0};k)으로 제한된 모든 가능한 method 중 Algorithm 5.2가 weighted norm measure A\|\cdot\|_{A} (zA=zTAz\|z\|_{A}=z^{T}Az)로 측정된 거리 관점에서 kk step 후 최적임을 보이자.

12xxA2=12(xx)TA(xx)=ϕ(x)ϕ(x)\frac{1}{2}\|x-x^{\ast}\|^{2}_{A}=\frac{1}{2}(x-x^{\ast})^{T}A(x-x^{\ast})=\phi(x)-\phi(x^{\ast})

Theorem 5.2에 의해 xk+1x_{k+1}은 set x0+span{p0,p1,,pk}x_{0}+\text{span}\{p_{0},p_{1},\dots,p_{k}\} (x0+span{r0,Ar0,,Akr0}x_{0}+\text{span}\{r_{0},Ar_{0},\dots,A^{k}r_{0}\}과 같다.)에서 ϕ\phi를 minimize한다. (따라서 xxA2\|x-x^{\ast}\|^{2}_{A}도 minimize한다.). Polynomial PkP^{\ast}_{k}는 다음의 문제를 가능한 모든 degree kk의 polynomial 공간에서 최소화하는 것이다.

minPkx0+Pk(A)r0xA\min _{P_{k}}\|x_{0}+P_{k}(A)r_{0}-x^{\ast}\|_{A}

이 섹션동안 이 optimality property를 반복적으로 이용할것이다.

r0=Ax0b=Ax0Ax=A(xx)r_{0}=Ax_{0}-b=Ax_{0}-Ax^{\ast}=A(x-x^{\ast})

이므로

xk+1x=x0+Pk(A)r0x=[I+Pk(A)A](x0x)x_{k+1}-x^{\ast}=x_{0}+P^{\ast}_{k}(A)r_{0}-x^{\ast}=[I+P^{\ast}_{k}(A)A](x_{0}-x^{\ast})

이다. 0<λ1λ2λn0<\lambda_{1}\leq \lambda_{2}\leq\cdots\leq\lambda_{n}AA의 eigenvalue라 하고, v1,v2,,vnv_{1},v_{2},\dots,v_{n}을 각 eigenvalue에 해당하는 eigenvector라고 하자. 그러면

A=i=1nλiviviTA=\sum^{n}_{i=1}\lambda_{i}v_{i}v^T_{i}

Eigenvector가 Rn\mathbb{R}^{n} 전체를 span하므로 임의의 상수 ξi\xi_i에 대해

x0x=inξivix_{0}-x^{\ast}=\sum^{n}_{i}\xi_{i}v_{i}

이다. AA의 eigenvector는 polynomial Pk(A)P_{k}(A)의 eigenvector이기도 하다. 그러므로,

Pk(A)vi=Pk(λi)vi,i=1,2,,nP_{k}(A)v_{i}=P_{k}(\lambda_{i})v_{i}, \quad i=1,2,\dots,n

이를 이용하면,

xk+1x=i=1n[1+λiPk(λi)]ξivix_{k+1}-x^{\ast}=\sum^{n}_{i=1}[1+\lambda_{i}P^{\ast}_{k}(\lambda_{i})]\xi_{i}v_{i}

zA2=zTAz=i=1nλi(viTz)2\|z\|^{2}_{A}=z^{T}Az=\sum^{n}_{i=1}\lambda_{i}(v^{T}_{i}z)^{2}이므로

xk+1xA2=i=1nλi[1+λiPk(λi)]2ξi2\|x_{k+1}-x^{\ast}\|^{2}_{A}=\sum^{n}_{i=1}\lambda_{i}[1+\lambda_{i}P^{\ast}_{k}(\lambda_{i})]^{2}\xi^{2}_{i}

CG로 얻은 polynomial PkP^{\ast}_{k}A\|\cdot\|_{A} 관점에서 최적이므로

xk+1xA2=minPki=1nλi[1+λiPk(λi)]2ξi2\|x_{k+1}-x^{\ast}\|^{2}_{A}=\min_{P_{k}}\sum^{n}_{i=1}\lambda_{i}[1+\lambda_{i}P_{k}(\lambda_{i})]^{2}\xi^{2}_{i}

λi[1+λiPk(λi)]2\lambda_{i}[1+\lambda_{i}P_{k}(\lambda_{i})]^{2} 중 가장 큰 term을 밖으로 빼내면

xk+1xA2minPkmax1in[1+λiPk(λi)]2j=1nλjξj2=minPkmax1in[1+λiPk(λi)]2x0xA2(5.33)\|x_{k+1}-x^{\ast}\|^{2}_{A}\leq\min_{P_{k}}\max_{1\leq i \leq n} [1+\lambda_{i}P_{k}(\lambda_{i})]^{2}\sum^{n}_{j=1}\lambda_{j}\xi^{2}_{j} \\ =\min_{P_{k}}\max_{1\leq i \leq n} [1+\lambda_{i}P_{k}(\lambda_{i})]^{2}\|x_{0}-x^{\ast}\|^{2}_{A}\tag{5.33}

따라서 CG method의 convergence rate를 다음의 값을 가지고 나타낼 수 있다.

minPkmax1in[1+λiPk(λi)]2\min_{P_{k}}\max_{1\leq i \leq n} [1+\lambda_{i}P_{k}(\lambda_{i})]^{2}

바꿔말하면, 이 식을 가능한 최소화하는 polynomial PkP_{k}를 탐색한다. 몇몇 경우 explicit하게 찾을 수 있다.

Theorem 5.4

만약 AArr개에 서로 구분되는 eigenvalue를 가지고 있다면, CG는 최대 rr iteration안에 solution을 찾는다.

비슷한 추론 방식으로 얻을 수 있는 CG method의 다른 유용한 성질로 다음이 있다.

Theorem 5.5

만약 AA가 eigenvalue λ1λ2λn\lambda_1\leq \lambda_2\leq\cdots\leq\lambda_n을 가지면,

xk+1xA2(λnkλ1λnk+λ1)2x0xA2\|x_{k+1}-x^\ast\|^2_A\leq \left( \frac{\lambda_{n-k}-\lambda_1}{\lambda_{n-k}+\lambda_1} \right)^2\|x_0 -x^\ast\|^2_A

이다. (증명 생략. (5.33)에서 유도됨.)

Theorem 5.5가 어떻게 CG의 동작들 예측하는지 보자.

그림처럼 Eigenvalue들이 cluster 되어있는 경우(특히 nmn-m개의 eigen value가 1주변에 모여있음에 주목)를 가정하자. Theorem 5.5에 따르면 m+1m+1 step후 conjuagte gradient 알고리즘에 의해

xm+1xAϵx0xA\|x_{m+1}-x^\ast\|_A\approx \epsilon \|x_0-x^\ast\|_A

따라서, m+1m+1 step만으로도 충분히 좋은 solution을 얻을 수 있다.

CG의 convergence를 AA의 Euclidean condition number

κ(A)=A2A12=λn/λ1\kappa(A)=\|A\|_2\|A^{-1}\|_2=\lambda_n/\lambda_1

을 이용하여 표현하면

xkxA2(κ(A)1κ(A)+1)kx0xA\|x_k-x^\ast\|_A\leq 2\left(\frac{\sqrt{\kappa(A)}-1}{\sqrt{\kappa(A)}+1}\right)^k\|x_0-x^\ast\|_A

인데, 일반적으로 over estimation이 심하지만 λ1\lambda_1λn\lambda_n 밖에 모를 때는 유용하게 사용할 수 있다.

Preconditioning

Eigenvalue의 분포에 따라 CG의 수렴이 빨라질 수 있음을 알았다. 그렇다면 A를 적절히 transform해서 이런 성질을 유도할 수 없을까? 이를 위해 nonsingular matrix CC를 이용해 xxx^\hat{x}로 바꾼다.

x^=Cx\hat{x}=Cx

그러면 처음 우리가 linear system을 optimization으로 바꾸기 위해 사용했던 식 ϕ\phi

ϕ^(x^)=12x^T(CTAC1)x^(CTb)Tx^\hat{\phi}(\hat{x})=\frac{1}{2}\hat{x}^T(C^{-T}AC^{-1})\hat{x}-(C^{-T}b)^T\hat{x}

로 바뀐다. 그러면 CG의 convergence rate은 AA대신 CTAC1C^{-T}AC^{-1}의 eigenvalue에 따를 것이다. Eigenvalue가 잘 cluster 되거나, condition number가 작도록 CC를 고르면 된다. 이런 transform을 explicit하게 하지는 않고 \hat{x}에 대해 CG를 풀고 transform을 되돌릴 수 있다. matrix M=CTCM=C^TC를 이용하여

M=IM=I일 때 standard CG이다. 참고로 orthogonality property는 이렇게 표현된다.

riTM1rj=0ijr^T_iM^{-1}r_j=0 \quad \forall i\neq j

Preconditioned CG에서는 (5.39d)의 계산이 추가됐다.

Practical Preconditioners

통용되는 최고의 preconditioning 방법이 있지는 않다. MM의 효과, MM의 저장과 계산복잡도, (5.39d)의 계산 복잡도를 고려해야한다.

PDE 풀기 위한 방법은 연구 많이 됐다는데 잘 이해 못해서 생략.

General-purpose preconditioner 중에 제일 대중적인 건 incomplete Cholesky 가 있다. 정확한 Cholesky decomposition A=LLTA=LL^T를 하는 대신 LL보다 sparse한 approximation L~\tilde{L}을 이용하여 AL~L~TA\approx \tilde{L}\tilde{L}^T을 만드는 방식이다. C=L~TC=\tilde{L}^T로 잡으면 M=L~L~TM=\tilde{L}\tilde{L}^T이고

CTAC1=L~1AL~TIC^{-T}AC^{-1}=\tilde{L}^{-1}A\tilde{L}^{-T}\approx I

가 돼서 CTAC1C^{-T}AC^{-1}의 eigen value들이 1 주위로 모이게 된다. M을 직접적으로 계산하지 않고 L~\tilde{L}을 저장하고 My=rMy=r을 두번의 triangular substitution으로 푼다. L~\tilde{L}의 sparsity가 A랑 비슷하므로 My=rMy=r을 푸는 비용은 Ap를 계산하는 것과 비슷하다.

단, matrix AA가 충분히 positive definite하지 않아 L~\tilde{L}을 구하기 위해서는 diaognal element의 값을 증가시켜야 할 수도 있고, sparsity condition 때문에 numerically instable 할 수 있다.

Nonlinear conjugate gradient method

CG를 앞서 언급한 ϕ\phi 말고 일반적인 (nonlinear까지) function을 minimize하는 데 사용할 수는 없을까?

Fletcher-Reeves Method

CG 알고리즘에서 1) step length αk\alpha_k를 line search를 통해 찾고, 2) residual rrff의 gradient로 수정한 버전이다.

ff가 strongly convex quadratic이고 αk\alpha_k가 exact minimizer면 linear CG가 된다. FR은 ff의 값과 gradient 만 계산하면 되고 matrix operation도 필요 없고 vector 몇개만 저장하면 돼서 좋다.

다만 αk\alpha_k를 어떻게 계산하냐에 따라서 pk+1p_{k+1}이 descent direction이 아닐 수 있다. (5.41b)에 fk\nabla f_{k}를 곱하면

fkTpk=fk2+βkFRfkTpk1\nabla f^T_k p_k=-\|\nabla f_k\|^2 + \beta^{FR}_k\nabla f^T_kp_{k-1}

이다. 만약 line search가 정확했다면 αk1\alpha_{k-1}pk1p_{k-1} 방향으로 minimizer라 fkTpk1=0\nabla f^T_k p_{k-1}=0이고 따라서 fkTpk<0\nabla f^T_kp_k<0이고 pkp_k는 descent direction이다. Line search가 정확하지 않은 경우에는 pkp_k가 descent direction이라고 확신할 수 없는데, 이를 αk\alpha_k가 strong Wolfe condition을 만족하도록 요구하면 해결된다.

Polak-Ribiere Method와 변형

Fletcher-Reeves에서 βk\beta_k를 바꾼 변형들이 여럿 있는데 그 중 하나가 Polak-Ribiere이다.

βk+1PR=fk+1T(fk+1fk)fk2\beta^{PR}_{k+1}=\frac{\nabla f^T_{k+1}(\nabla f_{k+1}-\nabla f_k)}{\|\nabla f_k\|^2}

ff가 strongly convex quadratic이고 line search가 exact할 때 FR과 동일하다. Line search가 정확하지 않을 때 PR이 더 robust하고 효율적인 편이라 한다.

PR에서는 strong Wolfe condition이 pkp_k가 descent direction임을 보장해주지 않는다. 이 문제를 해결한 버전이 PR+ 이다.

βk+1+=max{βk+1PR,0}\beta^+_{k+1}=\max \{\beta^{PR}_{k+1}, 0\}

Hestenes-Stiefel 도 ff가 strongly convex quadratic이고 line search가 exact할 때 FR과 동일하다.

βk+1HS=fk+1T(fk+1fk)(fk+1fk)Tpk\beta^{HS}_{k+1}=\frac{\nabla f^T_{k+1}(\nabla f_{k+1}-\nabla f_k)}{(\nabla f_{k+1}-\nabla f_k)^Tp_k}

HS는 연속된 search direction들이 line segment [xk,xk+1][x_{k}, x_{k+1}]의 average Hessian에 대해 conjuagte 하도록 만드는 것에서 유도됐다. Average Hessian은

Gˉk=01[2f(xk+ταkpk)]dτ\bar{G}_k=\int^1_0 [\nabla^2 f(x_{k}+\tau \alpha_kp_k)]d\tau

Taylor’s theorem에 의하면 fk+1=fk+αkGˉkpk\nabla f_{k+1}=\nabla f_k +\alpha_{k}\bar{G}_kp_k 인데 pk+1=fk+1+βk+1pkp_{k+1}=-\nabla f_{k+1}+\beta_{k+1}p_k 꼴로 표현되는 어느 direction이든, pk+1TGˉkpk=0p^T_{k+1}\bar{G}_kp_k=0 조건을 달면 βk+1\beta_{k+1}이 HS의 꼴이 되어야 한다.

나중에 보게되겠지만, 모든 k2k\geq 2에 대해

βkβkFR|\beta_k|\leq \beta^{FR}_k

를 만족하는 모든 βk\beta_{k}는 global convergence를 보장한다. 이 성질을 이용하기 위해 PR을 수정하면

βk={βkFRif βkPR<βkFRβkPRif βkPRβkFRβkFRif βkPR>βkFR\beta_k=\begin{cases} -\beta^{FR}_k\quad \text{if }\beta^{PR}_k <-\beta^{FR}_k \\ \beta^{PR}_k \quad \text{if } |\beta^{PR}_k|\leq \beta^{FR}_k \\ \beta^{FR}_k \quad \text{if } \beta^{PR}_k > \beta^{FR}_k\end{cases}

이를 FR-PR이라 한다.

최근에 (이라지만 각각 1999년A nonlinear conjugate gradient method with a strong global convergence property, 2005년A new conjugate gradient method with guaranteed descent and an efficient line search이다. 아무래도 CG가 1950년대 나와서 상대적 최근인듯) 나온 방식 두개가 있는데 PR과 견줄만하다 한다.

1999년 방식

βk+1=fk+12(fk+1fk)Tpk\beta_{k+1}=\frac{\|\nabla f_{k+1}\|^2}{(\nabla f_{k+1}-\nabla f_k)^Tp_k}

2005년 방식

βk+1=(y^k2pky^k2y^kTpk)Tfk+1y^kTpkwithy^k=fk+1fk\beta_{k+1}=\left(\hat{y}_k - 2p_k\frac{\|\hat{y}_k\|^2}{\hat{y}_k^T p_k} \right)^T \frac{\nabla f_{k+1}}{\hat{y}_k^T p_k} \quad \text{with}\quad \hat{y}_k=\nabla f_{k+1}-\nabla f_k

Quadratic Termination and Restarts

Restart 라는 방식은 nn step 마다 βk=0\beta_k=0으로 설정해서 steepest descent step을 택하고 nonlinear conjugate gradient를 재시작하는 방식이다. f가 solution의 neighborhood에서 strongly convex quadratic하지만 다른 곳에선 nonquadratic하다고 가정하면, solution에 다가가다가 strongly convex quadratic 한 region에서 nonlinear CG를 재시작할 것이고, 그렇게 되면 linear CG처럼 동작하고 quadratic하게 converge 할 것이다. 다시말해,

xk+nx=O(xkx2)\|x_{k+n}-x\|=O(\|x_k-x^\ast\|^2)

그런데 CG는 일반적으로 nn이 클 때 사용하는데 그런 경우 restart는 현실적으로 불가능하다. 그래서 일반적으로 restarts를 안하거나 consecutive gradient가 orthogonal에서 많이 벗어났는지 확인하고 결정한다. 일반적으로 v=0.1v=0.1로 설정하고

fkTfk1fk2v\frac{|\nabla f^T_k \nabla f_{k-1}|}{\| \nabla f_k\|^2} \geq v

Fletcher-Reeves Method 분석

아까 증명없이 언급했던 global convergence에 대해 얘기해보자.

Lemma 5.6

Strong Wolfe condition이 0<c2<120<c_2<\frac{1}{2}로 만족하도록 하는 step length αk\alpha_k로 Fletcher-Reeves 알고리즘이 구현됐다고 가정하자. FR은 다음의 부등식을 만족하는 descent direction pkp_k를 만든다.

11c2fkTpkfk22c211c2,k=0,1,-\frac{1}{1-c_2}\leq \frac{\nabla f^T_k p_k}{\| \nabla f_k\|^2} \leq \frac{2c_2-1}{1-c_2}, \forall k=0,1,\dots
  • 증명

    t(ξ)=(2ξ1)/(1ξ)t(\xi)=(2\xi-1)/(1-\xi)[0,12][0,\frac{1}{2}]에서 단조증가하고 t(0)=1t(0)=-1, t(12)=0t(\frac{1}{2})=0이라고 하자. c2(0,12)c_2\in(0, \frac{1}{2})니까

    1<2c211c2<0-1<\frac{2c_2-1}{1-c_2}<0

    이다. 따라서 descent condition fkTpk<0\nabla f^T_kp_k<0이 성립한다.

    귀납적으로 증명하자. k=0k=0에 대해서 steepest descent일 테니 fkTpk=1\nabla f^T_k p_k=-1이고 부등식이 만족한다. 이제 kk에 대해서 부등식이 만족한다 가정하면 k+1k+1에 대해서

    fk+1Tpk+1fk+12=1+βk+1fk+1Tpkfk+12=1+fk+1Tpkfk2\frac{\nabla f^T_{k+1}p_{k+1}}{\|\nabla f_{k+1}\|^2}= -1 + \beta_{k+1}\frac{\nabla f^T_{k+1}p_{k}}{\|\nabla f_{k+1}\|^2}= -1 + \frac{\nabla f^T_{k+1}p_{k}}{\|\nabla f_{k}\|^2}

    인데, Wolfe condition에 의해

    fk+1Tpkc2fkTpk|\nabla f^T_{k+1}p_k|\leq -c_2 \nabla f^T_k p_k

    이니 잘 합치면

    1+c2fkTpkfk2fk+1Tpk+1fk+121c2fkTpkfk2-1 + c_2\frac{\nabla f^T_{k}p_{k}}{\|\nabla f_{k}\|^2}\leq \frac{\nabla f^T_{k+1}p_{k+1}}{\|\nabla f_{k+1}\|^2}\leq -1 -c_2 \frac{\nabla f^T_{k}p_{k}}{\|\nabla f_{k}\|^2}

    kk에 대해 부등식이 성립한다 했으니 fkTpkfk2\frac{\nabla f^T_{k}p_{k}}{\|\nabla f_{k}\|^2}를 치환하면

    1c21c2fk+1Tpk+1fk+121+c21c2-1-\frac{c_2}{1-c_2}\leq \frac{\nabla f^T_{k+1}p_{k+1}}{\|\nabla f_{k+1}\|^2} \leq -1+\frac{c_2}{1-c_2}

    따라서 k+1k+1에서도 성립한다.

증명 과정에서 strong Wolfe condition의 한가지 성질만 사용했는데 다른 성질을 이용하면 global convergence도 증명할 수 있다. 우선 여기선 fkTpk\nabla f^T_k p_k의 bound가 step의 norm pk\|p_k\|가 커지는 속도에 제약을 건다는 점을 주목하자.

Lemma 5.6은 FR의 단점도 설명하는데, 한번 direction과 step length가 좋지 못했으면, 다음 step에서도 그럴 가능성이 크다.

cosθk=fkTpkfkpk\cos \theta_k=\frac{-\nabla f^T_k p_k}{\|\nabla f_k\|\|p_k\|}

pkp_k가 좋지 못하다는 것은 descent direction으로부터 멀어져 cosθk0\cos \theta_k \approx 0이라는 것이다. Lemma 5.6의 부등식에 fk/pk\|\nabla f_k \| / \|p_k\|를 곱하면

12c21c2fkpkcosθk11c2fkpk\frac{1-2c_2}{1-c_2}\frac{\|\nabla f_k \| }{ \|p_k\|}\leq \cos \theta_k \leq \frac{1}{1-c_2}\frac{\|\nabla f_k \| }{ \|p_k\|}

이 부등식에 따라 cosθk0\cos \theta_k \approx 0

fkpk\|\nabla f_k\|\ll \|p_k\|

와 동치이다. pkp_k가 gradient와 orthogonal에 가깝다면 step도 작을것이고 xk+1xkx_{k+1}\approx x_k라 한다면 fk+1fk\nabla f_{k+1}\approx \nabla f_{k}일테니

βk+1FR1\beta ^{FR}_{k+1}\approx 1

이 될 것이고, 그렇다면 fk+1fkpk\|\nabla f_{k+1}\| \approx \|\nabla f_{k}\| \ll \|p_k\|라서

pk+1pkp_{k+1}\approx p_k

가 된다. 새로운 search direction도 비슷할 것이다. PR의 경우는 같은 상황에서 βk+1PR0\beta^{PR}_{k+1}\approx 0이 되서 사실상 restart를 하게된다. 앞서 언급한 다른 modification들의 경우도 마찬가지라 이런 문제가 생기지 않는다.

Global Convergence

우선 논의를 위해 objective function이 다음의 성질들을 가진다고 가정하자.

  1. Level set L={xf(x)f(x0)}\mathcal{L}=\{x|f(x)\leq f(x_0)\}이 bounded 되어 있다.
  2. L\mathcal{L}의 어떤 open neighborhood N\mathcal{N}에 대해 objective function ff가 Lipschitz continuously differentiable하다.

가정에 의하면

f(x)γˉ,xL\|\nabla f(x)\|\leq \bar{\gamma}, \forall x \in \mathcal{L}

을 만족하는 상수 γˉ\bar{\gamma}가 존재한다.

Zoutendijk’s theorem에 따라 Wolfe condition을 만족하면

k=0cos2θkfk2<\sum^\infty_{k=0}\cos^2\theta_k \|\nabla f_k\|^2 < \infty

이다. 이 것을 이용하면 주기적으로 restart하는 알고리즘들의 global convergence를 증명할 수 있다. kik_iii번째 재시작할 때의 index라고 하고, 재시작 할때는 steepest direction임을 (따라서 cosθk=1\cos\theta_k=1) 이용하면 limjfkj=0\lim_{j\rarr \infty} \|\nabla f_{k_j}\|=0이므로

lim infkfk=0\liminf_{k\rarr\infty}\|\nabla f_k\|=0

이다.

이제 restart하지 않은 경우를 분석해보자.

Theorem 5.7

앞의 두 가정이 성립하고 FR이 0<c1<c2<120<c_1<c_2<\frac{1}{2}로 strong Wolfe condition을 만족한다 하면,

lim infkfk=0\liminf_{k\rarr \infty} \|\nabla f_k\|=0
  • 증명

    귀류적으로 증명하자. 먼저 충분히 큰 모든 kk에 대해서

    fkγ\|\nabla f_k\|\geq \gamma

    를 만족하는 γ>0\gamma>0이 존재한다고 가정하자. Lemma 5.6의 부등식을 Zoutendijk’s condition에 대입하면

    k=0fk4pk2<\sum^\infty_{k=0}\frac{\|\nabla f_k\|^4}{\|p_k\|^2}<\infty

    Wolfe condition과 Lemma 5.6의 부등식에 의해

    fkTpk1c2fk1Tpk1c21c2fk12|\nabla f^T_{k}p_{k-1}|\leq -c_2\nabla f^T_{k-1}p_{k-1}\leq \frac{c_2}{1-c_2}\|\nabla f_{k-1}\|^2

    FR 알고리즘의 계산에 의해 (일부 과정 생략)

    pk2(1+c21c2)fk2+(βkFR)2pk12\|p_k\|^2\leq \left(\frac{1+c_2}{1-c_2}\right)\|\nabla f_k\|^2+(\beta^{FR}_k)^2\|p_{k-1}\|^2

    이 부등식을 반복해서 적용하고 c3=(1+c2)/(1c2)1c_3=(1+c_2)/(1-c_2)\geq 1로 정의하면

    pk2c3fk4j=0kfj2\|p_k\|^2\leq c_3\|\nabla f_k\|^4 \sum^k_{j=0}\|\nabla f_j\|^{-2}

    이다. Assumtion에 의한 bound와 귀류법을 위해 만든 가정에 의해

    pk2c3γˉ4γ2k\|p_k\|^2\leq \frac{c_3 \bar{\gamma}^4}{\gamma^2}k

    이기 때문에, positive 상수 γ4\gamma_4에 대해

    k=11pk2γ4k=11k\sum^\infty_{k=1}\frac{1}{\|p_k\|^2}\geq \gamma_4 \sum^\infty_{k=1}\frac{1}{k}

    이다. 그런데

    k=11pk2<\sum^\infty_{k=1}\frac{1}{\|p_k\|^2}<\infty

    이므로

    k=11k<\sum^\infty_{k=1}\frac{1}{k}<\infty

    여야 한다. 이는 사실이 아니므로 모순이다.

일반적인 (nonconvex까지) 함수의 경우에는 Theorem 5.7같은 증명이 불가능하다. PR이 FR보다 잘 동작한다는 점을 생각해봤을 때 이는 다소 충격적이다. 다음 theorem은 ideal line search인 경우에도 PR이 solution point에 다가가지 못하고 영원히 cycle 돌수도 있음을 보여준다.

Theorem 5.8

Ideal line search를 사용하는 PR을 생각해보자. Gradient의 sequence {fk}\{\|\nabla f_k\|\}이 0으로부터 bounded away 되도록 만드는 twice continuously differentiable한 function f:R3Rf:\mathbb{R}^3\rarr \mathbb{R}과 시작점 x0R3x_0\in\mathbb{R}^3이 존재한다.

PR+를 이용하면 Theorem 5.8의 문제를 피할 수 있고 global convergence가 증명 가능하다고 한다.

0개의 댓글