Hey Tech
[Deep Learning] 최적화(Optimizer): (3) RMSProp 본문
📌 Text 빅데이터분석 플랫폼 베타테스트 참가자 모집 중!(네이버페이 4만 원 전원 지급)
👋 안녕하세요, 코딩이 필요 없는 AI/빅데이터 분석 All in One 플랫폼 <DATA101> 개발팀입니다.
😊 저희 서비스를 사용해 보시고 경험담을 들려주세요 :)
💸 참여해 주신 "모든" 분들께 네이버페이 4만 원 쿠폰을 지급해 드립니다.
👨💻 참여 희망 시 카톡플러스친구 1:1 채팅 or 인스타그램 DM 부탁드립니다 :)
📆 참여기간 : 11/25(월)~11/29(금) 11:00~21:00 중 택1 (1시간 1타임)
👉 참여장소 : 강남역 인근 스터디카페 미팅Room
📍 소요시간 : 총 40분 내외(서비스 체험 및 인터뷰 포함)
✅ 참가조건 : Text 빅데이터 분석 업무 경험자
👉 참가 가능일정 조회하기 : https://url.kr/n8k8gu
- 카톡플친 : http://pf.kakao.com/_SxltHG/chat
- 인스타그램 : https://www.instagram.com/data101.official/
1. 개념
RMSProp는 딥러닝 최적화 기법 중 하나로써 Root Mean Sqaure Propagation의 약자로, 알엠에스프롭(R.M.S.Prop)이라고 읽습니다.
✋등장배경
최적화 기법 중 하나인 AdaGrad는 학습이 진행될 때 학습률(Learning rate)이 꾸준히 감소하다 나중에는 \(0\)으로 수렴하여 학습이 더 이상 진행되지 않는다는 한계가 있습니다. RMSProp은 이러한 한계점을 보완한 최적화 기법으로써 제프리 힌튼 교수가 Coursea 강의 중에 발표한 알고리즘입니다.
🛠 원리
RMSProp은 AdaGrad와 마찬가지로 변수(feature)별로 학습률을 조절하되 기울기 업데이트 방식에서 차이가 있습니다. 이전 time step에서의 기울기를 단순히 같은 비율로 누적하지 않고 지수이동평균(Exponential Moving Average, EMA)을 활용하여 기울기를 업데이트합니다. 즉, 알고리즘의 핵심은 가장 최근 time step에서의 기울기는 많이 반영하고 먼 과거의 time step에서의 기울기는 조금만 반영하는 점입니다.
🧮 수식
수식과 함께 자세히 알아보겠습니다.
$$ g_{t} = \gamma g_{t-1} + (1-\gamma)(\nabla f(x_{t-1}))^{2} $$
$$ x_{t} = x_{t-1} - \frac{\eta}{\sqrt{g_{t} + \epsilon}} \cdot \nabla f(x_{t-1}) $$
- \(g_{t}\): \(t\)번째 time step까지의 기울기 누적 크기
- \(\gamma\): 지수이동평균의 업데이트 계수
- \(\epsilon\): 분모가 \(0\)이 되는 것을 방지하기 위한 작은 값 \(\approx 10^{-6}\)
- \(\eta\): 학습률
\(t\)번째 time step의 누적 기울기(\(g_{t}\))는 이전 time step까지의 누적 기울기(\(g_{t-1}\))에 \(\gamma\)를 곱해 점차 작게 만들어 주고, 새로운 Gradient에는 \((1-\gamma)\)를 곱한 값을 더하여 업데이트합니다. 이 값의 제곱근 역수를 \(t\)번째 time step에서의 \(x_{t}\)의 학습률에 곱합니다. 이때 \(g_{t}\)가 \(0\)인 경우 값이 무한대로 발산할 수 있기 때문에, 이를 방지하기 위해 매우 작은 값(\(\epsilon\))을 같이 더해 줍니다.
2. 장점
RMSProp 알고리즘의 장점은 크게 2가지입니다.
- 변수(feature)마다 적절한 학습률을 적용하여 효율적인 학습을 진행할 수 있다는 점
- AdaGrad보다 학습을 오래 할 수 있다는 점
AdaGrad에서는 \(g_{t}\)를 계산할 때 \(g_{t-1}\)와 새로운 Gradient의 값을 보정하지 않고 그대로 더하였기 때문에 학습이 진행될수록 무한정 커지는 경우가 발생했습니다. 반면, RMSProp은 \(\gamma\)를 활용하여 \(g_{t}\)가 무한정 커지는 것을 방지하기 때문에 오래 학습할 수 있습니다.
📚참고할 만한 포스팅
1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam
포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.
그럼 오늘도 멋진 하루 만드시길 바랍니다 :)
고맙습니다😊
'AI & 빅데이터 > 머신러닝·딥러닝' 카테고리의 다른 글
[딥러닝] Epoch, Iteration, Batch size 개념 (6) | 2022.05.21 |
---|---|
[Deep Learning] 최적화(Optimizer): (4) Adam (0) | 2022.05.21 |
[Deep Learning] 최적화(Optimizer): (2) AdaGrad (0) | 2022.05.20 |
[Deep Learning] 최적화(Optimizer): (1) Momentum (2) | 2022.05.17 |
[Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent) (8) | 2022.05.06 |