github.com/rkm0959/rkm0959_implements/tree/main/Chebyshev%20Acceleration
매우 최근에 올라온 Acceleration에 대한 Survey Paper arxiv.org/abs/2101.09545을 읽는다. 이 글은 2장을 정리한다.
일단은 관심가는 부분만 읽을 예정인데, 아마 3장을 제일 마지막에 읽을 것 같다. 사전지식이 부족한 경우 이 자료 참고.
Acceleration Survey Paper + OSPEP + Proximal Algorithms Survey Paper 이렇게 읽으면 지식이 좀 쌓이지 않을까 생각중이다..
모든 정리의 번호는 Survey Paper와 같은 번호를 사용한다. 단순히 정리 블로그니까 논문 표현을 그대로 가져다 쓰는 일도 많을 것이다.
이 글에서는 unconstrained quadratic minimization 문제, 즉 f(x)=12xTHx−bTx를 최소화하는 문제를 다룬다. 물론 H는 symmetric.
이 문제의 optimal point는 x∗=H−1b임이 자명하다. 즉, 이 문제는 결국 linear system의 해를 빠르게 구하는 문제와 같다.
보통 이러한 minimization 문제를 만나면, 많은 사람들이 Gradient Descent를 생각할 것이다.
즉, initial point x0와 step-size γ를 잡고, xi+1=xi−γ∇f(xi)를 반복하는 것이다.
이 식을 정리하면 xi+1=(I−γH)xi+γb를 얻고, x∗의 식을 이용하면 xk+1−x∗=(I−γH)(xk−x∗)를 얻는다. 이제 우리의 목표는 I−γH의 matrix norm을 최소화하는 것이다. 우리는 일반적으로 2-norm, 즉 Spectral Norm을 생각한다.
이제 잠시 H로 가능한 행렬의 범위를 좁혀, 적당한 μ,L>0에 대해 μI≤H≤LI가 성립한다고 가정하자.
그러면 우리는 γ를 선택하는 과정에서 worst-case convergence를 최선으로 하기 위해서 maxμI≤H≤LI||I−γH||2를 최소화할 필요가 있다. 이 문제는 결국 max(|1−μγ|,|Lγ−1|)를 최소화하는 것이다. 그러니 γ=2μ+L를 잡을 수 있다.
특히 이 경우 ||I−γH||2≤L−μL+μ=κ−1κ+1이고 (κ=L/μ는 condition number) ||xk−x∗||2≤(κ−1κ+1)k||x0−x∗||2를 얻는다. 이것이 Gradient Descent의 수렴 속도가 되겠다. 이를 더 빠르게 하는 것이 우리의 목표다.
이번에는 조금 더 넓은 class의 알고리즘을 생각해보자. xk+1을 xk에 ∇f(xk)의 상수배를 더한 것만 고려하지 말고, 아예 xk+1∈x0+span{∇f(x0),⋯,∇f(xk)}를 고려하자. 이 경우, 단순한 수학적 귀납법으로 다음을 보일 수 있다.
Proposition 2.1. : 위와 같은 방식으로 xk를 계산한 경우, 다항식 Pk가 있어 deg(Pk)≤k, Pk(0)=1이고 xk−x∗=Pk(H)(x0−x∗) 이제 우리는 앞선 사고방식을 그대로 따라가면 maxμI≤H≤LI||Pk(H)||2를 최소화하고 상수항이 1인 k차 이하 다항식 Pk를 찾아야 한다. 그런데 H가 symmetric이므로, 이 문제는 사실 maxμ≤λ≤L|Pk(λ)|를 최소화하는 것과 같다. 이제 짬이 좀 찬 독자들은 Chebyshev라는 단어가 왜 나왔는지 알 것이다. 저런 문제에서 최적의 다항식이 Chebyshev Polynomial이기 때문이다. 이들은 [−1,1] 위에서 최적이기 때문에, [μ,L]을 [−1,1]로 shift 하는 처리 작업이 필요하다. 즉, t:x→2x−(L+μ)L−μ의 처리를 하자. 또한, Pk(0)=1이라는 조건이 있으니 이것도 처리해야 한다. 결과적으로 우리는 C[μ,L]k(x)=Tk(t(x))Tk(t(0))라는 다항식을 정의할 수 있다. 이제 목표는 xk−x∗=C[μ,L]k(H)(x0−x∗)가 성립하도록 효율적인 iteration을 설계하는 것이다. 이를 위해서는 C[μ,L]k에 대한 점화식이 필수적이다. 결과적으로, δ0=−1,δk=L−μ2(L+μ)−δk−1(L−μ) C[μ,L]0(x)=1,C[μ,L]1(x)=1−2L+μx,C[μ,L]k(x)=2δk(L+μ−2x)L−μC[μ,L]k−1(x)+(1−2δk(L+μ)L−μ)C[μ,L]k−2(x)가 성립함을 보일 수 있다. Chebyshev Polynomial의 점화식을 가지고 열심히 계산하면 될 것으로 예상한다.
이제 이를 xk−x∗=C[μ,H]k(x0−x∗)에 집어넣고 ∇f(xk)=Hxk−b=H(xk−x∗)를 이용하면, iteration xk=2δkL−μ((L+μ)xk−1−2∇f(xk−1))+(1−2δk(L+μ)L−μ)xk−2를 얻는다. 이 iteration에 대해서 몇 가지 고찰을 해보자. 이 식은 xk=xk−1−4δkL−μ∇f(xk−1)+(1−2δk(L+μ)L−μ)(xk−2−xk−1)이라 쓸 수 있다. 결국 Gradient Descent Term (step size는 변화함) + Momentum Term (변화함) 으로 볼 수 있다.
특히, δk의 극한을 취하면 √L−√μ√L+√μ로 수렴함을 알 수 있으며, 이 값을 iteration에 그대로 대입하면 Heavy Ball Method를 얻는다고 한다.
이제 이 새로운 iteration의 수렴 속도를 알아보자. 결국 λ∈[μ,L]에 대하여 |C[μ,L]k(λ)|≤1|Tk(t(0))|이 성립하고, 여기서 ξ=√κ+1√κ−1라 하면 위 식의 우변이 정확하게 2ξk+ξ−k와 같음을 알 수 있다. 그러니 이를 그대로 대입하여 ||xk−x∗||2≤2ξk+ξ−k||x0−x∗||2를 얻는다. 이제 이를 기존의 Gradient Descent와 비교할 일만 남았다. 이를 위해서는 원하는 정확도를 위해서 iteration이 얼마나 필요한지 보면 된다.
Corollary 2.2. : 고정된 μ,L에 대하여, ||xk−x∗||2≤ϵ을 얻기 위하여 필요한 k의 값은
- 기존 Gradient Descent의 경우 k≥2κlog(||x0−x∗||2/ϵ)
- 새로운 Chebyshev Method의 경우 k≥2√κlog(2||x0−x∗||2/ϵ)
그러니 Chebyshev Method의 강력함을 알 수 있다. 특히 κ가 큰 경우 더욱 강력한 힘을 발휘한다.