AI VIDEO BRIEFING
Adam 옵티마이저 원리 쉽게 이해하기: 모멘텀과 RMSProp을 하나로 합친 이유와 편향 보정
딥러닝의 기본 옵티마이저인 Adam은 사실 기울기의 이동평균과 기울기 제곱의 이동평균을 붙여 놓은 것이다. 좁은 골짜기 비유를 따라가며 모멘텀과 RMSProp이 각각 무엇을 고치는지, 편향 보정은 왜 필요한지 살펴본다.

핵심 메시지
쉽게 이해하기
길고 좁은 골짜기를 떠올려 보자. 우리가 도달하려는 곳은 골짜기 바닥이지만, 양쪽 벽은 가파른 반면 바닥은 거의 기울어져 있지 않다. 여기에 공을 하나 떨어뜨리고 매 순간 가장 가파른 방향으로 조금씩 굴러가게 하면, 그것이 곧 기본적인 경사하강법이다. 문제는 가장 가파른 방향이 골짜기를 따라가는 쪽이 아니라 거의 가로지르는 쪽을 가리킨다는 데 있다.
그래서 공은 벽과 벽 사이를 정신없이 튕기며 지그재그로 움직이고, 정작 목표인 바닥 쪽으로는 답답할 만큼 느리게 나아간다. 머신러닝에서 마주치는 손실 지형은 거의 모두 이런 골짜기 모양을 하고 있다. Adam 안에 숨어 있는 두 아이디어는 바로 이 하나의 문제를 각각 다른 각도에서 고친 결과물이다.
첫 번째 해법인 모멘텀은 방향을 고친다. 매 순간의 기울기 하나를 그대로 믿는 대신 지금까지의 기울기를 누적한 평균을 유지하고, 새 기울기는 조금만 섞고 기존 평균을 대부분 남긴다. 그리고 원래 기울기가 아니라 이 평균 방향으로 한 걸음을 내딛는다. 공에 질량을 주는 것과 비슷해서, 부호가 계속 뒤집히는 좌우 성분은 평균에서 사라지고 늘 같은 쪽을 가리키는 바닥 방향의 힘만 조용히 누적된다.
두 번째 문제는 보폭이다. 가파른 축과 평평한 축은 서로 완전히 다른 크기의 걸음을 원한다. RMSProp은 기울기를 제곱한 값의 이동평균을 따로 유지하고 각 걸음을 그 제곱근으로 나누는데, 기울기가 크게 나왔던 방향에서는 값이 커져 조심스럽게 움직이고 아주 작았던 방향에서는 과감하게 나아간다. 방향마다 자기만의 학습률을 갖게 되는 셈이다.
Adam은 둘 중 하나를 고르는 대신 두 평균을 모두 들고 가며, 방향은 기울기 평균이 정하고 크기는 기울기 제곱 평균이 정한다. 다만 두 평균 모두 0에서 출발하기 때문에 초반 몇 걸음은 값이 0 쪽으로 치우쳐 업데이트가 지나치게 작아지는데, 각각을 1에서 베타의 t제곱을 뺀 값으로 나눠 보정하면 초반에는 크게 작용하다가 나중에는 조용히 1로 수렴한다. 같은 골짜기에서 네 방법을 나란히 굴려 보면 차이는 분명하다. 경사하강법은 지그재그로 헤매고, 모멘텀은 하나의 완만한 곡선을 그리며, RMSProp은 거의 곧장 내려가고, Adam은 둘을 한꺼번에 해낸다.
주요 인사이트
- Adam이라는 이름이 주는 인상과 달리 내부에는 새로운 수학이 거의 없다. 이동평균 두 개와 나눗셈 한 번, 그리고 0으로 나누는 것을 막는 아주 작은 값이 전부다.
- 모멘텀과 RMSProp은 서로 다른 문제를 푼다. 하나는 어느 쪽으로 갈지를, 다른 하나는 얼마나 크게 갈지를 정하기 때문에 둘을 합치는 것이 자연스럽다.
- 관성이 잡음을 지우는 원리는 직관적이다. 부호가 계속 바뀌는 성분은 평균에서 서로 지워지고, 일관된 방향만 살아남는다.
- 널리 쓰이는 기본값 베타1 0.9, 베타2 0.999, 엡실론 10의 마이너스 8제곱은 두 이동평균의 역할을 알고 나면 마법 같은 숫자가 아니라 각 평균이 과거를 얼마나 오래 기억할지를 정하는 값으로 읽힌다.
- 편향 보정은 사소해 보이지만 학습 초반의 걸음 크기를 좌우한다. 두 평균이 0에서 시작한다는 사실만 기억하면 왜 필요한지 바로 이해된다.
자주 묻는 질문
왜 기본 경사하강법만으로는 부족한가요?
손실 지형이 벽은 가파르고 바닥은 거의 평평한 좁은 골짜기 모양이기 때문입니다. 이때 가장 가파른 방향은 골짜기를 따라가는 쪽이 아니라 거의 가로지르는 쪽이어서, 좌우로 지그재그만 반복하며 바닥으로는 아주 느리게 나아갑니다.
모멘텀과 RMSProp은 각각 무엇을 담당하나요?
모멘텀은 기울기의 이동평균을 유지해 나아갈 방향을 다듬고, RMSProp은 기울기 제곱의 이동평균으로 나눠 방향마다 보폭을 따로 정합니다. Adam은 두 평균을 모두 유지해 방향과 크기를 동시에 해결합니다.
편향 보정은 왜 필요한가요?
두 이동평균이 모두 0에서 시작하기 때문에 학습 초반에는 값이 0 쪽으로 치우쳐 업데이트가 실제보다 훨씬 작게 나옵니다. 각 평균을 1에서 베타의 t제곱을 뺀 값으로 나누면 초반의 치우침이 걷히고, 학습이 진행되면 이 보정은 자연히 1에 가까워집니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗