머신러닝 논문은 “∇WL=(y^−y)xT”처럼 벡터와 행렬에 대한 미분을 아무 설명 없이 씁니다. 이 장에서는 그런 식을 읽고 직접 유도할 수 있게, 표기와 관례를 정하고 자주 쓰는 공식들을 성분 계산으로 증명합니다. 요령은 하나입니다. 헷갈리면 성분 하나(∂L/∂xi)를 구하고 다시 벡터·행렬로 모읍니다.
11.1 표기와 배치 관례
스칼라 함수 f(x)(x∈Rn)의 그래디언트 ∇xf는 x와 같은 모양(열벡터)으로 씁니다. 스칼라 함수 f(X)(X는 m×n 행렬)의 그래디언트도 X와 같은 모양으로 씁니다:
(∂X∂f)ij=∂Xij∂f.
이렇게 하면 경사하강법 X←X−η∂X∂f가 모양이 맞게 쓰입니다. 이것을 분모 배치(denominator layout)라 하고, 머신러닝 논문 대부분이 이 관례를 씁니다.
벡터를 벡터로 미분한 야코비 행렬(3장)은 ∂x∂f를 m×n(출력×입력)으로 쓰는 분자 배치(numerator layout)와, 그 전치인 분모 배치가 논문마다 섞여 있습니다. 식의 모양(행·열 수)을 맞춰 보면 어느 관례인지 알 수 있습니다. 이 장에서는 그래디언트는 입력과 같은 모양, 야코비 행렬은 출력×입력으로 씁니다.
11.2 기본 공식
정리 11.1. a∈Rn, A∈Rn×n에 대해
- ∇x(aTx)=a
- ∇x(xTAx)=(A+AT)x, A가 대칭이면 2Ax
- ∇x∥x∥2=2x
- ∇x∥Ax−b∥2=2AT(Ax−b) (A는 m×n)
증명 (2). xTAx=∑j,kxjAjkxk를 xi로 편미분하면 j=i인 항에서 ∑kAikxk, k=i인 항에서 ∑jxjAji가 나옵니다. 둘을 더하면 (Ax)i+(ATx)i입니다. □
1변수의 (ax)′=a, (ax2)′=2ax와 같은 모양이라 기억하기 쉽습니다. 4번은 3번에 연쇄법칙을 쓴 것입니다.
예제 11.2 (선형회귀). L(β)=∥Xβ−y∥2의 그래디언트는 2XT(Xβ−y)이고, 0으로 두면 정규방정식 XTXβ=XTy(선형대수 13장)가 한 줄로 나옵니다.
11.3 행렬에 대한 미분
정리 11.3. 크기가 맞는 행렬에 대해
- ∂X∂tr(AX)=AT
- ∂X∂tr(XTAX)=(A+AT)X
- ∂X∂∥X∥F2=2X (프로베니우스 노름, ∥X∥F2=tr(XTX)=∑Xij2)
- ∂X∂aTXb=abT
- ∂X∂lndetX=(X−1)T (X 가역, detX>0)
증명 (1). tr(AX)=∑i,jAijXji이므로 ∂Xji∂=Aij, 곧 (j,i) 성분이 Aij인 행렬 AT입니다. □
증명 (4). aTXb=∑i,jaiXijbj이므로 ∂Xij∂=aibj입니다. □
증명 (5) 개요. 여인수 전개(선형대수 15장)로 ∂Xij∂detX=Cij(여인수)이고, ∂Xij∂lndetX=detXCij=((X−1)T)ij입니다(수반행렬과 역행렬의 관계). □
대각합(trace)을 쓰는 이유: 스칼라는 1×1 행렬이라 s=tr(s)이고, 대각합은 순환을 허락합니다(tr(ABC)=tr(CAB)). 복잡한 식을 대각합으로 바꿔 미분하는 것이 표준 기법입니다.
11.4 소프트맥스와 교차 엔트로피
분류 모델은 점수 z∈RK를 확률로 바꾸는 소프트맥스(softmax) pk=∑jezjezk와, 정답 y(원-핫 벡터 y)에 대한 교차 엔트로피(cross-entropy) L=−∑kyklnpk=−lnpy를 씁니다.
정리 11.4. ∇zL=p−y.
증명. lnpy=zy−ln∑jezj이므로 ∂zk∂(−lnpy)=−[k=y]+∑jezjezk=pk−yk입니다. ([k=y]는 k=y이면 1, 아니면 0.) □
“예측 확률 − 정답”이라는 놀랍도록 간단한 결과이고, 이것이 분류 신경망 학습의 출발점입니다. 정답 칸의 확률은 올리고 나머지는 내리는 방향입니다.
11.5 신경망 한 층의 그래디언트
예제 11.5. 선형층 z=Wx+b(W는 K×n) 뒤에 소프트맥스와 교차 엔트로피가 붙어 있을 때, 연쇄법칙과 정리 11.4로
∂W∂L=(p−y)xT,∂b∂L=p−y,∂x∂L=WT(p−y).
유도. zk=∑jWkjxj+bk이므로 ∂Wkj∂L=∂zk∂Lxj=(pk−yk)xj, 곧 외적 (p−y)xT입니다(정리 11.3의 4번과 같은 모양). ∂xj∂L=∑k∂zk∂LWkj는 WT(p−y)입니다. □
마지막 식이 역전파에서 “앞 층으로 넘겨주는 그래디언트”입니다. 앞으로는 W를 곱하고, 뒤로는 WT를 곱합니다.
모양 확인. W가 K×n이면 ∂W∂L도 K×n이어야 하고, (p−y)xT는 (K×1)(1×n)=K×n입니다. 논문의 식이 맞는지 볼 때 이 모양 확인이 가장 빠른 검산입니다.
11.6 이 장의 요약
| 함수 |
그래디언트 |
| aTx |
a |
| xTAx |
(A+AT)x |
| ∥Ax−b∥2 |
2AT(Ax−b) |
| tr(AX) |
AT |
| aTXb |
abT |
| lndetX |
X−T |
| 소프트맥스 + 교차 엔트로피 |
p−y |
헷갈리면 성분 하나를 미분하고 모으고, 마지막에 모양을 확인합니다.
쓰이는 곳. 모든 신경망 논문의 그래디언트 유도, 가우스 분포의 최대우도 추정(lndetΣ의 미분), 주의(attention) 메커니즘의 역전파, 행렬 분해 기반 추천 시스템의 학습이 이 장의 공식을 씁니다. 『The Matrix Cookbook』 같은 공식집을 읽을 때도 이 장의 배치 관례를 알아야 맞게 읽을 수 있습니다.
문제
11.1 [계산] · 확인 문제
A=[1023], x=(1,1)일 때 ∇x(xTAx)의 성분을 씁니다.
정답
풀이
(A+AT)x=[2226][11]=(4,8)입니다.
11.2 [계산] · 확인 문제
점수 z=(0,0,ln2), 정답 y=3(셋째 칸)일 때 소프트맥스 확률과 ∇zL을 씁니다.
| 값 |
답 |
| p1 |
[?] |
| p3 |
[?] |
| ∂L/∂z1 |
[?] |
| ∂L/∂z3 |
[?] |
정답
풀이
ez=(1,1,2), 합 4이므로 p=(1/4,1/4,1/2). ∇L=p−y=(1/4,1/4,−1/2)입니다.
11.3 [개념] · 확인 문제
W가 3×5 행렬이고 x∈R5, z=Wx일 때 ∂W∂L의 모양으로 맞는 식은? (δ=∂z∂L∈R3)
- xδT
- δxT
- δTx
- WTδ
정답
풀이
∂W∂L는 W와 같은 3×5여야 합니다. δxT는 (3×1)(1×5)=3×5입니다. 1번은 5×3, 3번은 크기가 맞지 않고, 4번은 ∂x∂L(5×1)입니다.
11.4 [계산]
X=[2111]일 때 ∂X∂lndetX의 (1,2) 성분은?
정답
풀이
detX=1, X−1=[1−1−12]이고 (X−1)T도 같으므로 (1,2) 성분은 −1입니다.
11.5 [증명]
성분 계산으로 ∇x∥Ax−b∥2=2AT(Ax−b)를 보입니다.
풀이
r=Ax−b, ri=∑jAijxj−bi로 두면 ∥r∥2=∑iri2입니다. ∂xk∂∑iri2=∑i2ri∂xk∂ri=∑i2riAik=2(ATr)k이므로 그래디언트는 2AT(Ax−b)입니다.