CS/딥러닝

[딥러닝] 6. 최적화

CSE 2026. 4. 13. 09:04

 

 

Exponentially weighted averages

$v_t = \beta v_{t-1}  + (1-\beta) \theta_t$

이전 값과 새로운 값을 일정 비율로 섞는 방법을 얘기한다.

여기서 \beta의 값에 따라 총 $1/(1-\beta)$개의 개수의 값을 평균내었다고 얘기할 수 있다.

 

아래 그림에서 빨간 선은 \beta가 0.9,

초록 선은 \beta=0.98

노란 선은 \beta=0.5일 때의 보습을 보여준것이다.

 

 

$t=2$일 때를 잠시 생각해보자.

위 식에서 보이듯이 초기화를 0으로 하기 때문에, $t$가 작다면 실제값과 $v_t$가 다르게 나오게 된다.

예들 들면 $\beta=0.98$일 때, $v_t$는 $0.0196\theta_1 + 0.02 \theta_2$로 실제값보다 많이 작아지게된다.

$t$가 커지면 점차 문제는 사라지지만 이를 보정해주기 위해 $v_t$를 아래와 같이 변환해 최종 값을 얻는다.

 


Optimizing Algorithms

널리 사용되는 최적화 알고리즘들로 아래의 것들이 있다.

1. Gradient descent with momentum

2. RMSProp
3. ADAM

 


1. Gradient descent with momentum

이전에는 한 지점에서 gradient를 구하고 해당방향으로 조금 움직이고 그 자리에서 다시 판단하는 과정을 반복했었다.

위의 방법을 여기에 적용해 이전 변화량의 일부를 취하는 방법이다.

 

2. RMSProp

Root Mean Square Propagation의 약자이다.

gradient를 제곱해서 평균을 내고 그 크기로 나눠 값을 조정한다.

장점은 gradient의 크기가 크다면 속도를 줄여주고,

작다면 속도를 높여준다는 것이다.

 

 

3.ADAM

많은 논문들에서 사용하는 옵티마이저이다.

위 두 방법의 장점을 합쳤다.

여기에 위에서 얘기했던 보정까지 적용된다.

$\epsilon$은 분모가 0이 되지 않도록 추가해준 항이다.


Learning Rate

인공지능 공부를 하다보면 epoch라는 단위를 많이 보게된다.

이는 전체 데이터를 한번 학습에 사용하는 것을 의미한다.

epoch를 몇 번 돌린건지에 따라 learning rate, 학습률을 정하는 방법이 있다.

학습이 진행될수록 정교하게 파라미터를 조정해야하기 때문에 이 학습률은 학습이 진행되며 점차 감소하는게 좋다.

위처럼 계산하는 방법도 있고, 아래처럼 계산하는 방법도 있다.

방법은 매우 다양한데, 사람이 임의적으로 몇번 째부터는 어떤 값을 사용하자라고 정할 수도 있다.


Hyperparameters

위에서 본 $\beta$나 $\alpha$는 학습이 진행되면서 알앙서 학습되는 숫자들이 아니다.

사람이 미리 훈련 전에 값이나 바뀔 방법을 직접 설정해야한다.

이런 변수들을 hyper parameter라고 한다.