79. 옵티마이저 (Optimizer - 최적화 알고리즘)
⚠️ 이 문서는 딥러닝 모델이 손실 함수(Loss Function)를 통해 자신의 오차를 파악하고 역전파로 기울기를 구한 뒤, 실제로 "그래서 가중치(Weight) 파라미터를 어느 방향으로 얼만큼 이동시킬 것인가?"를 지시하여 가장 빠르고 안정적으로 오차가 최소가 되는 산골짜기 밑바닥(Global Minimum)을 찾아가도록 이끄는 내비게이션 알고리즘인 옵티마이저를 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 단순히 경사가 아래로 향하는 곳으로만 무작정 걸어가는 기본 경사하강법(SGD)의 비효율성을 극복하기 위해, '관성(관성/가속도)'과 '보폭 조절(학습률 가변 적용)'이라는 물리적 아이디어를 융합한 파라미터 업데이트 전략이다.
- 가치: 골짜기를 내려가다 작은 웅덩이(지역 최솟값, Local Minima)에 빠져 학습이 망하는 것을 방지하고, 수백만 개의 파라미터가 가진 각자의 지형 특성에 맞춰 똑똑하게 보폭을 조절함으로써 학습 속도를 비약적으로 단축시킨다.
- 기술 체계: 운동량(Momentum) 기반의 알고리즘과 학습률 적응(AdaGrad, RMSProp) 기반의 알고리즘이 발전해 왔으며, 이 두 가지 장점을 모두 합친 **Adam (Adaptive Moment Estimation)**이 현재 딥러닝계의 독보적인 표준 옵티마이저로 쓰이고 있다.
Ⅰ. SGD의 맹점: 장님 코끼리 만지기 식의 하산
기본 경사하강법(SGD, Stochastic Gradient Descent)은 너무 융통성이 없다.
- 지형의 불균형 (계곡 현상):
- 손실 함수의 지형이 완벽한 밥그릇 모양이면 좋겠지만, 실제로는 좌우로는 가파르고 앞뒤로는 완만한 길쭉한 타원형 계곡(Ravine)일 경우가 많다.
- 지그재그 헛걸음 현상:
- SGD는 오직 '현재 서 있는 위치의 기울기'만 보고 걷는다. 가파른 좌우 벽을 만나면 반대쪽 벽으로 튕겨 나가듯 걷고, 다시 반대로 튕기면서 목적지(중앙의 낮은 곳)를 향해 지그재그로 매우 비효율적으로 낭비하며 내려간다.
- Local Minima (지역 최솟값)와 안장점 (Saddle Point):
- 진짜 밑바닥(Global Minima)이 아닌데 산 중턱에 움푹 파인 작은 웅덩이(Local Minima)를 만나면, 사방이 오르막이라 기울기가 0이 되어 "아! 다 내려왔다!"라고 착각하고 학습을 영원히 멈춰버린다.
📢 섹션 요약 비유: 눈을 가린 채 산을 내려갈 때, 오직 내 두 발바닥의 기울기(SGD)만 믿고 걷다 보면 산비탈을 좌우로 왔다 갔다 헛고생을 하거나, 진짜 바닥이 아닌 산 중턱의 작은 분화구에 갇혀 더 이상 내려가지 못하고 고립되는 치명적인 문제가 발생합니다.
Ⅱ. 진화의 양대 산맥: 관성(Momentum)과 보폭(Ada)
이를 해결하기 위해 과학자들은 두 가지 기발한 물리적 아이디어를 옵티마이저에 주입했다.
- 가속도를 활용하자: Momentum (모멘텀 계열):
- 과거에 이동했던 방향(관성)을 기억해서 다음 발걸음에 더해준다.
- 작은 웅덩이(Local Minima)를 만나더라도, 지금까지 빠르게 굴러내려 오던 '관성'이 있으므로 그 힘으로 웅덩이를 쑥 하고 치고 올라가 빠져나올 수 있게 한다. (지그재그 현상 완화 효과)
- 각자 다른 보폭을 주자: AdaGrad / RMSProp (적응형 학습률 계열):
- 파라미터가 수백만 개인데, 자주 변한 파라미터(경사가 가파른 길)는 보폭을 작게(세밀하게 탐색) 줄이고, 거의 안 변한 파라미터(평평한 길)는 보폭을 크게 늘려 큼직하게 걷게(빠른 탐색) 만든다.
- 즉, 길의 특징에 맞춰 학습률(Learning Rate)을 변수마다 알아서 조절(Adaptive) 해주는 마법이다.
📢 섹션 요약 비유: Momentum이 내리막을 구르는 무거운 쇠공에 '관성의 법칙'을 달아주어 작은 파인 곳은 그냥 튕겨 지나가게 만드는 기술이라면, Ada 계열 알고리즘은 험한 길은 잰걸음으로 조심조심 걷고 뻗어있는 평지는 성큼성큼 뛰어가는 똑똑한 '자동 보폭 조절' 기술입니다.
Ⅲ. 딥러닝 옵티마이저의 제왕: Adam의 탄생
현재 전 세계 AI 개발자들의 99%가 기본값으로 사용하는 궁극의 알고리즘이다.
- Adam (Adaptive Moment Estimation):
- 2014년에 등장한 알고리즘으로, 이름에서 알 수 있듯 **모멘텀(관성, Moment) 방식과 RMSProp(적응형 보폭 조절, Adaptive) 방식의 장점을 합친 끔찍한 혼종(최강자)**이다.
- 원리:
- 지금까지 걸어온 방향(관성)도 계산해서 방향을 잡아주고(1차 모멘트), 지금까지 걸어온 보폭 크기(기울기 제곱)도 계산해서 최적의 보폭을 세팅(2차 모멘트)해 준다. 게다가 초기 학습 시 0으로 쏠리는 편향까지 수학적으로 보정(Bias Correction)해 준다.
- 실무적 위상:
- 어떤 딥러닝 모델(이미지 CNN, 텍스트 RNN/Transformer)을 만들든, "일단 옵티마이저는 Adam으로 두고 시작하라"는 것이 국룰이다. Adam은 웬만하면 알아서 웅덩이를 빠져나가고, 알아서 보폭을 조절해 주어 개발자의 노가다(하이퍼파라미터 튜닝)를 극적으로 줄여준다.
📢 섹션 요약 비유: 눈 감고 산을 내려가야 할 때, 방향을 잡아주는 묵직한 '나침반(모멘텀)'과 길 상태에 맞춰 알아서 속도를 조절해 주는 '최고급 사륜구동 서스펜션(RMSProp)'을 모두 장착한 궁극의 하산 전용 오프로드 자동차(Adam)를 타고 내려가는 것과 같습니다.