ベクトルと行列の導関数表
📂多変数ベクトル解析ベクトルと行列の導関数表
スカラー関数の勾配
スカラー関数 f:Rn→Rの勾配は次のようだ。
∂x∂f(x):=∇f(x)=[∂x1∂f(x)∂x2∂f(x)⋯∂xn∂f(x)]T
ここで、∂xi∂f(x)はfのxiに対する偏微分だ。
内積
固定されたw∈Rnに対して、f(x)=⟨w,x⟩=wTxとすると、
∂x∂f(x)=∂x∂(wTx)=∂x∂(xTw)=w
ノルム
f(x)=∥x∥2=xTxとすると、
∇f(x)=∂x∂∥x∥2=2x
n×n行列Rに対して、f(x)=xTRxとすると、
∂x∂f(x)=∂x∂(xRx)=(R+RT)x
証明
内積
∂x∂f(x)=∂x∂(wTx)=[∂x1∂(∑i=1nwixi)∂x2∂(∑i=1nwixi)⋯∂xn∂(∑i=1nwixi)]T=[w1w2⋯wn]T=w
また、wTx=xTwだから、
∂x∂xTw=w
■
ノルム
内積についての証明と同様に、
∂x∂f(x)=∂x∂(xTx)=[∂x1∂(∑i=1nxixi)∂x2∂(∑i=1nxixi)⋯∂xn∂(∑i=1nxixi)]T=[∂x1∂(∑i=1nxi2)∂x2∂(∑i=1nxi2)⋯∂xn∂(∑i=1nxi2)]T=[2x12x2⋯2xn]T=2x
■
二次形式
微分計算を容易にするため、最初に次のように計算する。任意のk∈{1,…,n}に対して以下の式を得る。
f(x)=xTRx=j=1∑nxji=1∑nrjixi=xki=1∑nrkixi+j=k∑xji=1∑nrjixi=xkrkkxk+i=k∑rkixi+j=k∑xjrjkxk+i=k∑rjixi=xk2rkk+xki=k∑rkixi+j=k∑xjrjkxk+j=k∑i=k∑xjrjixi
∂xk∂f(x)を計算すると次のようになる。
∂xk∂f(x)=∂xk∂xk2rkk+xki=k∑rkixi+j=k∑xjrjkxk+j=k∑i=k∑xjrjixi=2wkrkk+i=k∑rkixi+j=k∑xjrjk=i=1∑nrkixi+j=1∑nrjkxj
したがって、fの勾配を計算すると次のようになる。
∂x∂f(x)=∂x∂(xTRx)=[∂x1∂f(x)∂x2∂f(x)…∂xn∂f(x)]T=∑i=1nr1ixi+∑j=1nrj1xj∑i=1nr2ixi+∑j=1nrj2xj⋮∑i=1nrnixi+∑j=1nrjnxj=∑i=1nr1ixi∑i=1nr2ixi⋮∑i=1nrnixi+∑j=1nrj1xj∑j=1nrj2xj⋮∑j=1nrjnxj=Rx+RTx=(R+RT)x
行列-ベクトル乗算
X∈Mn×n、y∈Mn×1に対して、
Xy=∑i=1nx1iyi∑i=1nx2iyi⋮∑i=1nxniyi,XTy=∑i=1nxi1yi∑i=1nxi2yi⋮∑i=1nxinyi
もしRが対称行列なら、
∂x∂(xTRx)=2Rx