*この部分の式については、まず各変数は scalar か vector か matrix かを確認することが 重要。そしてここの式については基本的には定義式である。つまり以上の文献そして主な 資料においてはこの定義方法である(異なる定義もある)。
vector の微分: 微分: reference:
wikipedia: Matrix calculus Jan R. Magnus:Matrix
calculus
M. P. WAND:Vector Differential Calculus in Statistics
f は scalar、 、X
= ( x , x ...x ) ∈ ℜ 1
2
n
T
∂f ∂f := ∂X ∂x
Df (X) =
n
∂f ∂x
1
つまり vector の時:
∂f ∂x
...
2
Df(X)は f の derivative vector あるいは Jacobian という。
∂f ∂ ∂x Hf (X) = D{Df (X) } = T
∂f ∂x ∂x ∂f = ∂x ∂x . ∂f ∂x ∂x 2
∂f ∂x ∂x
1
2
1
1
2
2
1
∂f ... ∂x ∂x
2
n
n
... ...
1
2
n
∂f ∂f ... ∂x ∂x ∂X 2
∂f ... ∂x ∂x
2
1 2
1
n
n
T
n
Hf(X)は f の Hessian matrix という。他の言い方でいうと:Hessian matrix は
∂f となる。 n*n の行列で、(i,j)の成分は ∂x ∂x 2
i
j
上の方が直接の定義方法である。続いてはもう一つの定義方法を示す: Df(X)の定義:
a は 1*n の vector の時、df(X)=a dX とすれば、a=Df(X)となる、つまりfの derivative とも呼ばれる。a dX は一般的に differential と呼ばれる。 Hf(X)の定義:
d f (X) = (dX) AdX とすれば、A=Hf(X)とな 2
A は n*n の行列の時、
T
る、つまり Hessian 行列とも呼ばれる。
Df(X)と Hf(X)は taylor 展開の中にも使われている。
f ( X) = f (c) + Df (X) |
X =c
( X − c) +
1 (X − c) Hf (X) | ( X − c) + ... 2 1 = f (c) + Df ( X) | dX + (dX) Hf (X) | dX + ... 2 T
X =c
T
X =c
X =c
この中に dX は縦の n 次元 vector であることが分かる。
dX = (dx , dx ...dx ) 1
2
n
T
という形になる。これで Df(X)は 1*n の vector
であることが理解できる。
F = (f , f ...f ) , X = ( x , x ...x ) 1
2
n
T
∂f ∂x ∂F ∂f := ∂x ∂X . ∂f ∂x
1
1 2
1
n
1
∂f ∂x
1
1
2
.
. ∂f ∂x
n
2
2
m
T
∂f ... ∂x . . . . ∂f ... ∂x
の時: 1
m
n
m
行列の 行列の微分: 微分: reference:
wikipedia: Matrix calculus
x x f は scalar, X = . x
11 21
n1
∂f ∂x ∂f ∂f := ∂x ∂X . ∂f ∂x
11
... x ... x ∈ℜ ... . ... x
x x . x
12
1m
22
2m
n2
∂f ∂x
nm
21
12
1m
∂f ∂x ∂f ... ∂x ... . ∂f ... ∂x ...
n1
n2
∂f ∂x
2m
nm
F は p*q の行列、 行列、X は n*m の行列の 行列の時:
∂F ∂x ∂F ∂F := ∂x ∂X . ∂F ∂x
11
∂F ∂x
21
12
1m
その中に
∂F ∂x ∂F ... ∂x ... . ∂F ... ∂x
...
n1
n2
∂F ∂x
2m
nm
n *m
の時:
∂f ∂x ∂f ∂F := ∂x ∂x . ∂f ∂x
11 ij
∂f ∂x
12 ij
21
ij
ij
1q ij
2q
ij
p1
∂f ∂x ∂f ... ∂x ... . ∂f ... ∂x
...
∂f ∂x
p2 ij
ij
pq ij
まとめ: まとめ: もし F は vector あるいは matrix、x は scalar のとき、そのまま F を展開して、 各成分について、x の微分は
∂F となる。その反対の状況については転置となる。 ∂x
便利な 便利な notation: Reference:
M. P. WAND:Vector Differential Calculus in Statistics The Matrix Cookbook
*ここでは n*1 の vector の間においての計算を例とするが、行列にも応用できる。
a a = ⋅ a
1
n
b b= ⋅ b
and
a b aob = . a b 1
n
1
n
1
n
は Hadamard product という。
a b a⊗b = . a b 1
s (a s (a ) = . s (a
n
1
n
) )
a 0 diag(a ) = . 0
1
Tr (A ) = ∑ A
は Kronecker product という。
0
a .
2
0
0 . 0 . . . a
.
n
n
i =1
ii
det(A) =| A |= Σ( ±1)A A ...A 1 i1
2 i2
この中に 1 の符号については、
n in
(i1,i2,…,in)の permutation は偶数の時正、奇数の時は負となる。Permutation の計算方法
はたとえば(3,2,1)の permutation を計算するとき。(1,2,3)から何回の交換によって(3,2,1) になるかを意味する。結果は一回ため –A13A22A31 となる。詳細は wikipedia-determinant
det(A) = ∏ λ λ , は eigenvalue(A).
を参照。
i
a A = a
11
21
i
i
a a a のとき、 Vec(A) = a a a
11
12
21
22
12
22
となる。
matrix の性質: 性質: Reference:
M. P. WAND:Vector Differential Calculus in Statistics PRML
diag(a ) b = a o b
Tr (ABC) = Tr (CAB) = Tr (BCA)
Tr (A B) = Vec(A) Vec(B) 1 det(A ) = det(A) T
T
−1
Differential のルール: ルール: Reference:
M. P. WAND:Vector Differential Calculus in Statistics u,v は vector 関数、そして U,V は matrix 関数の時: chain rule:
d{s(u )} = s' ( u ) o (du ) = diag(s' (u ))du
useful results:
d (AU) = AdU
d ( U + V) = dU + dV ddiag(u ) = diag(du ) dU = (dU) dVecU = Vec(dU) T
T
d (TrU) = Tr (dU)
d ( U o V) = (dU) o V + U o (dV)
d ( UV) = (dU) V + U(dV) d | U |=| U | Tr ( U dU) −1
dU = − U (dU) U −1
−1
−1
d (Tr ( A U)) = d( Vec(A) Vec( U)) = Vec(A) d (Vec( U)) T
T
T
但し PRML そして Tom.Minka に参照すると:
∂ (Tr ( UA)) =A ∂U
T
trace の微分について各文献の中に矛盾がある。
Taylor 展開(the meaning of Differential,Derivative,Gradient) 展開 Reference:
M. P. WAND:Vector Differential Calculus in Statistics
https://wiki.inf.ed.ac.uk/pub/CSTR/ListenSemester1_2006_7/slide.pdf
R → R の関数のとき: n
fは
taylor 展開を以下のように書くとき
f ( X) = f (c) + A(c)(X − c) + ...
Differential:
A(c)(X − c) となる。具体的の値。
∂f A (c) = ∂x A ( c)
Derivative: Gradient:
T
1
∂f ∂x
2
...
∂f | ∂x n
X =c
,Jacobian ともいう。
Taylor を二次まで展開すると:
1 f ( X) = f (c) + A(c)(X − c) + (X − c) B(c)(X − c) + ... 2 T
∂f ∂ ∂x
ここでは
∂f B(c) = | = ∂X ∂f ∂f ∂x ∂x ∂x ∂x ∂f = ∂x ∂x . ∂f ∂x ∂x 2
2
X =c
2
2
1 2
1
2
1
1
2
n
1
Hessian matrix と呼ぶ。
2
∂f ∂f ... ∂x ∂x | ∂X ∂f ∂x ∂x | ∂f ∂x ∂x T
1
... ... ...
...
2
n
2
1
n
X =c
2
n
n
X =c