수학과 기하 / NOTE 15

선형계의 경사하강법

Gradient Descent

선형계의 목적함수, 기울기와 반복 갱신식을 살펴봅니다.

♫ 이 문서 듣기

개념에서 수식으로

먼저 이해할 내용

방정식을 한 번에 풀기보다 현재 답이 얼마나 틀렸는지 계산하고, 그 오차를 줄이는 방향으로 조금씩 이동할 수 있다. 이 글은 선형식의 잔차를 제곱오차로 만들고 반복해서 x를 갱신하는 과정을 다룬다.

기호를 먼저 읽기

Wᵀx−b
현재 x가 방정식을 얼마나 벗어나는지 나타내는 잔차
F(x)
잔차의 크기를 제곱한 스칼라 오차
∇F(x)
x를 바꾸었을 때 오차가 증가하는 국소 방향
α
한 번에 이동할 크기를 정하는 양의 계수
x₍t−1₎, xₜ
이전 반복과 현재 반복의 값

이 글의 흐름

만족시키려는 식을 정하고, 잔차의 제곱으로 오차를 측정한다. 기울기를 계산한 뒤 그 반대 방향으로 이동하고, 새 값에서 같은 과정을 반복한다.

주제와 표기

Gradient descent (Linear system)

방정식과 잔차를 먼저 구별한다

Wᵀx−b=0은 얻고 싶은 조건이다. 현재 x를 넣었을 때 왼쪽이 0이 아니면 그 값이 아직 남아 있는 잔차이다. 잔차를 계산할 수 있으면 현재 답이 목표에서 얼마나 벗어났는지 비교할 수 있다.

WTxb=0

오차를 하나의 숫자로 모은다

F(x)는 잔차의 크기를 제곱한 값이다. 잔차에 양수와 음수가 섞여 있어도 제곱하면 서로 상쇄되지 않으므로 전체 오차를 한 값으로 볼 수 있다. F가 작아진다는 것은 방정식을 더 잘 만족하는 방향으로 이동했다는 의미이다.

F[x]=|WTxb|2

기울기의 반대 방향으로 이동한다

∇F를 구한 뒤 α를 곱하고 이전 x에서 뺀다. 기울기는 오차가 커지는 방향을 알려주므로, 이를 빼는 것이 오차를 줄이는 기본 방향이다. 이해를 위한 단순 예로 이전 값이 2, 기울기가 3, α가 0.1이면 갱신값은 1.7이다. 이는 이 반복 규칙의 산술 예이며 실제 데이터의 해는 아니다.

마지막의 JᵀF 표기는 앞서 정의한 스칼라 F와 잔차벡터를 구분해 확인해야 한다. 이 줄만으로 차원이 맞는 일반 관계라고 단정하지 않고, 위에서 제시한 구체적인 기울기 식을 중심으로 읽는다.

F[x]=2W(WTxb)
xt=xt1αF[xt1]
F[x]=JTF[x]

정리하면

경사하강법은 답을 직접 외우는 방법이 아니라 오차를 기준으로 답을 갱신하는 절차이다. 방향과 이동 크기를 나누어 이해해야 한다.