이차형식과 쌍선형 형식의 행렬 미분
📂다변수벡터해석이차형식과 쌍선형 형식의 행렬 미분
공식
두 벡터 a∈Rm, b∈Rn와 행렬 X∈Rm×n에 대해, 쌍선형 형식 aTXb에 대한 그래디언트 행렬은 다음과 같다.
∇X(aTXb)=∂X∂(aTXb)=abT(1)
따름정리로서 이차형식 aTXa에 대해 다음이 성립한다.
∂X∂(aTXa)=aaT
두 벡터 a∈Rn, b∈Rn와 행렬 X∈Rm×n에 대해, aTXTXb에 대한 그래디언트 행렬은 다음과 같다.
∇X(aTXTXb)=∂X∂(aTXTXb)=X(abT+baT)(2)
만약 b=a이면,
∂X∂(aTXTXa)=2XaaT(2)
설명
다항함수 미분과 유사한 결과이다.
- (1): 본질적으로는 일차함수의 미분과 같으므로, 계수만 남는 꼴이 됨을 알 수 있다. 조금 헷갈릴 수도 있는 점은, 계산 결과가 행렬이여야하므로 aTb가 아니라 abT라는 것이다.
- (2): 이차형식의 관점에서 봤을땐 aTXa나 aTXTXa나 모두 그냥 이차형식이지만, 미분할 변수가 여러번 곱해졌다는 접에서 다른 결과를 보여준다. 본질적으로는 이차함수의 미분에 대응된다.
아래의 증명에서는 직접 계산으로 보였지만, 트레이스 트릭이라고 불리는 방법을 사용하면 더 간단하게 계산할 수 있다. X에 대한 임의의 꼴이나, X가 많이 포함된 식의 경우 사실상 직접 계산하는 것은 너무 힘들고 트레이스 트릭을 사용하여야 한다.
더 많은 공식은 스칼라 함수의 행렬 미분 표에서 확인할 수 있다.
증명
(1)
쌍선형 형식은 aTXb=i=1∑mj=1∑naixijbj로 표현할 수 있다. 그러므로 ∂xkℓ∂(i=1∑mj=1∑naixijbj)=akbℓ이고,
∇X(aTXb)=∂x11∂(aTXb)⋮∂xm1∂(aTXb)⋯⋱⋯∂x1n∂(aTXb)⋮∂xmn∂(aTXb)=a1b1a2b1⋮amb1a1b2a2b2⋮amb1⋯⋯⋱⋯a1bna2bn⋮ambn=a1⋮an[b1⋯bn]=abT=a⊗b
⊗는 두 벡터의 외적, 혹은 두 행렬의 크로네커 곱이다.
■
(2)
직접계산
두 행렬의 곱은 [AB]ij=k=1∑naikbkj이므로, [XTX]ij=s=1∑mxsixsj이다. 다음이 성립한다.
aTXTXb=k,ℓ=1∑nak(s=1∑mxskxsℓ)bℓ=k,ℓ=1∑ns=1∑makxskxsℓbℓ
따라서 미분은 다음과 같다.
∂xij∂(k,ℓ=1∑ns=1∑makxskxsℓbℓ)=ℓ=1∑najxiℓbℓ+k=1∑nakxikbj
그래디언트 행렬은 아래와 같다.
∇X(aTXTXb)=ℓ=1∑na1x1ℓbℓ+k=1∑nakx1kb1ℓ=1∑na1x2ℓbℓ+k=1∑nakx2kb1⋮ℓ=1∑na1xnℓbℓ+k=1∑nakxnkb1ℓ=1∑na2x1ℓbℓ+k=1∑nakx1kb2ℓ=1∑na2x2ℓbℓ+k=1∑nakx2kb2⋮ℓ=1∑na2xnℓbℓ+k=1∑nakxnkb2⋯⋯⋱⋯ℓ=1∑nanx1ℓbℓ+k=1∑nakx1kbnℓ=1∑nanx2ℓbℓ+k=1∑nakx2kbn⋮ℓ=1∑nanxnℓbℓ+k=1∑nakxnkbn=ℓ=1∑na1x1ℓbℓ⋮ℓ=1∑na1xnℓbℓ⋯⋱⋯ℓ=1∑nanx1ℓbℓ⋮ℓ=1∑nanxnℓbℓ+k=1∑nakx1kb1⋮k=1∑nakxnkb1⋯⋱⋯k=1∑nakx1kbn⋮k=1∑nakxnkbn=ℓ=1∑nx1ℓbℓa1⋮ℓ=1∑nxnℓbℓa1⋯⋱⋯ℓ=1∑nx1ℓbℓan⋮ℓ=1∑nxnℓbℓan+k=1∑nx1kakb1⋮k=1∑nxnkakb1⋯⋱⋯k=1∑nx1kakbn⋮k=1∑nxnkakbn
따라서 다음을 얻는다.
∇X(aTXTXb)=XbaT+XabT=X(abT+baT)
■
트레이스 트릭
스칼라는 1×1 행렬로 생각할 수 있고, 그러면 트레이스(대각합)는 사실상 항등함수의 역할을 한다. 즉, 쌍선형 형식의 값은 스칼라이므로 다음이 성립한다.
aTXTXb=Tr(aTXTXb)
또한 트레이스는 순환 성질 Tr(ABC)=Tr(CBA) 이 있으므로,
∂X∂(aTXTXb)=∂X∂Tr(aTXTXb)=∂X∂Tr(baTXTX)
트레이스 미분 공식에 의해 다음을 얻는다.
∂X∂(baTXTX)=X(baT+abT)
이때 b=a이면,
∂X∂(aTXTXa)=2XaaT
이처럼 트레이스의 성질을 이용하여 행렬 미분 계산을 간단한 행렬조작으로 만들어주는 방법을 트레이스 트릭이라 한다.