1. 미니배치 경사하강법(Mini-batch Gradient Descent)
Batch gradient descent에서는 모든 반복에서 전체 훈련세트를 진행하고 각각의 반복마다 비용이 감소하기를 기대한다. 그렇기에 모든 반복마다 감소해야 한다.
Mini Batch gradient descent는 모든 반복마다 감소하지는 않는다. 약간의 노이즈가 발생함. X{1}, Y{1}은 상대적 쉬운 미니배치라 비용이 낮은데 우연적으로 X{2}, Y{2}가 비용이 높은 미니배치일 수 있다.
미니배치 사이즈의 크기에 따라 학습 속도의 차이가 나기에 최적의 값을 찾아야 한다.
- 훈련 세트가 작을 떄(2000개 이하): 모든 훈련세트 한번에 삭습시키는 배치 경사 하강 진행
- 훈련세트가 클 때: 64,138,356,512와 같은 2의 제곱수 사용
2. 지수 가중 이동 평균(Exponentially Weighted Average)
얼마의 기간이 이동하며 평균이 구해졌나에 대한 질문은
B = (1 - ε)일 떄 (1- ε)^n = 1/e를 만족하는 n이 그 기간이 되는데 보통 1/ ε로 구할 수 있다.
실제로 구현 시 V0 = 0으로 초기화 하고 하나의 변수만 사용하면 되기에 지수 가중 이동 평균은 구현 시 아주 작은 메모리 사용한다.
3. Momentum 최적화 알고리즘
즉, 수평 방향으로는 학습이 빠르게 진행하고, 수직 방향으로는 학습이 느리게 진행해야 한다.
다음과 같은 모멘텀 최적화 알고리즘을 사용하면 B에 의해 마찰을 제한해 공이 너무 빨라지지 않게 제한하고, dw(db)로 가속을 부여해 더 빠르게 내려가게 한다.
따라서 수직 방향으로는 작은 진동을 하고, 수평 방향으로는 더 빠르게 움직이도록 한다.
Hyperparameter: α, β
4. RMSprop(Root means square prop) 최적화 알고리즘
수직 방향으로는 느리게(b), 수평 방향으로는 빠르게 업데이트하길 원한다.
그렇기에 SdW는 상대적으로 작고, Sdb는 상대적으로 크게 해서 업데이트 해야한다.
(그렇게 해야 w:=w−α√SdW+ϵdW 여기서 W가 크게 업데이트 된다)
db가 애초에 dw보다 상대적으로 크다(등고선에 의해)
더 큰 숫자로 나눠 수직 방향에서 업데이트하기 때문에 진동을 줄이는데 도움이 된다.
수평방향에서는 작은 숫자로 나눈다.
효과는 큰 학습률을 사용해 빠르게 학습하고 수직 방향으로 발산하지 않는다.
4.
5. Adam(Adaptive moment estimation) 최적화 알고리즘
Adam = Momentum + RMSProp
6. Learning rate decay(학습률 감쇠)
작은 미니배치 일수록 Noise가 심해 일정한 학습률이라면 최적값에 수렴하기 어려울 수 있다.
이때 학습률 감쇠 기법을 사용해 학습률을 점점 작게 주어 최적값을 더 빨리 찾도록 한다.
해당 내용은 네이버 부스트코스 Andrew NG의 딥러닝 2단계: 심층 신경망 성능 향상시키기를 바탕으로 작성된 글입니다.