🧭 선수 개념 — 이 문서는 다음을 안다는 전제로 쓰였어요: 도함수 (고등) · 벡터 (고등)
정의
경사하강법(gradient descent)은 미분 가능한 함수 $f:\mathbb{R}^n \to \mathbb{R}$의 지역 최솟값(local minimum)을 반복적으로 근사하는 최적화 알고리즘이다. 현재 지점 $x_k$에서 그래디언트(gradient) $\nabla f(x_k)$(내블라 $f$라 읽는다. $f$의 각변수에 대한 도함수를 성분으로 갖는 벡터 $\left(\dfrac{\partial f}{\partial x_1}, \dots, \dfrac{\partial f}{\partial x_n}\right)$이다)를 계산하고, 그 반대 방향으로 이동해 다음 지점을 구한다.
$$x_{k+1} = x_k - \eta \nabla f(x_k)$$
여기서 $\eta > 0$(에타)는 학습률(learning rate)로, 한 번에 이동하는 보폭을 결정하는 상수다. 이 과정을 $\nabla f(x_k)$가 충분히 0에 가까워질 때까지 반복한다.
직관
안개가 짙게 낀 산에서 가장 낮은 곳을 찾아 내려간다고 생각해 보자. 전체 지형을 볼 수는 없지만, 발밑의 경사만은 느낄 수 있다. 매 순간 가장 가파르게 내려가는 방향으로 한 걸음씩 내딛으면 결국 골짜기(최솟값)에 도달할 가능성이 높다. 그래디언트 $\nabla f(x)$는 $f$가 가장 빠르게 증가하는 방향을 가리키므로, 그 반대 방향 $-\nabla f(x)$가 바로 "가장 가파른 내리막"이다. 학습률 $\eta$는 보폭의 크기이며, 너무 크면 골짜기를 넘어뛰어 반대편으로 튕겨 나가고(발산), 너무 작으면 한없이 느리게 내려간다.
성질
$f$가 볼록함수(convex function)이고 $\eta$가 적절히 작으면, $x_k$는 전역 최솟값으로 수렴한다.
$f$가 볼록하지 않으면 지역 최솟값이나 안장점(saddle point, $\nabla f = 0$이지만 최솟값도 최댓값도 아닌 점)에 갇힐 수 있다.
정지 조건은 보통 $\lVert \nabla f(x_k) \rVert$가 미리 정한 허용오차보다 작아지는 순간이다.
학습률이 너무 크면 반복값이 발산하거나 진동하고, 너무 작으면 수렴 속도가 매우 느려진다.
딥러닝 모델(신경망)을 학습시킬 때, 모델의 예측과 실제 정답의 차이를 나타내는 손실 함수(loss function)를 최소화해야 한다. 이때 손실 함수의 변수는 모델이 가진 수백만 개의 가중치(weight)이며, 역전파(backpropagation)로 각 가중치에 대한 그래디언트를 계산한 뒤 경사하강법으로 가중치를 조금씩 갱신한다. 사진 분류기, 음성 인식기, 챗봇 등 대부분의 딥러닝 모델이 이 방식으로 학습된다.
⚠️ 흔한 실수
잘못된 생각: 학습률 $\eta$는 클수록 더 빨리 수렴한다. → 왜 틀렸는지: $\eta$가 너무 크면 최솟값을 지나쳐 반대편으로 넘어가는 진동이 생기고, 심하면 $x_k$가 점점 커지며 발산한다. 적절한 크기의 $\eta$를 골라야 안정적으로 수렴한다.
잘못된 생각: 경사하강법은 항상 전역 최솟값을 찾아준다. → 왜 틀렸는지: $f$가 볼록하지 않으면 지형에 여러 골짜기가 있을 수 있고, 출발점에 따라 알고리즘은 전역 최솟값이 아닌 근처의 지역 최솟값에서 멈출 수 있다.
잘못된 생각: $\nabla f(x) = 0$이면 그 지점은 무조건 최솟값이다. → 왜 틀렸는지: 그래디언트가 0인 점은 극댓값이거나 안장점일 수도 있다. 최솟값인지 확인하려면 이계도함수(헤시안 행렬)의 부호를 추가로 살펴야 한다.
확인 문제
$f(x) = x^2 - 4x + 6$에서 $x_0 = 0$, $\eta = 0.1$로 두 번 반복하여 $x_2$를 구하고, 반복을 계속하면 어떤 값으로 수렴할지 $f'(x)=0$을 풀어 확인하라.
$f(x) = (x-1)^2$에서 $\eta = 1.2$로 경사하강법을 두 번 반복하면 $x_k$가 오히려 출발점보다 최솟값에서 멀어짐을 계산으로 보여라. 왜 이런 일이 생기는지 설명하라.
$f(x,y) = x^2 + y^2$의 그래디언트 $\nabla f(x,y)$를 구하고, 이 함수의 최솟값이 왜 원점 $(0,0)$인지 설명하라.