🔍 Adam이란?
Adam(Adaptive Moment Estimation)은 적응형 학습률 최적화 알고리즘입니다. 전통적인 확률적 경사 하강법(SGD)이 모든 파라미터에 고정된 학습률을 사용하는 것과 달리, Adam은 학습률을 동적으로, 파라미터마다 다르게 조정합니다.
⚙️ Adam의 핵심 아이디어
Adam은 두 가지 핵심 요소를 결합하여 동작합니다:
- 1차 모멘트 (Momentum): 기울기의 지수 이동 평균
- 2차 모멘트 (RMSProp): 기울기 제곱의 지수 이동 평균
이 두 가지 모멘트를 기반으로 파라미터별로 학습률을 조정하며, 빠른 수렴과 안정적인 학습을 유도합니다.
📘 1차 모멘트란?
1차 모멘트는 기울기의 지수 이동 평균을 의미합니다. 단순 평균이 아닌, 최근 기울기에 더 많은 가중치를 주는 방식입니다.
mt=β1mt−1+(1−β1)gt
- gt: 현재 시점의 기울기
- β1: 일반적으로 0.9
이는 모멘텀(Momentum)과 동일한 개념으로, 파라미터가 진동하지 않고 일관된 방향으로 나아가도록 도와줍니다.
📗 2차 모멘트란?
2차 모멘트는 기울기 제곱의 지수 이동 평균입니다. 학습률을 기울기의 분산에 따라 조정할 수 있도록 돕습니다.
vt=β2vt−1+(1−β2)gt2
- gt2: 기울기의 제곱
- β2: 일반적으로 0.999
이 방식은 RMSProp에서 유래했으며, 기울기의 크기에 따라 학습률을 자동으로 조절해 줍니다.
🔁 편향 보정
Adam은 초기 학습 단계에서 모멘트들이 0에 가깝게 치우치는 편향을 보정합니다.
m^t=1−β1tmt,v^t=1−β2tvt
🔧 최종 업데이트 식
Adam의 파라미터 업데이트는 다음과 같이 이루어집니다:
Wt+1=Wt−v^t+ϵηm^t
- η: 초기 학습률
- ϵ: 분모가 0이 되는 것을 방지하기 위한 작은 수 (예: 10−8)
📊 RMS vs 분산의 관계
RMS(Root Mean Square)와 분산은 비슷해 보이지만 개념적으로 다릅니다.
-
분산: 데이터의 편차의 제곱 평균
σ2=N1∑(xi−μ)2
-
RMS: 데이터 자체의 제곱 평균의 제곱근
RMS=N1∑xi2
만약 데이터의 평균이 0이라면, RMS의 제곱은 분산과 같아집니다.
📘 RMSProp에서의 RMS 의미
RMSProp에서 말하는 "RMS"는 기울기 제곱의 지수 이동 평균을 기반으로 한 값입니다. 즉, 분산의 추정치처럼 사용되며, 학습률을 안정적으로 조절하기 위한 기준이 됩니다.
🧠 지수 이동 평균(EWMA)이란?
Adam이 사용하는 평균 방식은 단순 평균이 아닌 지수 이동 평균입니다.
vt=βvt−1+(1−β)θt
- 최근(과거) 데이터에 더 큰 가중치를 주어, 노이즈를 줄이면서도 추세 변화에 빠르게 대응합니다.
- 과거 데이터를 모두 반영하지만, 오래된 데이터는 점점 영향이 작아집니다.
✅ Adam 요약
개념 | 역할 | 수식 |
---|
1차 모멘트 mt | 기울기 평균 (모멘텀) | mt=β1mt−1+(1−β1)gt |
2차 모멘트 vt | 기울기 제곱 평균 (RMSProp) | vt=β2vt−1+(1−β2)gt2 |
업데이트 | 학습률 조절 & 파라미터 갱신 | Wt+1=Wt−v^t+ϵηm^t |
📎 마무리
Adam은 다음과 같은 이유로 딥러닝의 대표 최적화 알고리즘으로 자리잡았습니다:
- 학습률을 파라미터별로 자동 조절
- 안정적이고 빠른 수렴
- 모멘텀과 RMSProp의 장점을 결합
하지만 모든 상황에 Adam이 최적은 아니며, 경우에 따라 SGD with Momentum, AdaGrad, RMSProp 등을 선택하는 것이 더 좋을 수도 있습니다. 실험과 데이터의 특성을 고려하여 적절한 옵티마이저를 선택하는 것이 중요합니다.