콘텐츠로 이동

P2-6.3 경사하강법(gradient descent)의 직관

Section ID: P2-6.3 Version: v2026.07.20

P2-6.1에서는 최적화를 더 나은 값을 찾는 문제로 봤고, P2-6.2에서는 모델의 틀림을 손실(loss)이라는 숫자로 만드는 방법을 봤습니다. 이제 질문은 더 구체적입니다.

줄이고 싶은 숫자가 생겼다면, 이제 모델의 값을 어떻게 바꿀지 물어야 합니다.

경사하강법(gradient descent)은 이 질문에 대한 대표적인 답입니다. 이름은 어렵지만, 핵심은 단순합니다.

여기서는 경사하강법(gradient descent), 그래디언트(gradient), 학습률(learning rate), 업데이트(update), 반복(iteration)를 다시 정리합니다. 6.2에서 손실과 목적 함수를 읽었다면, 이제 그 값을 줄이기 위해 파라미터를 어떻게 조금씩 움직이는지 정리합니다.

여기서는 경사하강법 공식을 엄밀하게 유도하기보다, 손실을 줄이기 위해 값을 조금씩 바꾸는 반복 방법을 읽는 데 집중합니다. 여기서 그래디언트 방향, 반대 방향 이동, 학습률의 역할을 잡아 두면, 뒤에서 역전파(backpropagation)와 옵티마이저(optimizer)가 등장해도 왜 그런 계산이 필요한지 먼저 이해할 수 있습니다.

6.1과 6.2의 공통 장면으로 다시 보기

앞 절의 데이터를 그대로 둡니다.

학생 공부 시간 x 실제 점수 y
A 1 55
B 2 65
C 3 80
D 4 90

그리고 현재 직선 후보를 \(\hat{y} = 8x + 45\)라고 잡아 봅시다. 이 직선은 학생 C, D의 점수를 다소 낮게 예측합니다. 이제 경사하강법의 질문은 이 손실이 줄어들려면 a와 b를 어느 쪽으로 얼마나 움직여야 할까?입니다.

즉 Chapter 6의 세 절은 다음 하나의 흐름으로 읽을 수 있습니다.

  1. 6.1: 직선 후보를 비교해야 한다.
  2. 6.2: 비교 기준은 손실이다.
  3. 6.3: 손실이 줄어드는 쪽으로 후보를 조금씩 움직인다.

즉 현재 위치에서 손실이 어느 방향으로 커지는지 보고, 그 반대 방향으로 조금 움직인 뒤, 다시 손실을 보고, 이 과정을 반복합니다.

먼저 손실 곡선 위에서 보면, 경사하강법은 현재 위치에서 손실이 낮아지는 방향으로 작은 이동을 반복하는 방법입니다.

경사하강법이 손실 곡선 위에서 작은 단계로 손실이 낮은 방향으로 이동하는 흐름

이 이동을 학습 루프로 보면 다음처럼 읽을 수 있습니다.

flowchart TD
  A["현재 파라미터"]
  B["그래디언트 방향<br/>손실이 커지는 쪽"]
  C["학습률<br/>한 번에 움직일 크기"]
  D["업데이트된 파라미터"]
  E["손실 다시 계산"]

  A --> B
  B --> C
  C --> D
  D --> E
  E --> A

핵심 기준: 경사하강법(gradient descent)의 직관

  • 경사하강법(gradient descent)을 손실을 낮추기 위한 반복 이동 방법으로 설명할 수 있습니다.
  • 그래디언트(gradient)가 현재 위치의 방향 정보임을 설명할 수 있습니다.
  • 그래디언트 반대 방향으로 이동하는 이유를 설명할 수 있습니다.
  • 학습률(learning rate)을 한 번에 얼마나 움직일지 정하는 값으로 설명할 수 있습니다.
  • 경사하강법의 한계와 주의점을 입문 수준에서 설명할 수 있습니다.

세 가지 기준

기준 왜 중요한가 이 절에서 필요한 이해 수준
경사하강법은 손실이 줄어드는 쪽으로 작은 이동을 반복한다 학습이 한 번의 정답 도약이 아니라 반복적 조정이라는 점을 보여 준다 반복적으로 조금씩 이동한다는 구조를 이해한다
그래디언트 반대 방향으로 움직여야 한다 그래디언트는 손실이 커지는 방향 정보이므로 목표와 반대로 읽어야 한다 descent가 되는지 설명할 수 있으면 충분하다
학습률은 한 번의 이동 폭을 정한다 방향이 맞아도 보폭이 잘못되면 학습이 흔들리거나 느려질 수 있다 학습률을 발걸음 크기로 읽는 감각을 잡는다

산에서 내려오는 비유는 유용하지만 완전하지 않다

경사하강법은 산에서 내려오는 비유로 자주 설명됩니다. 높은 곳에 서 있을 때 주변 경사를 보고 더 낮아지는 방향으로 조금씩 내려간다는 설명입니다.

이 비유는 처음 이해하기에 좋습니다. 현재 위치는 현재 모델 파라미터를, 높이는 손실 값을, 내려가는 방향은 손실이 줄어드는 방향을 뜻한다고 보면 됩니다.

하지만 이 비유를 너무 믿으면 오해가 생깁니다. 실제 모델 학습에서는 산의 전체 지도를 한눈에 보는 것이 아닙니다. 현재 위치 근처의 방향을 읽고, 조금 움직인 뒤, 다시 확인합니다.

그래서 경사하강법은 한 번에 정답으로 뛰어가는 방법이 아니라, 현재 정보로 조금씩 개선하려는 반복 방법입니다.

공부 시간-점수 예시에서도 그렇습니다. 현재 직선이 학생 C, D를 전반적으로 낮게 예측한다면, 한 번에 완벽한 직선을 찍기보다 기울기 a를 조금 키우면 손실이 줄어드는가, 절편 b를 조금 조정하면 더 나아지는가를 반복해서 확인합니다.

그래디언트는 올라가는 방향을 알려 준다

그래디언트(gradient)는 현재 위치에서 함수값이 가장 빠르게 증가하는 방향과 연결됩니다. 손실 함수(loss function)를 생각하면, 그래디언트 방향은 손실이 커지는 방향입니다.

AI 학습에서는 보통 손실을 줄이고 싶습니다. 그래서 그래디언트가 가리키는 방향 그대로 움직이지 않고, 그 반대 방향으로 움직입니다. 그래디언트 방향은 손실이 커지는 쪽이고, 그래디언트의 반대 방향은 손실이 줄어드는 쪽입니다.

이것이 descent라는 말의 핵심입니다. gradient를 계산하지만, 목표는 올라가는 것이 아니라 내려가는 것입니다.

독자 기준에서 중요한 해석은 이렇습니다. 현재 직선이 전반적으로 점수를 너무 낮게 예측한다면, 손실을 줄이려면 보통 예측값을 더 올리는 방향으로 움직여야 합니다. 실제 계산에서는 그래디언트가 그 방향 정보를 숫자로 줍니다.

조금만 움직여야 한다

손실이 줄어드는 방향을 알았다고 해서 멀리 뛰어가면 되는 것은 아닙니다. 현재 위치의 그래디언트는 현재 근처의 정보입니다. 너무 크게 움직이면 더 낮은 곳으로 가는 대신 지나쳐 버릴 수 있습니다.

그래서 경사하강법에는 학습률(learning rate)이 필요합니다. 학습률은 한 번에 얼마나 움직일지 정하는 값입니다. 학습률이 너무 작으면 너무 천천히 움직이고, 적절하면 손실이 안정적으로 줄어들 수 있으며, 너무 크면 좋은 위치를 지나치거나 손실이 흔들릴 수 있습니다.

여기서는 학습률을 “발걸음 크기”로 이해합니다. 방향을 알고 있어도 발걸음이 너무 크거나 작으면 학습이 어려워집니다.

예를 들어 기울기 a를 한 번에 너무 크게 올리면 학생 D 쪽 오차는 줄어도 학생 A, B 쪽에서는 오히려 지나칠 수 있습니다. 반대로 너무 조금만 바꾸면 손실이 줄어드는 방향을 알아도 개선이 매우 느립니다. 학습률은 이 보폭을 정합니다.

업무에서는 무엇을 조금씩 바꾸는가

경사하강법은 “AI 모델 내부의 숫자를 바꾸는 방법”으로만 생각하면 멀게 느껴집니다. 업무 관점에서는 목표가 있고, 현재 설정으로 결과를 낸 뒤, 결과가 얼마나 나쁜지 숫자로 보고, 그 숫자가 줄어드는 방향으로 설정을 조금 바꾸고, 다시 확인한다고 이해합니다.

이 구조는 여러 업무 예시로 생각해 볼 수 있습니다.

업무 상황 줄이고 싶은 것 조금씩 바꾸는 것 경사하강법적 관점
광고 문구 추천 클릭되지 않은 정도, 전환이 낮은 정도 문구 후보의 점수, 노출 순서 어떤 표현이 더 나은 결과를 만드는지 반복적으로 조정한다
상품 추천 사용자가 관심 없는 상품을 추천한 정도 상품별 가중치, 사용자 취향 표현 추천 결과의 손실을 보고 사용자와 상품 표현을 조정한다
수요 예측 실제 판매량과 예측 판매량의 차이 계절성, 가격, 이벤트 영향의 가중치 예측 오차가 줄어드는 쪽으로 모델 값을 바꾼다
불량 탐지 정상 제품을 불량으로 보거나 불량 제품을 놓친 정도 센서값의 중요도, 판단 경계 잘못된 판단을 줄이도록 기준을 조금씩 움직인다
배송 시간 예측 실제 도착 시간과 예측 도착 시간의 차이 거리, 시간대, 교통 변수의 영향 오차가 줄어드는 방향으로 변수의 영향력을 조정한다

여기서 중요한 점은 사람이 업무 규칙을 하나하나 완성해서 넣는 것이 아니라는 점입니다. 사람은 목표와 데이터, 손실을 정하고, 모델은 반복 계산을 통해 내부 값을 조정합니다. 사람이 직접 "비가 오면 10분 더한다" 같은 규칙을 완성하는 방식은 규칙 기반 접근에 가깝고, 모델이 손실을 보고 비, 거리, 시간대, 교통량의 영향을 데이터에서 조정하는 방식은 학습 기반 접근에 가깝습니다.

이 예시는 경사하강법이 모든 업무 문제를 자동으로 해결한다는 뜻이 아닙니다. 업무에서는 데이터 품질, 목표 설정, 비용, 안전, 설명 가능성 같은 조건이 함께 필요합니다. 경사하강법은 그중 “정해진 손실을 줄이기 위해 값을 어떻게 바꿀 것인가”에 답하는 계산 방법입니다.

업데이트 식은 이동의 구조를 압축한 표현이다

경사하강법은 보통 다음과 같은 모양의 식으로 표현됩니다.

\[ \theta_{\text{new}} = \theta_{\text{old}} - \eta \nabla J(\theta) \]

처음 보면 복잡해 보이지만, 읽는 방법은 단순합니다.

기호 입문적 의미
\(\theta\) 모델이 조정하는 파라미터(parameter)
\(J(\theta)\) 줄이고 싶은 목적 함수(objective function)
\(\nabla J(\theta)\) 현재 위치에서 손실이 커지는 방향 정보
\(\eta\) 학습률(learning rate), 한 번에 움직이는 크기
\(-\eta \nabla J(\theta)\) 손실이 줄어드는 쪽으로 조금 움직이는 양

여기서는 이 식을 유도하기보다, 식이 말하는 구조를 읽습니다. 즉 현재 파라미터에서 그래디언트 반대 방향으로 학습률만큼 조금 이동한다고 읽습니다.

공통 장면으로 읽으면 \(\theta\)는 직선의 a, b이고, \(J(\theta)\)는 학생 네 명 전체에서 계산한 평균 손실입니다. 식은 결국 현재 직선이 데이터에 얼마나 안 맞는지 보고, 더 잘 맞는 직선 쪽으로 조금 이동한다는 말을 압축해 적은 것입니다.

반복이 학습처럼 보이는 이유

경사하강법은 같은 일을 반복합니다.

  1. 현재 파라미터로 예측한다.
  2. 손실을 계산한다.
  3. 그래디언트를 계산한다.
  4. 파라미터를 조금 바꾼다.
  5. 다시 예측한다.

이 반복이 학습(training)의 핵심 흐름처럼 보입니다. 모델이 스스로 개념을 이해한다기보다, 손실이 줄어드는 방향으로 내부 값을 조정합니다.

독자가 여기서 이해해야 할 핵심은 정답 직선을 사람이 직접 적어 넣는 것손실을 보고 직선을 조금씩 조정하는 것의 차이입니다. 전자는 규칙을 직접 쓰는 쪽에 가깝고, 후자는 데이터와 손실을 기준으로 학습하는 쪽에 가깝습니다.

이때 중요한 것은 모델이 “정답 규칙”을 직접 받는 것이 아니라는 점입니다. 모델은 현재 파라미터로 예측하고, 손실을 보고, 방향 정보를 이용해 파라미터를 바꿉니다. 정답 규칙을 직접 작성하는 방식은 규칙 기반 접근에 가깝고, 손실이 줄어드는 방향으로 파라미터를 조정하는 방식은 학습 기반 접근의 기본 흐름에 가깝습니다.

사례 및 예시

사례 1. 가격을 고정 규칙으로 정하지 않고 조금씩 조정하는 추천 시스템

온라인 서비스가 상품 추천 순서를 조정한다고 해 보겠습니다. 사람은 최근에 본 상품과 비슷하면 점수를 올린다, 할인 상품이면 더 보여 준다 같은 규칙을 먼저 만들 수 있습니다.

하지만 실제 클릭과 구매 반응은 그렇게 단순하지 않습니다. 어떤 사용자에게는 할인보다 브랜드가 중요하고, 어떤 사용자에게는 최근 행동보다 계절성이 더 중요할 수 있습니다. 모든 조합을 사람이 규칙으로 쓰려 하면 빠르게 복잡해집니다.

경사하강법 관점에서는 모델이 먼저 추천 점수를 내고, 실제 반응과의 차이를 손실로 계산한 뒤, 그 손실이 줄어드는 방향으로 내부 가중치를 조금씩 조정합니다. 이때 한 번에 크게 바꾸지 않고 작은 이동을 반복하는 이유는, 지금 보고 있는 방향 정보가 현재 위치 근처에서만 믿을 만하기 때문입니다.

이 사례는 경사하강법을 수식을 외우는 절이 아니라 반응을 보고 조금씩 기준을 조정하는 반복 절차로 읽게 해 줍니다. 동시에 학습률이 너무 크면 추천이 흔들리고, 너무 작으면 개선 속도가 지나치게 느려질 수 있다는 점도 함께 보여 줍니다.

항상 완벽한 답을 보장하지는 않는다

경사하강법은 강력하지만, 완벽한 답을 자동으로 보장하는 방법은 아닙니다.

결과는 여러 조건에 영향을 받습니다.

조건 왜 중요한가
시작 위치(initialization) 어디서 출발하느냐에 따라 경로가 달라질 수 있다
학습률(learning rate) 너무 작으면 느리고, 너무 크면 불안정할 수 있다
손실 함수의 모양(loss landscape) 골짜기, 평평한 구간, 여러 낮은 지점이 있을 수 있다
데이터(data) 손실은 데이터에서 계산되므로 데이터 품질에 영향을 받는다
반복 횟수(iterations) 너무 적으면 덜 학습되고, 너무 많으면 과적합될 수 있다

이것이 6.1에서 말한 “최적은 완벽하다는 뜻이 아니다”와 연결됩니다. 경사하강법은 주어진 기준과 조건 안에서 더 나은 방향으로 움직이는 방법입니다. 현실의 모든 조건을 자동으로 해결하지 않습니다.

체크리스트

  • 경사하강법(gradient descent)을 손실을 낮추기 위한 반복 이동 방법으로 설명할 수 있다.
  • 그래디언트(gradient)가 현재 위치에서 손실이 커지는 방향과 연결됨을 설명할 수 있다.
  • 손실을 줄이기 위해 그래디언트 반대 방향으로 움직인다는 점을 설명할 수 있다.
  • 학습률(learning rate)을 한 번에 움직이는 크기로 설명할 수 있다.
  • 경사하강법 업데이트 식을 현재 값에서 그래디언트 반대 방향으로 조금 이동한다는 구조로 읽을 수 있다.
  • 경사하강법이 시작 위치, 학습률, 손실 함수 모양, 데이터, 반복 횟수에 영향을 받는다는 점을 설명할 수 있다.
  • 손실을 줄인다는 말이 실제로 파라미터를 어떻게 바꾸는지까지 연결해 설명할 수 있다.
  • 그래디언트 방향과 그 반대 방향 이동이 왜 필요한지 구분할 수 있다.

출처와 참고 자료

  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, Chapter 8: Optimization for Training Deep Models, MIT Press, 2016, 확인 날짜: 2026-07-20. 딥러닝 최적화에서 비용 함수, 파라미터, 그래디언트 기반 이동, 경사하강법, 학습률의 역할을 설명하는 근거로 사용했다.
  • Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Cambridge University Press, 2004, 확인 날짜: 2026-07-20. 최적화 문제와 그래디언트 기반 반복 이동을 수학적 최적화 맥락에서 확인하는 보조 근거로 사용했다.