경사하강법 (Gradient Descent)
쉽게 풀면
짙은 안개가 낀 산속에서 눈을 감은 채 가장 낮은 계곡을 찾아 내려간다고 상상해 보세요. 전체 지형이 보이지 않으니 한 번에 목적지를 알 수는 없지만, 발밑의 경사를 느껴 가장 가파르게 내려가는 방향으로 한 걸음씩 옮기다 보면 결국 낮은 곳에 도달하게 됩니다. 경사하강법도 똑같습니다.
모델의 예측이 얼마나 틀렸는지를 나타내는 손실 함수의 "기울기(경사)"를 계산해서, 그 값이 줄어드는 방향으로 모델의 파라미터를 아주 조금씩 계속 수정해 나갑니다. 이 과정을 수없이 반복하면 손실이 가장 작은 지점, 즉 모델이 가장 잘 맞는 상태에 가까워집니다.
왜 중요한가
경사하강법은 딥러닝을 포함한 대부분의 머신러닝 모델이 데이터로부터 학습하는 핵심 메커니즘이기 때문에 거의 모든 인공지능 논문에서 직간접적으로 언급됩니다.
모델 구조나 손실 함수를 아무리 정교하게 설계해도 결국 파라미터를 실제로 조정하는 것은 경사하강법 계열의 최적화 알고리즘이므로, 학습 속도·수렴 안정성·일반화 성능 같은 연구 주제들이 모두 이 알고리즘의 동작 방식과 맞닿아 있습니다.
또한 최적화 기법 자체의 개선(모멘텀, 적응적 학습률 등)은 독립된 연구 분야로 다뤄질 만큼 중요하게 취급됩니다.
어떤 절차인가
경사하강법은 손실 함수 L(θ)의 기울기를 구해 반대 방향으로 파라미터를 조금씩 옮기는 반복 알고리즘입니다.
θ ← θ − η ∇L(θ) (η는 학습률)
- 파라미터를 초기화합니다.
- 현재 파라미터에서 손실의 기울기를 계산합니다.
- 기울기의 반대 방향으로 학습률만큼 갱신합니다.
- 손실 변화가 충분히 작아지거나 정한 횟수가 되면 멈춥니다.
기울기를 어느 데이터로 구하느냐에 따라 전체 데이터를 쓰는 배치, 한 개씩 쓰는 확률적(SGD), 일부를 쓰는 미니배치로 나눕니다. 신경망에서 기울기를 효율적으로 구하는 방법이 역전파입니다.
언제 쓰고 무엇을 얻나
(가상의 예를 코드로 계산) f(x) = x², 기울기 2x, 시작점 x₀ = 1로 학습률에 따른 변화를 봅니다.
| 학습률 η | x 값의 변화 (0, 1, 2, 3, 4번 갱신 후) | 양상 |
|---|---|---|
| 0.1 | 1.0000 → 0.8000 → 0.6400 → 0.5120 → 0.4096 | 천천히 0에 수렴 |
| 0.5 | 1.00 → 0.00 → 0.00 | 한 번에 최소점에 도달(이 함수에서만) |
| 1.0 | 1.00 → -1.00 → 1.00 → -1.00 → 1.00 | ±1을 오가며 수렴하지 않음 |
| 1.1 | 1.000 → -1.200 → 1.440 → -1.728 → 2.074 | 발산 |
이 함수에서는 x ← (1 − 2η)x이므로 |1 − 2η| < 1, 곧 0 < η < 1일 때 수렴합니다. 학습률이 너무 작으면 느리고 너무 크면 발산하는 현상을 볼 수 있습니다.
논문에는 이렇게 적는다
- 최적화기와 설정을 모두 적습니다: 단순 SGD인지 모멘텀(모멘텀)이나 Adam 같은 적응형 방법인지, 학습률과 감소 일정(스케줄), 배치 크기, 에폭 수.
- 초기화와 난수 시드: 비볼록 문제에서는 시작점에 따라 결과가 달라지므로 시드와 반복 횟수를 보고합니다.
- 수렴 기준: 멈춤 조건(손실 변화 임계값, 검증 손실 개선 정체 등)을 명시합니다.
- ‘전역 최솟값에 도달했다’고 쓰지 않습니다. 신경망처럼 비볼록한 문제에서는 지역 최솟값이나 안장점에 머무를 수 있고 경사하강법은 그 보장을 하지 않습니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
모델이 정답과 얼마나 차이 나는지를 계산한 뒤, 그 차이를 줄이는 방향으로 모델 내부 값들을 조금씩 계속 고쳐나갔다는 의미입니다.
운영관리 분야의 예측 모델에서도 경사하강법의 변형인 Adam 알고리즘을 이용해 모델을 학습시켰다는 뜻입니다.
컴퓨터 비전 분야에서 이미지를 올바르게 분류하도록 신경망의 가중치들을 경사하강법으로 조정했다는 의미입니다.
조금 더 깊게 보면
실제 논문에서는 순수한 경사하강법보다 미니배치 단위로 기울기를 추정하는 확률적 경사하강법(SGD)이나, 과거 기울기의 방향성을 누적해 진동을 줄이는 모멘텀 기법, 파라미터마다 학습률을 자동으로 조절하는 Adam·RMSProp 같은 적응적 최적화 알고리즘이 더 자주 쓰입니다.
이런 변형들은 모두 손실 함수의 기울기를 이용해 파라미터를 갱신한다는 기본 원리는 같지만, 수렴 속도와 안정성을 높이기 위해 갱신 규칙을 조정한 것입니다. 논문을 읽을 때는 어떤 옵티마이저를 썼는지, 학습률 스케줄링을 어떻게 적용했는지도 함께 살펴보면 실험 결과를 더 정확히 이해할 수 있습니다.
주의할 점
한 번에 얼마나 크게 이동할지를 정하는 학습률(learning rate)이 너무 크면 최적의 지점을 지나쳐 버려 오히려 학습이 불안정해지고, 너무 작으면 학습 속도가 지나치게 느려지거나 진짜 최적점이 아닌 지역적인 저점(local minimum)에 갇혀버릴 수 있습니다. 경사하강법으로 학습되는 대표적인 모델이 바로 인공신경망입니다.
헷갈리기 쉬운 용어
경사하강법은 ‘기울기를 어떻게 쓰나’에 관한 규칙이고, 기울기를 구하는 방법은 따로 있습니다.
| 용어 | 하는 일 | 경사하강법과의 관계 |
|---|---|---|
| 역전파 | 신경망의 기울기를 효율적으로 계산 | 경사하강법이 쓸 기울기를 구해 줍니다. |
| 확률적 경사하강법 | 데이터 일부로 기울기를 추정해 갱신 | 경사하강법의 변형입니다. |
| 손실 함수 | 예측이 틀린 정도를 수치화 | 경사하강법이 줄이려는 대상입니다. |
| Adam | 파라미터마다 학습률을 조절 | 기울기를 쓰는 갱신 규칙을 바꾼 방법입니다. |
참고 문헌
- Cauchy, A.-L. (1847). Méthode générale pour la résolution des systèmes d'équations simultanées. Comptes Rendus de l'Académie des Sciences, 25, 536–538.
- Robbins, H., & Monro, S. (1951). A stochastic approximation method. The Annals of Mathematical Statistics, 22(3), 400–407.
- Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. International Conference on Learning Representations.
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.