경사하강법

편집 역사 토론
수치해석 최적설계 마지막 수정: 2026-07-19 04:21:07

1. 개요[편집]

경사하강법
Gradient Descent
분류1차 반복 최적화 알고리즘
필요 정보목적함수의 1차 기울기(gradient)
수렴 차수선형(1차) — 강볼록 가정 하
최초 제안코시(A. L. Cauchy), 1847년
대표 응용기계학습 학습, 위상 최적화, 역문제

산에서 안개 속에 갇혔다면? 발밑에서 가장 가파른 내리막을 골라 한 걸음씩 내려가라. 골짜기가 하나뿐이라면 언젠간 도착한다.

경사하강법(gradient descent, 최급강하법)은 미분 가능한 목적함수 f(x)f(\mathbf{x})의 최솟값을 찾기 위해, 현재 위치에서의 기울기 f\nabla f반대 방향으로 반복적으로 이동하는 1차 최적화 알고리즘이다. 갱신식은 민망할 정도로 단순하다.

xk+1=xkηkf(xk)\mathbf{x}_{k+1} = \mathbf{x}_k - \eta_k \nabla f(\mathbf{x}_k)

여기서 ηk>0\eta_k > 0가 스텝 크기(step size)이며, 기계학습 바닥에서는 학습률(learning rate)이라 부른다. 기울기가 함수값이 가장 빠르게 증가하는 방향이라는 사실 하나에서 알고리즘 전체가 유도되므로, 최급강하법(steepest descent)이라는 이름도 함께 쓴다.

이 조잡해 보이는 방법이 21세기 들어 세상에서 가장 많이 실행되는 수치 알고리즘 자리에 오른 이유는 명확하다. 2차 미분(자코비안 행렬의 미분, 즉 헤시안)을 요구하지 않기 때문에 미지수가 수억 개여도 메모리가 버틴다. 뉴턴-랩슨법이 우아하지만 n×nn \times n 헤시안을 저장하고 분해해야 하는 것과 대조적이다.

2. 왜 기울기 반대 방향인가[편집]

x\mathbf{x} 근처에서 테일러 급수로 1차 전개하면

f(x+d)f(x)+f(x)Tdf(\mathbf{x} + \mathbf{d}) \approx f(\mathbf{x}) + \nabla f(\mathbf{x})^{\mathsf{T}} \mathbf{d}

이다. 이동 거리 d\|\mathbf{d}\|를 고정한 채 우변을 최소화하는 방향은 코시-슈바르츠 부등식에 의해 df\mathbf{d} \propto -\nabla f일 때다. 즉 경사하강 방향은 국소적으로 최선의 방향이다.

문제는 “국소적으로만” 최선이라는 것. 등고선이 길쭉한 타원인 계곡에서는 최급강하 방향이 계곡 축을 향하지 않고 벽을 향해 비스듬히 꽂히므로, 궤적이 지그재그로 튕기며 골짜기를 따라 기어간다. 이 지그재그가 경사하강법의 모든 고통의 근원이다.

3. 수렴 속도와 조건수[편집]

ffμ\mu-강볼록이고 기울기가 LL-립시츠 연속일 때, 고정 스텝 η=2/(L+μ)\eta = 2/(L+\mu)를 쓰면

xkx(κ1κ+1)kx0x\|\mathbf{x}_k - \mathbf{x}^*\| \le \left(\frac{\kappa - 1}{\kappa + 1}\right)^{k} \|\mathbf{x}_0 - \mathbf{x}^*\|

가 성립한다. 여기서 κ=L/μ\kappa = L/\mu는 헤시안의 조건수다. 이 식이 말하는 바는 잔인하다.

  • κ=1\kappa = 1(완벽한 원형 등고선)이면 수축률이 0, 즉 한 번에 도착한다.
  • κ=1000\kappa = 1000이면 수축률이 약 0.998이다. 오차를 10배 줄이는 데만 1000회 이상의 반복이 필요하다.

수렴 차수 자체는 선형(1차)이라 뉴턴-랩슨법의 2차 수렴에 한참 못 미친다. 대신 반복 1회의 비용이 압도적으로 싸다. 그래서 실무 선택은 늘 “비싼 반복 적게 vs 싼 반복 많이”의 교환이며, 미지수가 커질수록 저울은 경사하강 쪽으로 기운다.

스텝 크기 선택도 만만치 않다. η>2/L\eta > 2/L이면 발산하고, 너무 작으면 기어간다. 매 반복 η\eta를 적당히 찾아주는 것이 선탐색(line search)이며, 아르미호(Armijo) 조건이나 울프(Wolfe) 조건을 만족하는 η\eta를 백트래킹으로 찾는 방식이 표준이다.

4. 주요 변형[편집]

원본 경사하강법을 그대로 쓰는 경우는 요즘 거의 없다. 지그재그와 느린 수렴을 때우기 위한 개조판들이 사실상 표준이 됐다.

  • 모멘텀(momentum): 이전 이동 방향을 관성처럼 누적한다. vk+1=βvkηf\mathbf{v}_{k+1} = \beta \mathbf{v}_k - \eta \nabla f, xk+1=xk+vk+1\mathbf{x}_{k+1} = \mathbf{x}_k + \mathbf{v}_{k+1}. 계곡 축 방향 성분은 누적되어 커지고, 벽에 부딪히는 진동 성분은 서로 상쇄된다.
  • 네스테로프 가속(NAG): 관성으로 먼저 나아간 지점에서 기울기를 평가한다. 볼록 문제에서 수렴률을 O(1/k)O(1/k)에서 O(1/k2)O(1/k^2)로, 강볼록에서는 κ\kappa 의존성을 κ\sqrt{\kappa}로 개선한다. 1차 방법이 이론적으로 도달 가능한 최적 한계다.
  • 확률적 경사하강법(SGD): 전체 데이터의 기울기 대신 무작위 소표본(미니배치)의 기울기를 쓴다. 한 걸음이 부정확해지는 대신 걸음 수를 수백 배 늘릴 수 있다. 부정확함이 오히려 얕은 국소최솟값을 탈출시키는 잡음 역할을 한다는 것이 재밌는 부수효과.1
  • 적응 학습률 계열: AdaGrad, RMSProp, Adam은 좌표별로 과거 기울기 크기를 누적해 학습률을 자동 조절한다. 스케일이 제각각인 파라미터를 다룰 때 사실상 필수.
  • 준-뉴턴법으로의 진화: 기울기 이력으로 헤시안 역행렬을 근사하면 BFGS, 메모리를 제한하면 L-BFGS다. 중규모 결정론적 문제에서는 여전히 최강자다.

5. 시뮬레이션 분야에서의 활용[편집]

기계학습이 유명하지만, CAE 바닥에서도 경사하강 계열은 뼈대 알고리즘이다.

위상 최적화형상 최적화에서 설계변수는 수십만~수백만 개(요소마다 하나씩)에 달한다. 이 규모에서 헤시안은 논외이므로, 민감도 해석의 수반법(adjoint method)으로 기울기를 한 번의 추가 해석만에 뽑아낸 뒤 경사 기반 갱신으로 설계를 굴린다. “수반법 + 경사하강”이 현대 설계 최적화의 국룰 조합인 이유다.

역문제에서도 마찬가지다. 관측과 시뮬레이션의 잔차 제곱합을 목적함수로 놓고(최소자승법의 비선형 버전), 물성값이나 초기조건을 경사 기반으로 갱신한다. 물리 정보 신경망은 아예 지배방정식 잔차를 손실함수로 삼아 신경망 가중치를 경사하강으로 학습시키는 구조다.

기울기를 어떻게 구하느냐도 중요하다. 유한차분으로 구하면 설계변수 개수만큼 해석을 반복해야 하고 수치미분의 오차 문제까지 얹힌다. 그래서 현대 코드는 자동 미분이나 수반 방정식으로 기울기를 정확하게 뽑는다.

6. 한계[편집]

경사하강법은 국소 최적화기다. 볼록하지 않은 목적함수에서는 출발점이 도착점을 결정한다. 전역 최적해를 원하면 유전 알고리즘, 입자 군집 최적화, 담금질 모사 같은 전역 탐색기나 베이지안 최적화를 붙여야 한다.

고차원에서 진짜 골칫거리는 국소최솟값보다 안장점(saddle point)이라는 것도 밝혀졌다. 차원이 높을수록 임계점이 모든 방향으로 볼록할 확률은 급격히 낮아지므로, 대부분의 정체 구간은 안장점 근처의 평평한 고원이다. 모멘텀과 잡음이 여기서 탈출 도구로 기능한다.

부등식 제약이 붙으면 단순 경사하강은 그대로 쓸 수 없고, 사영(projection)을 얹거나 카루시-쿤-터커 조건을 만족하는 해법으로 넘어가야 한다. 목적함수가 미분 불가능하면 열화판인 열경사법(subgradient method)을 써야 하는데, 수렴률이 O(1/k)O(1/\sqrt{k})로 떨어진다.

7. 여담[편집]

코시가 1847년 천체 계산을 편하게 하려고 제안한 이 방법은2 150년 넘게 “가장 단순하지만 가장 느린 방법”이라는 다소 무시 섞인 평가를 받았다. 그러다 딥러닝이 미지수 수십억 개짜리 문제를 들고 오면서 상황이 뒤집혔다. 헤시안을 못 쓰는 규모에서는, 느린 1차 방법이 유일하게 실행 가능한 방법이기 때문이다. 알고리즘의 우열이 문제의 크기에 따라 뒤집힌 교과서적 사례다.3

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 그래서 SGD의 잡음을 “버그가 아니라 기능”이라고 부른다. 결정론적 경사하강이 얌전히 빠져 죽을 웅덩이를 SGD는 덜덜 떨면서 기어 나온다. 다만 마지막 수렴 구간에서는 이 잡음이 방해가 되므로 학습률을 점차 줄여준다.

  2. 코시의 원논문은 두 쪽짜리 짧은 노트였다. 천체 궤도 계산에서 여러 관측식을 동시에 만족시키는 값을 찾는 실용적 필요에서 나온 것이지, 최적화 이론을 세우려던 게 아니었다.

  3. 비슷한 역전이 크리로프 부분공간법에서도 일어났다. 직접법인 가우스 소거법이 정확하지만, 미지수가 백만을 넘는 순간 “정확한 답을 우주 종말까지 계산할 것인가, 근사해를 오늘 받을 것인가”의 문제가 된다.