개념에서 수식으로
먼저 이해할 내용
방정식을 한 번에 풀기보다 현재 답이 얼마나 틀렸는지 계산하고, 그 오차를 줄이는 방향으로 조금씩 이동할 수 있다. 이 글은 선형식의 잔차를 제곱오차로 만들고 반복해서 x를 갱신하는 과정을 다룬다.
기호를 먼저 읽기
- Wᵀx−b
- 현재 x가 방정식을 얼마나 벗어나는지 나타내는 잔차
- F(x)
- 잔차의 크기를 제곱한 스칼라 오차
- ∇F(x)
- x를 바꾸었을 때 오차가 증가하는 국소 방향
- α
- 한 번에 이동할 크기를 정하는 양의 계수
- x₍t−1₎, xₜ
- 이전 반복과 현재 반복의 값
이 글의 흐름
만족시키려는 식을 정하고, 잔차의 제곱으로 오차를 측정한다. 기울기를 계산한 뒤 그 반대 방향으로 이동하고, 새 값에서 같은 과정을 반복한다.
주제와 표기
Gradient descent (Linear system)
방정식과 잔차를 먼저 구별한다
Wᵀx−b=0은 얻고 싶은 조건이다. 현재 x를 넣었을 때 왼쪽이 0이 아니면 그 값이 아직 남아 있는 잔차이다. 잔차를 계산할 수 있으면 현재 답이 목표에서 얼마나 벗어났는지 비교할 수 있다.
오차를 하나의 숫자로 모은다
F(x)는 잔차의 크기를 제곱한 값이다. 잔차에 양수와 음수가 섞여 있어도 제곱하면 서로 상쇄되지 않으므로 전체 오차를 한 값으로 볼 수 있다. F가 작아진다는 것은 방정식을 더 잘 만족하는 방향으로 이동했다는 의미이다.
기울기의 반대 방향으로 이동한다
∇F를 구한 뒤 α를 곱하고 이전 x에서 뺀다. 기울기는 오차가 커지는 방향을 알려주므로, 이를 빼는 것이 오차를 줄이는 기본 방향이다. 이해를 위한 단순 예로 이전 값이 2, 기울기가 3, α가 0.1이면 갱신값은 1.7이다. 이는 이 반복 규칙의 산술 예이며 실제 데이터의 해는 아니다.
마지막의 JᵀF 표기는 앞서 정의한 스칼라 F와 잔차벡터를 구분해 확인해야 한다. 이 줄만으로 차원이 맞는 일반 관계라고 단정하지 않고, 위에서 제시한 구체적인 기울기 식을 중심으로 읽는다.
정리하면
경사하강법은 답을 직접 외우는 방법이 아니라 오차를 기준으로 답을 갱신하는 절차이다. 방향과 이동 크기를 나누어 이해해야 한다.