DATA101

[Deep Learning] 최적화(Optimizer): (4) Adam 본문

AI & 빅데이터/머신러닝·딥러닝

[Deep Learning] 최적화(Optimizer): (4) Adam

DATA101 2022. 5. 21. 10:36
728x90
반응형

 

 

📌 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.  개념

Adaptive Moment Estimation(Adam)은 딥러닝 최적화 기법 중 하나로써 MomentumRMSProp의 장점을 결합한 알고리즘입니다. 즉, 학습의 방향과 크기(=Learning rate)를 모두 개선한 기법으로 딥러닝에서 가장 많이 사용되어 "오던" 최적화 기법으로 알려져 있습니다. 최근에는 RAdam, AdamW과 같이 더욱 우수한 성능을 보이는 최적화 기법이 제안되었지만, 본 포스팅에서는 딥러닝 분야 전반을 공부하는 마음가짐으로 Adam에 대해 알아봅니다.

2.  수식

수식과 함께 Adam에 대해 자세히 알아보겠습니다.

 

mt=β1mt1+(1β1)f(xt1)

gt=β2gt1+(1β2)(f(xt1))2

mt^=mt1β1t,gt^=gt1β2t

xt=xt1ηgt^+ϵmt^

  • β1: Momentum의 지수이동평균 0.9
  • β2: RMSProp의 지수이동평균 0.999
  • m^, g^: 학습 초기 시 mt,gt0이 되는 것을 방지하기 위한 보정 값
  • ϵ: 분모가 0이 되는 것을 방지하기 위한 작은 값 108
  • η: 학습률 0.001

2.1.  지수이동평균

mtgt는 각각 Momentum RMSProp에서 사용한 수식과 동일합니다. β는 지수이동평균(Exponential Moving Average, EMA)으로써 하이퍼파라미터입니다. 연구 결과에 따르면, β10.9, β20.999가 가장 좋은 값이라고 알려져 있습니다. 지수이동평균은 오래전 time step에서의 값은 적게 반영하고 최근 step의 값을 많이 반영하기 위한 값입니다.

2.2.  편향 보정

m^, g^ 학습 초기에 mt,gt의 값에서 mt1,gt10이고, (1β1)f(xt1)(1β2)(f(xt1))2이 너무 작기 때문에 0에 수렴하는 것을 방지하기 위한 보정값입니다. 수식에서 볼 수 있듯이, Gradient에 곱해진 (1β1)(1β2)를 없앨 수 있도록 m^, g^ 해당 값으로 나눈 값입니다. 이처럼 mt, gt의 초기값이 0에 가까워지는 편향(bias)의 문제를 해결하기 위해 m^, g^ 만드는 과정을 편향 보정(bias correction)이라고 합니다. 학습이 계속 진행되다 보면 (1β1) (1β2)는 거의 1에 가까워지기 때문에, m^, g^ 결국 mt, gt와 같은 값이 됩니다. 

2.3.  학습률

학습률(η)이란 어떤 비율만큼 파라미터를 업데이트할지를 결정하는 값으로 0 1 사이의 값으로써 하이퍼파라미터입니다. 연구 결과에 따르면, Adam 알고리즘에서 학습률은 0.001이 가장 좋은 설정 값이라고 알려져 있습니다.

📚참고할 만한 포스팅

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


포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.
그럼 오늘도 멋진 하루 만드시길 바랍니다 :)
고맙습니다😊

728x90
반응형