미니 배치 경사하강법
- 모든 훈련 샘플을 처리하기 전에 경사 하강법이 진행되도록 하면 알고리즘 속도가 빨라진다.
- 미니배치: 작은 훈련 세트
- 새로운 표기법) x^{n} : n번째 미니배치. -> Mini batch t: X^{t}, Y^{t}
- 배치 경사 하강법: 모든 훈련 세트를 동시에 학습
- 미니 배치 경사 하강법: 전체 훈련 세트를 배치로 나누어 학습. t = 1, ... , 5000까지.
(1) X^{t}에 대해 정방향 전파: 벡터화된 코드가 100개의 훈련 샘플 학습을 대신
(2) 비용함수 계산
(3) 가중치 업데이트
-> 경사 하강은 각 배치마다 1번씩
- J^{t} 는 X^{t}, Y^{t} 에 대해 계산된 비용함수
- 배치의 크기는 매개변수
- 두 가지 극단적인 경우: 배치의 크기 = 훈련샘플 전체(m) 인 경우(batch), 배치의 크기 = 1인 경우(stochastic)
- 배치의 크기는 1~m 의 사이의 값인 게 좋다.
- 작은 훈련 세트: 그냥 배치 경사 하강법 사용
- 더 큰 훈련 세트: 전형적인 미니배치 크기는 64~512(2의 배수로)
지수 가중 이동 평균
- 경사 하강법보다 빠른 알고리즘
- v_n+1 = 0.9v_n + 0.1Θ_n
- 공식:
- 베타값이 클수록 곡선이 더 부드러워진다.
- 장점: 메모리 사용량이 적다.
- 편향 보정: 평균을 더 정확하게 계산할 수 있다.
- 첫 번째 값에 vt /(1−βt ) 를 취해서 실제 값과 비슷해지게 한다.
-
Momentum 최적화 알고리즘
- VdW=β1VdW+(1−β1)dW
- w:=w−αVdW
- 매 단계의 경사 하강 정도를 부드럽게 만들어 준다.
- 속도 요소를 추가하여, local minimum에 빠지지 않게 한다.
- 경사 하강법을 빠르게 한다.
RMSProp 최적화 알고리즘
- root mean square pro
- SdW=β2SdW+(1−β2)dW2
- w:=w−α√SdW+ϵdW
- dW2: 요소별 제곱
- 경사 하강법을 빠르게 한다.
- 미분값이 큰 곳에서는 업데이트 시 큰 값으로 나눠주기 때문에 기존 학습률보다 작은 값으로 업데이트되어 진동을 줄이는 데에 도움이 된다.
Adam 최적화 알고리즘
- Adaptive moment estimation
- VdW=0,SdW=0 로 초기화 시킵니다.
- Momentum 항: VdW=β1VdW+(1−β1)dW
- RMSProp 항: SdW=β2SdW+(1−β2)dW2
- Bias correction: VdWcorrect=1−β1tVdW,SdWcorrect=1−β2tSdW
- 업데이트: w:=w−α√SdWcorrect+ϵVdWcorrect
- Momentum과 RMSProp을 섞은 알고리즘
학습률 감쇠
- 작은 미니배치에서 노이즈가 심해서 일정한 학습률일 때 최적값에 수렴하기 어려운 경우.
- 학습률을 점점 작게 만들어 최적값을 더 빨리 찾도록 만든다.
- 기법들:
- α=1/(1+decay rate ×epoch num) * )α0
- α=0.95^(epoch num) * α0 (exponential decay 라고 한다.)
- α=k/√(epoch num) * α0
- α=k/√(batch num) * α0
- step 별로 α를 다르게 설정한다.
'머신러닝' 카테고리의 다른 글
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 7. 다중 클래스 분류, 8. 프로그래밍 프레임워크 소개 (0) | 2024.05.27 |
---|---|
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 5. 하이퍼파라미터 , 6. 배치 정규화 (0) | 2024.05.20 |
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 3. 최적화 문제 설정 (0) | 2024.05.06 |
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 2. 신경망 네트워크의 정규화 (0) | 2024.04.15 |
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 1. 머신러닝 어플리케이션 설정하기 (0) | 2024.04.15 |