손실함수를 만들었다고 해서 학습이 끝난 것은 아닙니다. 이제는 그 손실을 실제로 줄여야 합니다. 즉 지금 위치에서 어느 방향으로, 얼마나 움직여야 손실이 작아지는지 정해야 합니다. 경사하강법은 이 문제의 가장 기본적인 해법이고, 모멘텀과 Adam은 그 기본 해법이 갖는 느림과 흔들림을 줄이기 위해 나온 개선 방법입니다.
먼저 알아둘 말
- gradient: 함수가 가장 빨리 증가하는 방향을 나타내는 벡터다.
- 경사하강법: gradient의 반대 방향으로 조금씩 이동하며 손실을 줄이는 방법이다.
- 학습률: 한 번의 업데이트에서 얼마나 크게 움직일지 정하는 값이다.
- 모멘텀: 이전 이동 방향을 일부 기억해 더 부드럽고 빠르게 움직이게 하는 방법이다.
- Adam: 이동 평균과 제곱평균을 함께 사용해 각 좌표의 이동 크기를 적응적으로 조절하는 방법이다.
이 강의에서 답할 질문
- 왜 gradient의 반대 방향으로 움직이면 손실이 줄어들까?
- 학습률은 왜 너무 크거나 너무 작으면 문제가 될까?
- 모멘텀과 Adam은 기본 경사하강법의 어떤 약점을 보완할까?
먼저 떠올릴 장면
- 산 위에서 가장 빨리 올라가는 방향을 알면, 그 반대 방향이 가장 빨리 내려가는 방향이다.
- 하지만 한 걸음을 너무 크게 떼면 계곡을 지나쳐 반대편으로 튈 수 있다.
- 지형이 길게 찌그러진 계곡이면 좌우로 흔들리기 쉽고, 이런 흔들림을 줄여 줄 장치가 필요하다.
즉 최적화 알고리즘은 "좋은 방향 찾기"와 "적절한 걸음 크기 정하기"를 동시에 해결해야 합니다.
생각의 순서
- 먼저 gradient가 무엇을 말해 주는지 본다.
- 그다음 경사하강법 업데이트가 왜 자연스러운지 본다.
- 이어서 학습률이 왜 중요한지 본다.
- 마지막으로 모멘텀과 Adam이 어떤 문제를 해결하려는지 비교한다.
본문
1. gradient는 손실이 가장 빨리 커지는 방향이다
파라미터가 하나일 때는 미분계수 하나만 보면 됩니다. 양수면 오른쪽으로 갈수록 함수가 증가하고, 음수면 오른쪽으로 갈수록 함수가 감소합니다.
하지만 파라미터가 여러 개인 경우에는 방향이 많아집니다. 이때 gradient가 필요합니다. gradient는 각 변수에 대한 편미분을 모아 만든 벡터입니다.
$$ \nabla L(\theta) $$
이 벡터는 "현재 위치에서 손실이 가장 빠르게 증가하는 방향"을 가리킵니다. 따라서 손실을 줄이고 싶다면 그 반대 방향으로 움직이는 것이 가장 자연스럽습니다.
2. 경사하강법은 반대 방향으로 조금씩 간다
이 직관을 식으로 쓰면 경사하강법이 됩니다.
$$ \theta_{t+1} = \theta_t - \eta \nabla L(\theta_t) $$
여기서
$$ \theta_t $$
는 현재 파라미터이고,
$$ \eta $$
는 학습률입니다.
이 식이 의미하는 바는 단순합니다.
- 현재 위치에서 gradient를 계산한다.
- 그 반대 방향으로 간다.
- 한 번에 너무 멀리 가지 않도록 학습률만큼만 움직인다.
즉 경사하강법은 "가장 빠르게 내려가는 방향으로 짧게 한 걸음"을 반복하는 방법입니다.
3. 학습률은 방향만큼이나 중요하다
같은 방향으로 간다고 해도, 얼마나 크게 움직이느냐에 따라 결과가 크게 달라집니다.
학습률이 너무 작으면 움직임이 지나치게 느려집니다. 손실은 줄어들 수 있지만, 업데이트가 너무 미세해서 학습이 오래 걸립니다.
반대로 학습률이 너무 크면 최저점을 지나쳐 버릴 수 있습니다. 특히 계곡처럼 좁은 형태의 손실표면에서는 좌우로 크게 튀며 진동할 수 있습니다. 심하면 손실이 줄어들지 않고 오히려 커질 수도 있습니다.
그래서 최적화는 "방향을 잘 잡는 일"뿐 아니라 "걸음 크기를 적절히 정하는 일"이기도 합니다.
4. 기본 경사하강법은 계곡에서 흔들릴 수 있다
손실표면이 둥근 그릇 모양이면 기본 경사하강법도 잘 작동합니다. 하지만 실제 문제의 손실표면은 종종 한 방향은 가파르고 다른 방향은 완만한 긴 계곡 모양입니다.
이 경우 gradient는 가파른 방향의 정보에 크게 끌리기 때문에, 최적점으로 곧장 가기보다 좌우로 흔들리며 천천히 내려갈 수 있습니다. 이런 비효율을 줄이기 위해 모멘텀이 등장합니다.
5. 모멘텀은 이전 속도를 기억한다
모멘텀의 핵심은 매번 완전히 새로 출발하지 않는다는 점입니다. 이전까지 가던 방향을 조금 기억해 두고, 현재 gradient와 합쳐 다음 이동을 결정합니다.
$$ v_{t+1} = \beta v_t - \eta \nabla L(\theta_t) $$
$$ \theta_{t+1} = \theta_t + v_{t+1} $$
여기서
$$ v_t $$
는 속도 같은 역할을 하는 값이고,
$$ \beta $$
는 과거 정보를 얼마나 남길지 정하는 계수입니다.
직관적으로 보면, 모멘텀은 공이 굴러가듯 관성을 줍니다.
- 일시적인 좌우 흔들림은 덜 믿는다.
- 여러 번 같은 방향으로 누적된 신호는 더 강하게 따른다.
그래서 긴 계곡 모양 문제에서 좌우 진동을 줄이고, 목표 방향으로 더 빠르게 전진할 수 있습니다.
6. Adam은 방향뿐 아니라 좌표별 걸음 크기도 조절한다
모멘텀은 과거 방향을 기억해 이동을 부드럽게 만들지만, 모든 좌표에 같은 학습률을 쓴다는 점은 여전히 남아 있습니다.
Adam은 여기서 한 걸음 더 나아갑니다. gradient의 평균뿐 아니라 gradient 제곱의 평균도 함께 추적해, 좌표마다 이동 크기를 다르게 조절합니다.
쉽게 말하면 다음과 같습니다.
- 어떤 좌표에서 gradient가 계속 크게 나오면 그 좌표는 조심해서 움직인다.
- 어떤 좌표에서 gradient가 작게 나오면 그 좌표는 상대적으로 더 크게 움직일 수 있다.
그래서 Adam은 초기 학습에서 빠르고 안정적으로 보이는 경우가 많습니다. 특히 파라미터가 많고 좌표별 스케일이 다를 때 유용합니다.
7. 세 방법을 한 번에 비교하자
세 방법의 차이는 이렇게 요약할 수 있습니다.
- 경사하강법: 현재 gradient만 보고 한 번 이동한다.
- 모멘텀: 현재 gradient에 과거 이동 방향을 더해 더 부드럽게 간다.
- Adam: 과거 방향과 gradient 크기 정보를 함께 써서 좌표별 이동 크기까지 조절한다.
즉 이름을 외우는 것이 핵심이 아니라, "현재 기울기만 볼 것인가", "과거 속도를 기억할 것인가", "좌표별 스케일까지 조절할 것인가"의 차이를 이해하는 것이 중요합니다.
8. AI에서는 왜 중요할까
신경망 학습은 거대한 파라미터 공간에서 손실을 줄이는 과정입니다. 그래서 어떤 optimizer를 쓰느냐가 학습 속도, 안정성, 일반화 성능에 큰 영향을 줄 수 있습니다.
- 경사하강법은 가장 기본 원리를 보여 준다.
- 모멘텀은 진동을 줄이고 더 빠른 진행을 돕는다.
- Adam은 실전에서 손쉽게 잘 작동하는 경우가 많다.
결국 optimizer는 학습의 보조도구가 아니라, 손실함수를 실제로 움직이게 만드는 핵심 엔진입니다.
예제
- 경사하강법 한 번 계산하기 문제: 현재 파라미터가
$$ \theta_t = 3 $$
이고 gradient가
$$ \nabla L(\theta_t) = 2 $$
이며 학습률이
$$ \eta = 0.1 $$
일 때 다음 파라미터를 구하라. 풀이: 경사하강법 식에 그대로 넣는다.
$$ \theta_{t+1} = 3 - 0.1 \cdot 2 = 2.8 $$
해설: gradient가 증가 방향을 가리키므로, 반대 방향으로 조금 이동해 손실을 줄인다.
-
학습률이 너무 큰 경우 설명하기 문제: 학습률이 너무 크면 어떤 일이 생길 수 있는가? 풀이: 최저점을 향해 가더라도 한 번에 너무 멀리 움직여 최저점을 지나치고 반대편으로 튈 수 있다. 해설: 좋은 방향을 알아도 걸음 크기가 지나치면 학습이 불안정해진다.
-
모멘텀의 필요성 설명하기 문제: 모멘텀이 계곡 모양 손실표면에서 왜 도움이 되는가? 풀이: 이전 이동 방향을 기억하므로 좌우로 흔들리는 단기 gradient보다, 여러 단계 누적된 큰 흐름을 더 잘 따른다. 해설: 모멘텀은 단순한 한 걸음 반복이 아니라 관성을 가진 이동으로 이해해야 한다.
스스로 점검
연습 문제
- gradient가 왜 증가 방향이라고 말할 수 있는지 설명하라.
- 경사하강법 업데이트 식의 각 항이 뜻하는 바를 설명하라.
- 학습률이 너무 작을 때와 너무 클 때의 문제를 각각 설명하라.
- 모멘텀과 Adam이 기본 경사하강법에서 무엇을 보완하는지 설명하라.
복습 질문
- 왜 gradient의 반대 방향으로 가는가?
- 학습률은 어떤 역할을 하는가?
- 모멘텀은 무엇을 기억하는가?
- Adam은 왜 적응적이라고 불리는가?
체크포인트
- 경사하강법의 기본 식을 읽고 설명할 수 있다.
- 학습률의 중요성을 설명할 수 있다.
- 모멘텀의 관성 직관을 설명할 수 있다.
- Adam이 좌표별로 이동 크기를 조절한다는 점을 이해한다.