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