이 강의의 목표는 컴퓨터가 큰 행렬 계산과 미분을 안정적으로 처리하는 법을 아주 기초부터 이해하는 것입니다.
먼저 오늘의 핵심 식을 봅니다.
dxdy=dudydxdu
이 식을 외우기 전에, 식 안의 말과 기호를 먼저 하나씩 풀어야 합니다.
| 기호 |
읽는 법 |
뜻 |
| \dfrac{dy} |
y를 x로 미분 |
x가 조금 바뀔 때 y가 바뀌는 비율 |
| u |
유 |
x로부터 계산되는 중간값 |
| \dfrac{dy} |
y를 u로 미분 |
u가 바뀔 때 y가 바뀌는 비율 |
| κ |
카파 |
조건수, 문제가 오차에 민감한 정도 |
| \sigma_{\max},\sigma_ |
시그마 맥스/민 |
행렬의 가장 큰/작은 특이값 |
수학에서 어려운 부분은 계산보다 읽기입니다. 뜻을 모르고 계산하면 공식이 암호처럼 보입니다.
계산기는 실수를 무한히 정확하게 저장하지 못하고 작은 반올림 오차를 냅니다. 수치선형대수는 큰 행렬 계산에서 이런 오차가 커지지 않도록 조심하는 분야입니다. 자동미분은 복잡한 함수의 미분을 손으로 풀지 않고 계산 과정을 따라 조립하는 방법입니다.
핵심 식은 연쇄법칙입니다.
dxdy=dudydxdu
y가 u로부터 계산되고, u가 다시 x로부터 계산되는 상황입니다. 기호를 하나씩 대입해 읽습니다.
- dxdu: x를 조금 흔들면 중간값 u가 얼마나 바뀌는가.
- dudy: 그 u의 변화가 최종값 y를 얼마나 바꾸는가.
- 두 비율을 곱하면 x의 변화가 y까지 전달되는 총 비율이 나옵니다.
즉 이 식은 "변화가 x→u→y로 전달될 때, 각 단계의 변화율을 곱해 이어 붙인다"는 뜻입니다.
신경망은 수많은 간단한 연산이 사슬처럼 이어진 큰 함수입니다. 이 전체를 손으로 한 번에 미분하는 것은 불가능합니다. 하지만 각 연산의 미분은 간단합니다. 연쇄법칙은 이 간단한 조각들을 곱해서 전체 미분을 조립할 수 있게 해 줍니다.
특히 손실은 스칼라 하나이고 파라미터는 수백만 개입니다. 그래서 미분을 손실 쪽(뒤)에서 시작해 입력 쪽(앞)으로 곱해 가며 전달하는 방식이 효율적입니다. 이것을 역방향 자동미분(reverse-mode)이라고 하며, 딥러닝의 역전파가 바로 이것입니다. 앞에서부터 계산하는 forward-mode도 있지만, 출력이 하나이고 입력이 많을 때는 reverse-mode가 훨씬 경제적입니다.
한편 조립 과정에서 중간값을 근사 숫자로 다루므로 오차가 쌓일 수 있습니다. 이 오차가 얼마나 증폭되는지를 알려 주는 지표가 조건수입니다. 그래서 수치 안정성과 자동미분은 같은 무대에서 다룹니다.
행렬 A로 방정식 Ax=b를 풀 때, b의 작은 오차가 답 x를 얼마나 흔드는지를 조건수 κ가 알려 줍니다.
κ(A)=σminσmax
σmax는 A가 벡터를 가장 크게 늘이는 배율, σmin은 가장 작게 줄이는 배율(특이값)입니다. 두 배율의 차이가 크면 κ가 큽니다. 조건수가 크면 입력을 조금만 바꾸어도 답이 크게 흔들립니다. 예를 들어 κ=106이면 입력의 상대오차가 답에서 최대 약 100만 배로 커질 수 있습니다. 반대로 κ가 1에 가까우면 안정적입니다.
문제: y=(3x+1)2을 x=2에서 미분하라.
중간값을 u=3x+1로 두면 y=u2입니다. 각 단계의 미분은 다음과 같습니다.
dxdu=3,dudy=2u
x=2일 때 u=3⋅2+1=7이므로
dudy=2⋅7=14
연쇄법칙으로 곱합니다.
dxdy=dudy⋅dxdu=14⋅3=42
검산해 봅니다. y=(3x+1)2=9x2+6x+1이므로 dxdy=18x+6이고, x=2에서 18⋅2+6=42입니다. 두 방법이 일치합니다. 이렇게 자동미분은 각 연산에서 국소 미분(3과 2u)만 알면, 그것을 곱해 전체 미분을 조립합니다.
같은 계산을 뒤에서 앞으로 전달해 봅니다. 손실 쪽 y에서 시작합니다.
- 출력에서 시작: dydy=1.
- u로 한 칸 전달: dudy=1⋅2u=14.
- x로 한 칸 전달: dxdy=14⋅dxdu=14⋅3=42.
앞서 순방향으로 곱한 결과와 같은 42가 나옵니다. 역전파는 이렇게 출력에서 입력으로 국소 미분을 하나씩 곱해 가는 과정입니다.
- 계산을 작은 연산으로 나눕니다(u=3x+1, y=u2).
- 각 연산의 입력과 출력을 저장합니다.
- 마지막 출력에서 미분을 시작합니다(dydy=1).
- 연쇄법칙으로 뒤에서 앞으로 국소 미분을 곱해 전달합니다.
- 얻은 기울기로 파라미터를 갱신합니다.
- 연쇄법칙 dxdy=dudydxdu는 각 단계의 변화율을 곱해 이어 붙입니다.
- 자동미분은 각 연산의 국소 미분만 알면 전체 미분을 조립합니다.
- reverse-mode는 출력에서 입력으로 국소 미분을 곱해 전달하며, 역전파가 이것입니다.
- 조건수 κ=σminσmax는 입력 오차가 답에서 얼마나 커지는지 알려 줍니다.
- y=(3x+1)2은 x=2에서 dxdy=42이며, 연쇄법칙과 직접 미분이 일치합니다.
dxdy=dudydxdu
- 연쇄법칙에서 왜 두 변화율을 곱하는지 설명할 수 있는가?
- reverse-mode가 출력이 하나이고 입력이 많을 때 왜 유리한가?
- 조건수 κ=σmax/σmin이 크다는 것은 무엇을 뜻하는가?
- y=(3x+1)2을 x=2에서 연쇄법칙으로 미분해 42를 얻을 수 있는가?
- 같은 값을 직접 미분(18x+6)으로도 확인할 수 있는가?