본문 바로가기
수학(Mathematics)/미적분학(Calculus)

[Continuous Optimization] 경사하강법 최적화 (Optimizing Using Gradient Descent)

by stevenkim_ 2023. 6. 6.

이번 챕터에서는 아래와 같이 실수 값을 가지는 Objective funtion의 minimum 값을 찾는 optimization 문제를 다룬다.

우리는 주로 error을 objective funtion f(x)로 가정하고, f(x)를 최소화 하는 x값을 찾는다.


 

1. 경사하강법 최적화 Optimizing Using Gradient Descent

 

이때 f(x)의 차원은 아래와 같고, 미분 가능(differentiable)하며, 수리적으로 최적해를 바로 찾을 수 없는 함수(unable to analytically find a solution in closed form)이라고 하자.

불연속이거나 미분이 불가능한 f(x)는 gradient가 발생하지 않기 때문이다.

사실 나중에 differentiable하지 않아도 gradient descent가 가능한 subgradient라는 방법을 배우지만, 일단은 differentiable 하지 않으면 gradient descent 불가능이라고 생각하자.

이  경우에 gradient descent(경사하강법)은 가장 첫번째로 고려되어야 할 최적화 알고리즘이다. slope가 내려가는 방향을 따라 point를 이동시켜 local minimum을 찾는 것이다. 더 이상 주변에 값이 감소하는 지점이 없으면 그 지점을 Local minimum이라 판단한다.

 

Gradient descent를 할 때는 gradient가 음수인 방향 중에서도 가장 경사가 급한(steepest) 쪽으로 잡는다.

 


 

2. Optimizer란 무엇인가

Optimizer란 Optimize를 풀어주는 알고리즘이다.

우리가 Algorithm이나 Method라 부르는 것들은, loss (or cost) function 손실 (혹은 비용) 함수를 최소화하여 reward function 보상 함수를 최대화하는 것이다.

이 Optimizer은 모델의 학습 가능한 parameter에 의해 실현된다.

 


 

2.1. Linear Regression 선형 회귀

 

Linear Regression은 다음 수식으로 나타낼 수 있다.

w hat: loss function l(x)를 minimize하는 값

arg: 그 때의 값은?

min w: l(x)를 최소화하는 w를 찾기

l(w): loss function 손실함수

 

그리고, 이때의 loss function l(w)는 다음과 같다. 시그마 앞에 1/n이 붙기도 한다.

 


 

2.2. Logistic Regression 로지스틱 회귀

 

Logistic Regression을 나타내는 수식은 다음과 같다. l(w)의 시그마 앞에 1/n이 붙기도 한다.

 

이 두가지 Regression은 추후에 자세히 다루도록 하겠다. 우선 지금은 수식만 보고 넘어가자.

 


 

 

3. Gradient Descent 경사하강법

 

Gradient Descent를 optimizer을 통해 표현하면: 

현재의 parameter value가 주어졌을 때, local minimum loss에 도달할 때까지 gradient의 내려가는 방향으로 움직임으로써, loss function을 반복적으로 감소하는 optimizer이다.

 

Graient descent의 opimization problem은 다음과 같다.

 

  1. 초기값 w0를 설정한다. - local minimum에 걸리지 않는 것이 매우 중요하다. 초기값 설정에 의해 방향이 결정되니 잘 설정해야 한다.
  2. t-step 마다 현재의 wt 값에서 l(w)를 타고 조금 움직인다. - 이때 opposite to gradoent at wt (현재의 wt 값에서의 기울기의 반대 방향 = 내려가는 방향)으로, steepest descent 방향으로 움직인다.
  3. 이때 수식은 다음과 같다. 

이때, ⍺는 step size이고, g(wt)는 gradient로 다음과 같다.

 

이 과정은 wt가 convergence (수렴) 할때까지 진행한다.

 

 

수렴 Convergence 내용에 대해선 다음 챕터에서 다룬다.