최적화 방법5- RMSProp
앞에서 모멘텀(Momentum)까지 정리했다. 이어서 RMSProp에 대해서 정리하려고 한다.
~ 목차 ~
0. 서론- 왜 갑자기 최적화를 공부하고 있는가
1. 최적화란
2. 종류
2.1 경사하강법(GD)
2.2 확률적 경사하강법(SGD)
2.3 Momentum
2.4 AdaGrad
2.5 RMSProp
2.6 Adam
2. 종류
-AdaGrad의 단점(학습이 진행될수록 기울기 제곱값이 누적되어 학습률이 작아짐)을 개선하기 위해 RMSProp이 제안되었다.
2.5 RMSProp
- RMSProp은 Root Mean Square Propagation의 줄임말로, 기울기 제곱의 지수 이동 평균을 사용해서 학습률을 조절하는 방법이다. (c.f. 지수 이동 평균: 최근 데이터에 가중치를 주면서 과거의 데이터는 줄여나가는 가중 평균)
- 잠깐 질문..
Q1: 왜 기울기 제곱의 지수 이동 평균을 사용할까?
- 사실 이전에 Rprop(Resilient Propagation)라는 최적화 방법이 제안되었었다. 경사하강법을 개선한 방법으로, 기울기가 크면 학습률을 작게 하고 작으면 학습률을 크게 하는 방법이다. 하지만 Rprop를 미니배치 학습에서 적용하게 되면 각 미니배치마다의 기울기 크기가 달라질 수 있기 때문에 학습이 일관되지 않게 이루어진다는 문제가 있었다. 이를 보완하기 위해 기울기 제곱의 이동 평균을 사용해서 기울기 크기를 정규화하는 방법인 RMSProp이 제안되었다 [2].
- 수식을 보면서 알아가보자. RMSProp의 가중치 매개변수 업데이트 공식은 아래와 같다.
h←βh+(1−β)∂L∂W⊙∂L∂W
(β: 과거 값에 대한 가중치)
W←W−η1√h+ϵ∂L∂W
- AdaGrad의 h←h+∂L∂W⊙∂L∂W과 비교했을 때,
h와 ∂L∂W⊙∂L∂W에 각각 β와 (1−β)가 곱해졌음을 알 수 있다. 이 부분이 바로 지수 이동 평균을 나타낸다.
- 여기서 β는 과거의 값에 부여하는 가중치로, 보통 0.9로 설정된다. β값이 클수록 과거값이 많이 반영된다.
- RMSProp의 장단점은 아래와 같다.
(장점) 학습이 계속 진행되어도 안정적인 학습률 유지 가능
- 기울기 제곱의 이동 평균을 사용하기 때문에 학습이 진행되어도 학습률이 지나치게 작아지지 않고 안정적으로 유지된다. 최근 기울기 제곱에 더 많은 가중치를 두면서 과거값은 점차 줄여나가기 때문이다.
- 0.1에서 0.8 범위의 무작위 기울기 100개로 이 과정을 확인해보겠다. 가독성의 이유로 계산은 3개만 적었다.
STEP1: 기울기 0.5
- AdaGrad
h1=0+(0.5)2=0.25
lr=1√h1+ϵ=1√0.25+10−8≈2.0
- RMSProp
h1=β⋅0+(1−β)⋅(0.5)2=0.9⋅0+0.1⋅0.25=0.025
lr=1√h1+ϵ=1√0.025+10−8≈6.3246
STEP2: 기울기 0.25
- AdaGrad
h2=h1+(0.25)2=0.25+0.0625=0.3125
lr=1√h2+ϵ=1√0.3125+10−8≈1.7889
- RMSProp
h2=β⋅h1+(1−β)⋅(0.25)2=0.9⋅0.025+0.1⋅0.0625=0.02875
lr=1√h2+ϵ=1√0.02875+10−8≈5.8993
STEP3: 기울기 0.75
- AdaGrad
h3=h2+(0.75)2=0.3125+0.5625=0.875
lr=1√h3+ϵ=1√0.875+10−8≈1.0690
- RMSProp
h3=β⋅h2+(1−β)⋅(0.75)2=0.9⋅0.02875+0.1⋅0.5625=0.082625
lr=1√h3+ϵ=1√0.082625+10−8≈3.4842
.
.
- 같은 방식으로 나머지 97개를 계산해서 표로 나타내보면 아래와 같다.

★ ht: AdaGrad는 값이 계속 누적되지만, RMSProp은 비교적 일정한 범위 안에서 유지됨을 알 수 있다.
★ lr: AdaGrad의 학습률은 계속 작아지지만, RMSProp은 비교적 안정적인 학습률을 유지함을 알 수 있다.
(단점) 특정 상황에서 최적화 경로가 불안정해질 수 있음
- h←βh+(1−β)∂L∂W⊙∂L∂W라는 수식은 기울기 제곱의 크기만 누적하는 식이다.
즉, 각 시점에서 기울기의 크기를 조정해서 학습률을 변화시키지만, 이전 기울기의 방향성을 반영하지는 못한다.
그래서 ①진동이 심한 지역이나 ②초기 학습단계에서 학습이 불안정해질 수 있다.
① 진동이 심한 지역
- 진동이 심하다는 뜻은 손실함수의 곡률이 높은 지역이라는 의미이다. 손실함수의 곡률이 높으면
기울기의 방향이 자주 바뀌면서 최적화 경로가 불안정해지고, 방향이 계속 이리저리 바뀌게 된다.
(e.g. x축 방향이 매우 가파르고 y축 방향은 평평한 경우 -> x축 방향의 경사를 따라서 왔다갔다 오르락내리락)
- 운이 나쁘면 국소값 근처에서 진동하거나 아예 빠져버릴 수도 있다.
② 초기 학습 단계
- 위의 그래프에서도 볼 수 있듯이, ht가 0에서 시작하기 때문에 학습률이 튈 수 있다.
- 앞에서 든 손실함수 L의 예시를 사용해서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식을 알아보자.
e.g. L=e12+e22+e32+e42+e52일 때,
GD, SGD, Momentum, AdaGrad, RMSProp에서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식은
각각 아래의 표와 같다. (RMSProp의 학습률은 η가 아니라 η√h1+ϵ임을 알 수 있다.)
Gradient Descent | Stochastic Gradient Descent |
[w1w2w3w4w5]←[w1w2w3w4w5]−η[2e1∂e1∂w12e2∂e2∂w22e3∂e3∂w32e4∂e4∂w42e5∂e5∂w5] | [w1w2w3w4w5]←[w1w2w3w4w5]−η[0⋮2ei∂ei∂wi⋮0] |
Momentum | |
[w1w2w3w4w5]←[w1w2w3w4w5]+[αv1−η⋅2e1∂e1∂w1αv2−η⋅2e2∂e2∂w2αv3−η⋅2e3∂e3∂w3αv4−η⋅2e4∂e4∂w4αv5−η⋅2e5∂e5∂w5] | |
AdaGrad | RMSProp |
[w1w2w3w4w5]←[w1w2w3w4w5]−η[1√h1+ϵ⋅∂L∂w11√h2+ϵ⋅∂L∂w21√h3+ϵ⋅∂L∂w31√h4+ϵ⋅∂L∂w41√h5+ϵ⋅∂L∂w5] | [w1w2w3w4w5]←[w1w2w3w4w5]−η[1√h1+ϵ⋅∂L∂w11√h2+ϵ⋅∂L∂w21√h3+ϵ⋅∂L∂w31√h4+ϵ⋅∂L∂w41√h5+ϵ⋅∂L∂w5] |
- 가중치 매개변수를 1번 갱신할 때 필요한 행렬식은 모양상으로 봤을 때 AdaGrad와 RMSProp이 같아보인다.
하지만 ☆h가 다르므로(AdaGrad는 과거값 고려x, RMSProp은 과거값 고려o) 결과는 다르다!☆
- 이전 기울기의 크기뿐만 아니라 방향성을 반영하기 위해, RMSProp에 Momentum을 결합한 방법인 Adam이 제안되었다.
- 다음 포스팅에서는 Adam에 대해서 정리해보려고 한다.
참고문헌
[1] 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
[2] T. Tieleman and G. Hinton, "Lecture 6e - RMSProp: Divide the Gradient by a Running Average of Its Recent Magnitude," presented in Neural Networks for Machine Learning, University of Toronto, 2012. [Online]. Available: http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
[3] 혁펜하임, "[Easy! 딥러닝] 6-4강. Momentum과 RMSProp," 동영상, 2023년 9월 19일. https://www.youtube.com/watch?v=-oHYAUhq5ao&t=355s.
'기본기 다지기 > Optimization' 카테고리의 다른 글
[기본이론] 최적화 방법6- Adam (수식o) (4) | 2024.11.08 |
---|---|
[기본이론] 최적화 방법4- AdaGrad (수식o) (0) | 2024.11.04 |
[기본이론] 최적화 방법3- Momentum (수식o) (4) | 2024.11.03 |
[기본이론] 최적화 방법2- Stochastic Gradient Descent (수식o) (4) | 2024.11.02 |
[기본이론] 최적화 방법1- Gradient Descent (수식o) (8) | 2024.11.01 |