"모바일 앱 환경에서는 latex이 깨져서 나타나므로, 가급적 웹으로 봐주시길 바랍니다."
지난 포스팅에서는 gradient descent, stochastic gradient descent, Mini-batch gradient descent에 대해서 이야기를 진행하였고, 오늘은 이 알고리즘이 실제로 optimal point로 수렴하는지, 그리고 그 속도는 어떻게 되는지를 수식으로 살펴보고자 한다.
먼저 Gradient descent부터 시작하자.
<Theorem 1>
Objective function f가 convex하고 β-smooth하다고 가정하자.
그리고 (xt)t≥0이 Gradient descent iteration에 의해 생성되는 sequence라고 하고 step-size는 0≤η≤1β이라고 하자. 그러면 x∗∈argminf(x)에 대하여 다음을 만족한다.

위 Theorem 1을 바꿔 이야기하면 iteration number t에 대해 오차 (f(xt)−inff)가 O(1t)의 속도로 감소한다는 의미이고, 또 어떤 작은 양수 ϵ에 대하여, f(xT)−inff≤ϵ을 만족하기 위해서는, 최대 T≤βϵ‖x0−x∗‖22를 만족해야 한다고 표현할 수 있다.
다음은 Stochastic Gradient desecent이다.
GD에서 SGD의 convergence rate으로 넘어가기 전에 f(x):=1n∑ni=1fi(x)라 하자.
이 챕터에서 주로 다루는 것은 convex한 상황이므로, fi가 convex하다고 가정할 것이다. 그러면 f(x)는 Sum of convex function이다. 또한 각각의 fi가 L-smooth하다고 하자. 그렇다면 Lmax:=max1,⋯,nLi가 존재할 것이고, Lavg:=1n∑ni=1Li가 존재할 것이다.
그러면 다음이 성립하고 이는 smoothness의 성질과 삼각부등식으로 쉽게 증명할 수 있다.
<Lemma 1>
fi가 L-smooth하다면, f는 Lavg-smooth하다.
<Lemma 2>
fi가 L-smooth하다면, f는 Lmax-smooth (in expecation sense)하다.
다음은 gradient noise (variance)에 대한 가정이다. 역시나 Lemma2가 성립하는 상황에서는 아래와 같은 Variance 가정을 할 수 있다.
<Lemma 3>
E[‖∇fi(x)‖2]≤4Lmax(f(x)−inff)+2σ∗.
여기서 σ∗는 infV[∇fi(x∗)]이다.
자, 이제 SGD의 convergence rate을 유도하자.
<Theorem 2>
Lemma 2, Lemma 3이 성립하고, 0<η<12Lmax라 하자.

여기서 결국 중요한 영향을 미치는 요소는 step-size이다. 즉, ∑t−1k=0ηk가 속도에 영향을 미치면서 우리가 실질적으로 컨트롤할 수 있는 요소인데, 문제는 두 항에서 왼쪽에는 분모에 term이 들어가 있고, 오른쪽에는 분자/분모 모두에 term이 들어가 있다는 점이다. t에 대해서 위 upper bound가 결국 줄어들게 하기 위해서는 다음과 같은 가정이 필요하다.
<Step-size assumption> (A.K.A. Robbins-Monro condition)
1. ∑∞k=0ηk=∞
2. ∑∞k=0η2k<∞
자, 이것이 의미하는 바는 무엇일까?
1번 조건, 즉 step-size의 무한 급수가 발산한다는 조건은 step-size가 constant, diminish form (1tα)인 상황에서 성립한다. 여기서 α의 조건은 σ∗에 따라서 달라지는데, 이를 좀 더 자세히 살펴보자.
두 번째 term에서 σ∗=0이라면, 첫 번째 term에 의해서만 convergence rate이 영향을 받으므로, constant step size 상황에서는 O(1t의 rate을 갖게 된다.
만약 step-size가 1tα로 감소하는 상황이라면, convergence rate은 O(1t1−α)가 된다.
즉, σ∗=0이라면, SGD는 GD와 비슷한 속도의 성능을 가지게 된다.
하지만 만약 σ∗가 0이 아니라면, 우측의 ∑t−1k=0η2k∑t−1k=0ηk에 의해 convergence rate이 영향을 받게 된다.
그렇다면 우리는 ηt가 최대한 천천히 감소하여서 분모는 충분히 큰 동시에 ηt가 최대한 빠르게 감소해서 분자는 최대한 작게 되기를 바랄 것이다.
여기서 일종의 trade-off가 발생하게 된다.
만약 step-size가 constant라면, 우리의 이 바램이 충족되지 않으므로, step size는 감소해야 한다.
그래서 두 번째 조건 step-size의 제곱의 무한급수는 수렴한다는 조건이 필요하게 된다.
만약 ηt=1tα라면, 0<α≤12에 대해서 O(1tα)가 되고, 12≤α<1에 대해서는 O(1t1−α)가 된다. 즉, 최고의 α값은 12이다.
즉, convergence rate이 1√t가 된다.
이것이 가장 convex, smooth한 상황에서 GD와 SGD의 가장 일반적인 결과이다.
다음은 SGD의 stochasticity (=noise) 때문에 우리는 step-size를 점점 줄여나가야 하고, 이 때문에 convergence rate의 감소가 발생하는데 이를 해결하기 위해 나온 method에 대해 이야기해보고자 한다.
** 본 글은 Guillaume Garrigos et al. "Handbook of Convergence Theorems for gradient methods" (arXiv 2023)을 참고하였습니다.
'Deep dive into Optimization' 카테고리의 다른 글
Deep dive into Optimization : Momentum(2) - Updated (0) | 2023.04.04 |
---|---|
Deep dive into optimization : Momentum (1) - Updated (0) | 2023.03.30 |
Deep dive into optimization : Gradient descent - Updated (0) | 2023.03.20 |
Deep dive into optimization: Gradient descent - Updated (0) | 2023.03.16 |
Deep dive into optimization: Convexity - Updated (0) | 2023.03.11 |
댓글