옵티마이저Optimizer
기울기를 받아 값을 어떻게 옮길지 정하는 규칙
- 옵티마이저는 기울기를 받아 값을 실제로 어떻게 옮길지 정하는 규칙이에요. 방향은 경사하강법이, 기본 폭은 학습률이 정해요.
- 첫 번째 요령은 관성이에요. 같은 쪽으로 계속 가고 있으면 지난 걸음의 속도를 이어받아 성큼 나아가요.
- 두 번째 요령은 방향마다 보폭을 달리하기예요. 자주 크게 흔들리는 값은 잘게, 좀처럼 안 변하는 값은 크게 옮겨요.
- 이 요령 덕분에 좁고 긴 골짜기에서 좌우로 널을 뛰는 낭비가 줄고, 같은 시간에 훨씬 아래까지 내려가요.
- 옵티마이저를 바꾼다고 학습률을 안 정해도 되는 건 아니에요. 기준이 되는 폭은 여전히 사람이 정해요.
목차
1비유로 이해하기
이어달리기에서 바통을 넘길 때 다음 주자가 출발선에 가만히 서 있으면 팀 기록이 크게 늦어져요. 받자마자 정지 상태에서 속도를 다시 올려야 하니까요. 그래서 앞 주자가 다가오는 것을 보고 미리 달리기 시작해 앞 주자의 속도를 그대로 이어받아요.
트랙을 도는 방식도 구간마다 달라요. 곡선 구간에서는 몸이 바깥으로 밀리니까 보폭을 줄이고 촘촘하게 딛고, 곧게 뻗은 직선에서는 크게 성큼성큼 뻗어요. 같은 트랙이라도 어디를 달리느냐에 따라 발놀림을 바꾸는 거예요.
옵티마이저가 하는 일이 이 두 가지예요. 지난 걸음의 속도를 이어받고, 구간에 따라 보폭을 달리해요. 어느 쪽으로 갈지는 이미 정해져 있고, 그 길을 어떤 요령으로 달릴지만 맡아요.
2자세히 알아보기
방향만 알아서는 손해가 커요
기울기는 지금 자리에서 어느 쪽이 내리막인지 알려 줘요. 그런데 그 방향으로 곧이곧대로만 움직이면 낭비가 생겨요. 특히 한쪽으로는 가파르고 다른 쪽으로는 완만한 좁고 긴 골짜기에서 그래요.
이런 자리에서는 가파른 쪽으로 크게 튕겨 나갔다가 되돌아오기를 반복하면서, 정작 완만한 쪽으로는 아주 조금씩만 나아가요. 골짜기를 따라 쭉 내려가야 하는데 벽에 부딪히며 지그재그로만 움직이는 셈이죠. 걸음 수는 잔뜩 쓰는데 실제로 내려간 깊이는 얼마 안 돼요.
옵티마이저는 기울기를 그대로 쓰지 않고 한 번 손질해서 써요. 지난 걸음들을 기억해 두었다가 지금 기울기와 섞어 실제 이동량을 만들어요.
관성을 붙이면 흔들림이 줄어요
첫 번째 요령은 지난 걸음의 이동량을 일정 비율로 이어받는 거예요. 같은 방향으로 계속 가고 있었다면 이어받은 몫이 쌓여 걸음이 점점 커지고, 방향이 매번 뒤집히던 쪽은 서로 상쇄되어 잦아들어요.
골짜기에 대입하면 벽에 부딪혀 좌우로 흔들리던 움직임은 줄고, 골짜기를 따라 내려가는 움직임만 남아 속도가 붙어요. 얕은 자리를 만나도 실려 온 속도로 넘어가는 일이 생겨서, 어중간한 자리에 눌러앉을 위험도 줄어요.
이어받는 비율은 보통 지난 몫을 대부분 살리는 정도로 잡아요. 너무 크게 잡으면 방향이 바뀐 뒤에도 한참을 옛 방향으로 밀려가고, 너무 작게 잡으면 관성을 붙이지 않은 것과 다를 바가 없어져요.
3조금 더 정확하게
옵티마이저는 기울기와 지난 갱신 기록을 받아 이번 갱신량을 계산하는 규칙이에요. 가장 단순한 형태는 기울기에 학습률만 곱하는 확률적 경사하강법(SGD, Stochastic Gradient Descent)이고, 여기에 지난 이동량을 더하는 관성 항을 붙인 형태, 값마다 지난 기울기의 크기를 모아 폭을 나누는 형태가 차례로 나왔어요. 관성과 방향별 폭을 함께 쓰는 아담 계열이 지금 가장 널리 쓰여요.
비유가 어긋나는 지점도 있어요. 이어달리기 트랙은 곡선과 직선이 눈에 보이지만, 학습에서는 어느 방향이 가파른지 미리 알 수 없어요. 지금까지 흔들려 온 기록으로 짐작할 뿐이에요. 또 옵티마이저는 값마다 이런 기록을 따로 들고 있어서, 모델을 학습할 때는 값의 개수만큼 메모리가 몇 배로 더 들어요.
4직접 해보기
5흔한 오해
옵티마이저를 좋은 것으로 바꾸면 학습률은 신경 쓰지 않아도 된다고 생각하기 쉽지만, 실제로는 기준이 되는 폭을 여전히 사람이 정해야 하고 그 값이 결과를 가장 크게 흔들어요.
옵티마이저가 더 좋은 답을 찾아 준다고 여기기 쉽지만, 실제로는 같은 지형을 더 효율적으로 내려갈 뿐 지형 자체를 바꾸지는 못해요.
가장 최신 옵티마이저가 항상 낫다고 생각하기 쉽지만, 실제로는 자료와 모델에 따라 오래된 단순한 방식이 더 잘 맞는 경우도 많아요.
7한 줄 요약
그러니까옵티마이저는 내리막 방향을 받아 지난 속도를 이어받고 방향마다 보폭을 달리하는, 값을 옮기는 요령이에요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02