Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
  • Deep dive into Learning
  • Deep dive into Optimization
  • Deep dive into Deep Learning
Deep dive into Optimization

Deep dive into optimization: Gradient descent (3) - Updated

by Sapiens_Nam 2023. 3. 23.

 

"모바일 앱 환경에서는 latex이 깨져서 나타나므로, 가급적 웹으로 봐주시길 바랍니다."

 

지난 포스팅에서는 gradient descent, stochastic gradient descent, Mini-batch gradient descent에 대해서 이야기를 진행하였고, 오늘은 이 알고리즘이 실제로 optimal point로 수렴하는지, 그리고 그 속도는 어떻게 되는지를 수식으로 살펴보고자 한다.

 

먼저 Gradient descent부터 시작하자.

 

<Theorem 1>

Objective function f가 convex하고 β-smooth하다고 가정하자.

그리고 (xt)t0이 Gradient descent iteration에 의해 생성되는 sequence라고 하고 step-size는 0η1β이라고 하자. 그러면 xargminf(x)에 대하여 다음을 만족한다.

 

위 Theorem 1을 바꿔 이야기하면 iteration number t에 대해 오차 (f(xt)inff)가 O(1t)의 속도로 감소한다는 의미이고, 또 어떤 작은 양수 ϵ에 대하여, f(xT)inffϵ을 만족하기 위해서는, 최대 Tβϵx0x22를 만족해야 한다고 표현할 수 있다.

 

다음은 Stochastic Gradient desecent이다.

GD에서 SGD의 convergence rate으로 넘어가기 전에 f(x):=1nni=1fi(x)라 하자.

이 챕터에서 주로 다루는 것은 convex한 상황이므로, fi가 convex하다고 가정할 것이다. 그러면 f(x)는 Sum of convex function이다. 또한 각각의 fiL-smooth하다고 하자. 그렇다면 Lmax:=max1,,nLi가 존재할 것이고, Lavg:=1nni=1Li가 존재할 것이다.

그러면 다음이 성립하고 이는 smoothness의 성질과 삼각부등식으로 쉽게 증명할 수 있다.

 

<Lemma 1>

fi가 L-smooth하다면, fLavg-smooth하다.

 

<Lemma 2>

fi가 L-smooth하다면, fLmax-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이다. 즉, t1k=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이 아니라면, 우측의 t1k=0η2kt1k=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이 1t가 된다. 

 

이것이 가장 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)을 참고하였습니다.

728x90