경사하강법 (Gradient Descent)

컴퓨터과학·AI
한 줄 정의: 모델의 오차(손실)를 줄이기 위해 손실이 감소하는 방향(기울기의 반대 방향)으로 파라미터를 조금씩 업데이트해 나가는 최적화 알고리즘입니다.
경사하강법경사하강법 단계 순서: 파라미터 초기화 → 기울기 계산, 기울기 계산 → 파라미터 갱신, 파라미터 갱신 → 수렴 확인, 파라미터 갱신 → 기울기 계산(반복).파라미터 초기화무작위 값기울기 계산손실 함수의편미분(역전파)파라미터 갱신θ ← θ − η∇L, η는학습률수렴 확인손실 변화 미미하면종료반복1234학습률이 크면 발산, 작으면 느림; SGD·모멘텀·Adam 등 변형한계국소 최솟값·안장점에 머물 수 있음경사하강법경사하강법 단계 순서: 파라미터 초기화 → 기울기 계산, 기울기 계산 → 파라미터 갱신, 파라미터 갱신 → 수렴 확인, 파라미터 갱신 → 기울기 계산(반복).파라미터 초기화무작위 값기울기 계산손실 함수의편미분(역전파)파라미터 갱신θ ← θ − η∇L, η는학습률수렴 확인손실 변화 미미하면종료반복1234학습률이 크면 발산, 작으면 느림; SGD·모멘텀·Adam등 변형한계국소 최솟값·안장점에 머물 수 있음

쉽게 풀면

짙은 안개가 낀 산속에서 눈을 감은 채 가장 낮은 계곡을 찾아 내려간다고 상상해 보세요. 전체 지형이 보이지 않으니 한 번에 목적지를 알 수는 없지만, 발밑의 경사를 느껴 가장 가파르게 내려가는 방향으로 한 걸음씩 옮기다 보면 결국 낮은 곳에 도달하게 됩니다. 경사하강법도 똑같습니다.

모델의 예측이 얼마나 틀렸는지를 나타내는 손실 함수의 "기울기(경사)"를 계산해서, 그 값이 줄어드는 방향으로 모델의 파라미터를 아주 조금씩 계속 수정해 나갑니다. 이 과정을 수없이 반복하면 손실이 가장 작은 지점, 즉 모델이 가장 잘 맞는 상태에 가까워집니다.

왜 중요한가

경사하강법은 딥러닝을 포함한 대부분의 머신러닝 모델이 데이터로부터 학습하는 핵심 메커니즘이기 때문에 거의 모든 인공지능 논문에서 직간접적으로 언급됩니다.

모델 구조나 손실 함수를 아무리 정교하게 설계해도 결국 파라미터를 실제로 조정하는 것은 경사하강법 계열의 최적화 알고리즘이므로, 학습 속도·수렴 안정성·일반화 성능 같은 연구 주제들이 모두 이 알고리즘의 동작 방식과 맞닿아 있습니다.

또한 최적화 기법 자체의 개선(모멘텀, 적응적 학습률 등)은 독립된 연구 분야로 다뤄질 만큼 중요하게 취급됩니다.

어떤 절차인가

경사하강법은 손실 함수 L(θ)의 기울기를 구해 반대 방향으로 파라미터를 조금씩 옮기는 반복 알고리즘입니다.

θ ← θ − η ∇L(θ) (η는 학습률)

  1. 파라미터를 초기화합니다.
  2. 현재 파라미터에서 손실의 기울기를 계산합니다.
  3. 기울기의 반대 방향으로 학습률만큼 갱신합니다.
  4. 손실 변화가 충분히 작아지거나 정한 횟수가 되면 멈춥니다.

기울기를 어느 데이터로 구하느냐에 따라 전체 데이터를 쓰는 배치, 한 개씩 쓰는 확률적(SGD), 일부를 쓰는 미니배치로 나눕니다. 신경망에서 기울기를 효율적으로 구하는 방법이 역전파입니다.

언제 쓰고 무엇을 얻나

(가상의 예를 코드로 계산) f(x) = x², 기울기 2x, 시작점 x₀ = 1로 학습률에 따른 변화를 봅니다.

학습률 ηx 값의 변화 (0, 1, 2, 3, 4번 갱신 후)양상
0.11.0000 → 0.8000 → 0.6400 → 0.5120 → 0.4096천천히 0에 수렴
0.51.00 → 0.00 → 0.00한 번에 최소점에 도달(이 함수에서만)
1.01.00 → -1.00 → 1.00 → -1.00 → 1.00±1을 오가며 수렴하지 않음
1.11.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파라미터마다 학습률을 조절기울기를 쓰는 갱신 규칙을 바꾼 방법입니다.

참고 문헌

  1. 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.
  2. Robbins, H., & Monro, S. (1951). A stochastic approximation method. The Annals of Mathematical Statistics, 22(3), 400–407.
  3. Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. International Conference on Learning Representations.
  4. Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

개념 계통

분야 전체 개념 지도 보기 →

관련 용어