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라고 한다.

'CS > 딥러닝' 카테고리의 다른 글
| [딥러닝] 5. Mini batch와 Batch Normalization (0) | 2026.04.01 |
|---|---|
| [딥러닝] 4. Deep Neural Network (0) | 2026.03.30 |
| [딥러닝] 3. multi layer network에서의 gradient 계산과 차원 (0) | 2026.03.25 |
| [딥러닝] 2. Shallow Neural Network / Activation function (0) | 2026.03.19 |
| [딥러닝] 1. Logistic Regression (3) | 2026.03.11 |