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

[Continuous Optimization] Continuous Optimization이란 무엇인가?

by stevenkim_ 2023. 6. 6.

머신러닝 모델을 학습시키는 과정은 주로 "좋은" Parameter의 집합을 찾는 과정이라고 할 수 있다.

이때 "좋은"의 기준은 Objective function(목적함수)나 확률적 모델에 따라 결정된다.

Objective function이 주어졌을 때, 가장 좋은 값을 찾는 것이 Optimization Algorithm이 하는 일이다.


 

1. 대략적인 최적화 과정 소개 Overview of the optimization process

대략적인 Optimization 과정에 대해 소개한다.

 

  • 목적함수는 parameter을 이용해 직접 설정한다.
  • 다음의 목적함수 fw(x)는 parameter = ( w1, w2, w3 )로 이루어져 있다.

 

  • 내가 가진 데이터를 가장 잘 나타내는 함수/Polynomial을 찾기 위해 MSE라 불리는 다음 수식을 최소화한다.

 

  • 따라서 objective function의 parameter = ( w1, w1, w3 )을 조정해 위를 최소화하는 w를 찾는 것이 Optimize 과정이라고 할 수 있다.

 

 

상세한 내용은 추후에 다른 챕터에서 다룬다.

 


 

2. Global minimum과 Local minimum

  • Global minimum: 실제 찾고자 하는 최소 지점 (최솟값)
  • Local minimum: 해당 지역 주변에서는 최솟값에 해당하지만, 전체에서 최소가 아닌 지점 (극솟값)

 

x = -4.5에서 Global minimum값 -47을 가지는 목적함수 l(x)가 다음과 같이 있다고 하자.

위 목적함수 l(x)는 x = 0.7에서 local minimum을 갖는다.

 

이처럼 미분 = 0을 만족하는 x값을 찾으면 Local maximum 또는 Local minimum이 나오므로, 이 값들을 하나씩 비교하여 우리가 찾고자 하는 Global minimum을 찾을 수 있다.

 

위의 경우처럼 parameter의 개수가 크지 않아 목적함수의 차수가 높지 않을 때는 하나씩 비교를 통해 Global minimum을 구할 수 있을 것이다.

하지만, parameter 개수가 크게 늘어 목적함수의 차수가 커졌을 때, 값을 하나씩 직접 대입하여 minimum을 찾는 것은 매우 어렵다.

 


 

3. Use Gradient!

 

  • Q. Minimum을 찾을 때, 미분 = 0을 이용하는 방식 말고 다른 방식은 없을까?
  • A. Gradient를 이용하면 가능하다.

우리는 Global "minimum" 즉 최솟값을 찾는 것을 목표한다.

 

함수에서 gradient(기울기)를 구하면, x의 방향을 보여준다.

우리는 minimum을 찾고 싶기 때문에, slope가 "내려가는" 방향을 따라 이동할 것이다.

 

이렇게 gradient를 구해 slope가 내려가는 방향을 타고 가다가 더 이상 내려갈 곳이 없는 부분을 찾는다면, 이 부분이 미분 = 0이 성립하는 minimum 지점이 될 것이다.

 

이후에 다룰 Gradient Descent (경사하강법) 개념은 이 개념을 이용한다.