Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Today
Yesterday

Total
04-27 00:00
관리 메뉴

Hey Tech

[Deep Learning] 최적화(Optimizer): (1) Momentum 본문

AI & 빅데이터/머신러닝·딥러닝

[Deep Learning] 최적화(Optimizer): (1) Momentum

Tony Park 2022. 5. 17. 11:22
728x90
반응형

본 포스팅에서는 딥러닝 최적화(optimizer) 기법 중 하나인 Momentum의 개념에 대해 알아봅니다. 먼저, Momentum 기법이 제안된 배경인 경사 하강법(Gradient Descent)의 한계점에 대해 다루고 알아보도록 하겠습니다.

📚 목차

1.  경사 하강법의 한계
    1.1.  Local Minimum 문제
    1.2.  Saddle Point 문제
2.  Momentum
    2.1.  개념
    2.2.  수식

1.  경사 하강법의 한계

경사 하강법(Gradient Descent)은 크게 2가지 한계점이 있습니다. 첫째, Local Minimum에 빠지기 쉽다는 점. 둘째, 안장점(Saddle point)를 벗어나지 못한다는 점. 각각에 대해 알아봅니다.

1.1.  Local Minimum 문제

경사 하강법은 비볼록 함수의 경우, 파라미터의 초기 시작 위치에 따라 최적의 값이 달라진다는 한계가 있습니다. 그 이유에 대해 알아봅니다. 함수의 형태는 크게 볼록 함수(Convex function)와 비 볼록 함수(Non-convex function)로 나눌 수 있습니다.

1) 볼록 함수

아래 그림 1과 같이 아래 또는 위로 볼록한 함수를 볼록 함수라고 부릅니다. 이러한 볼록 함수는 초기 파라미터 값이 어떻게 설정되어도 경사 하강법을 활용하면 최적의 값에 도달할 수 있습니다. 다만, 현실에서는 대부분의 함수는 비볼록 함수 형태입니다.

그림 1. 볼록 함수 예시

2) 비볼록 함수

아래 그림 2와 같은 비볼록 함수는 경사 하강법 사용 시 파라미터 값의 시작 위치에 따라 최적의 값이 달라진다는 한계가 있습니다. 즉, Local Minimum에 빠질 수 있고 심지어는 최적의 값이라고 판단한 값이 Global minimum인지, Local minimum인지 구분할 수 없다는 한계가 있습니다.

그림 2. 비볼록 함수 예시

아래의 그림 3과 같이 Global Minimum은 목표 함수 그래프 전체를 고려했을 때 최솟값을 의미하고, Local minimum은 그래프 내 일부만 고려했을 때 최솟값을 의미합니다. 즉, 경사 하강법으로 최적의 값인 줄 알았던 값이 Global minimum보다 큰 경우를 Local minimum이라고 할 수 있습니다.

그림 3. Global minimum과 Local minimum

1.2.  Saddle Point 문제

경사 하강법의 두 번째 한계점은 안장점(Saddle Point)을 벗어나지 못한다는 것입니다. 아래의 그림 4에 검정색 점이 안장점입니다. 말(horse)의 안장과 비슷한 모양 위에 있는 점이라 안장점이라고 이름 붙여졌다고 합니다. 안장점은 기울기가 \(0\)이지만 극값이 아닌 지점을 의미합니다. 아래 그림 4와 같이, A-B 사이에서 검은색 점은 최솟값이지만, C-D 사이에서 검은색 점은 최댓값입니다. 따라서 해당 지점은 미분이 \(0\)이지만 극값을 가질 수 없습니다. 경사 하강법은 미분이 \(0\)일 경우 더이상 파라미터를 업데이트하지 않기 때문에, 이러한 안장점을 벗어나지 못하는 한계가 있습니다.

그림 4. Saddle Point

2.  Momentum

본 포스팅에서는 경사하강법의 여러 한계점을 개선할 수 있는 심화 최적화 기법 중 하나인 Momentum(관성)에 대해 알아봅니다.

2.1.  개념

Momentum의 사전적 정의는 외부에서 힘을 받지 않는 한 정지해 있거나 운동 상태를 지속하려는 성질입니다. 예를 들어, 경사진 곳에서 돌을 굴리면 계속해서 아래로 굴러가려는 성질입니다. 이러한 성질을 활용하여 고안된 Momentum은 경사 하강법으로 이동할 때 관성을 부여하는 최적화 기법입니다(아래 그림 5 참고). 여기서 \(f\)는 목표함수를 의미합니다.

그림 5. Momentum

즉, Momentum은 이전에 이동했던 방향을 기억하면서 이전 기울기의 크기를 고려하여 어느 정도 추가로 이동시킵니다. 위의 그림 5와 같이, 좌측에서부터 경사하강법으로 손실 함수를 줄여나가다가 Local Minimum에 빠질 수 있는 상황에서 momentum 기법을 사용하면 이전 기울기의 크기를 고려해 추가로 이동하기 때문에 이를 빠져나갈 수 있습니다. 이후 그림 5에서 Global Minimum이라고 표시한 지점에 도달했을 때는 추가적인 관성을 받아도 더 올라갈 수 없기 때문에 이 지점이 Global Minimum이 됩니다. 이처럼 Momentum은 Local Minimum에 빠지는 경우를 대처할 수 있다는 특징이 있습니다.

2.2.  수식

Momentum을 수식으로 나타내면 아래와 같습니다.

 

$$ v_{t} = \gamma v_{t-1} + \eta \nabla f(x_{t-1}) $$

 

  • \(v_{t}\): \(t\)번째 time step에서 \(x\)의 이동 벡터
  • \(\gamma\): 관성계수(momentum term) \(\approx\) 0.9
  • \(\eta\): 학습률(Learning rate)

\(t\)번째 이동 벡터(\(v_{t}\))는 이전 time step에서의 이동 벡터(\(v_{t-1}\))과 관성 계수를 곱한 값에서 학습률(\(eta\))과 (\(t-1\))번째 \(x\)의 Gradient 값을 더하여 구할 수 있습니다. 관성 계수는 \(1\)보다 작은 약 \(0.9\)로 일반적으로 설정합니다. 여기서 학습률이란 어떤 비율만큼 파라미터를 업데이트할지를 결정하는 값으로 0과 1 사이의 값을 가지며, 사용자가 직접 설정해야 하는 하이퍼파라미터(hyper-parameter)입니다. 즉, 학습률이 작을수록 촘촘하게 파라미터를 변화시키며 모델을 학습시킬 수 있지만 그만큼 학습 시 시간이 오래 걸립니다. 반면, 학습률이 너무 클 경우 손실 함수 그래프 자체를 벗어나는 경우가 생길 수 있기 때문에 적절한 학습률을 선택하는 것이 중요합니다.

 

$$ x_{t} = x_{t-1} - v_{t} $$

 

즉, \(t\)번째 \(x\) 값은 \((t-1)\)번째 \(x\) 값에서 \(t\)번째 이동 벡터를 뺀 값으로 계산할 수 있습니다. 이처럼 Momentum은 이동 벡터를 활용하여 이전 step에서의 기울기를 고려한 알고리즘입니다. 다음 포스팅에서는 AdaGrad, RMSprop, Adam과 같은 다른 여러 심화 최적화 기법을 다루도록 하겠습니다.

📚참고할 만한 포스팅

1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam

 


포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.
그럼 오늘도 멋진 하루 만드시길 바랍니다 :)
고맙습니다😊

728x90
반응형
Comments