...

勾配とヘッセ行列を用いた多変数関数(2 変数関数)の微分の計算

by user

on
Category: Documents
19

views

Report

Comments

Transcript

勾配とヘッセ行列を用いた多変数関数(2 変数関数)の微分の計算
勾配とヘッセ行列を用いた多変数関数(2 変数関数)の微分の計算
f を 2 変数関数(一般の n 変数関数でも可)とするとき,勾配 ∇ f ,ヘッセ行列 H は
f
f
fxy
∇ f = x ,H= xx
fy
f yx f y y
() (
( () (
f
x1
f
x 1, x1
∇ f = ⋮ ,H= ⋮
fx
f x ,x
n
)
n
1
…
fx
…
…
⋮
f x ,x
x
1, n
n
n
) )
という形で定義される.これらを用いると微分の計算は 1 変数の場合と同じ発想でできることが多
い.以下 2 変数関数(n 変数関数でも同様)は,2 次元ベクトル(n 次元ベクトル)を変数とする関数と
x
して扱う. 例えば, f ( x , y ) は f
と同一視する.
y
(())
(1) 方向微分(方向導関数,方向微分係数)
D f [⃗v ]( ⃗x )=∇ f ( ⃗x)⋅⃗v
f の ⃗x における ⃗v 方向の方向微分は D f [ ⃗v ]( ⃗x )= lim ( f ( ⃗x +h ⃗
v )− f ( ⃗x ))/ h
h →0
∣
で定義される.もう少し簡単にこの定義は D f [ ⃗v ]( ⃗x )= ∂ f ( ⃗x +t ⃗v )
でもよい.この
∂t
t=0
方向微分係数は ⃗v 方向の変化の割合を表す.この性質により,大きさが一定なら
∇ f に平行な方向が最も効率よく増えることが分かる.
(2) 合成関数の微分
⃗x (t)(ℝ → ℝ2 (ℝ n )) を実変数のベクトルに値を取る関数(各成分が 1 変数関数でできて
いるベクトル) この(ベクトル)関数の微分は,各成分を微分したものとする.
x (t )
x ' (t)
x ' ' (t)
( ⃗x (t)=
, ⃗x ' (t)=
, ⃗x ' ' (t )=
)
y( t)
y ' (t)
y ' ' (t )
( )
( )
(
)
このとき, F ( t)= f ( ⃗x ( t)) に対して次の公式が成り立つ.
F ' (t)=∇ f ( ⃗x (t))⋅⃗x ' (t) , F ' ' ( t)=⃗x ' (t)⋅H ⃗x ' ( t)+∇ f (x (t))⋅⃗x ' ' (t )
(3) テイラー展開(テイラーの定理)
f ( ⃗x )= f ( ⃗
a )+∇ f ( ⃗
a )⋅( ⃗x −⃗a )+( ⃗x – ⃗
a )⋅H ( ⃗x – ⃗
a )+R3
と表現することができる. ( ∇ f は勾配, H はヘッセ行列, R3 は剰余項)
a )) とすると F (1)= f ( ⃗x ) . F ( t) に対して 1 変数のテイ
(理由) F (t)= f ( ⃗a +t( ⃗x – ⃗
ラーの定理を適用すると
1
1
F (t)=F (0)+F ' (0)t+ F ' ' (0)t 2+…+
F (n−1)( 0)t n−1 +Rn ,
2
(n−1)!
v
n=2 のとき(2 変数関数のとき) ⃗v = x =⃗x – ⃗
a と置くと
vy
F ( 0)= f ( ⃗
a ) , F ' (0)=v x f x (⃗
a )+v y f y (⃗
a )=(v x ∂ +v y ∂ ) f (⃗
a)
∂x
∂y
2
F ' ' (0)=v 2x f x x (⃗
a )+2 v x v y f x y (⃗
a )+v 2y f y y (⃗
a )=( v x ∂ +v y ∂ ) f (⃗
a ) ,...
∂x
∂y
k
F (k ) (0)=( v x ∂ +v y ∂ ) f (⃗
a ) , 特に k =0,1 では
∂x
∂y
F ' (0)=∇ f ( ⃗a )⋅⃗v , F ' ' (0)=⃗v⋅H ⃗v と表すことができる.この性質は一般の n 変数
関数に対しても正しい. (示すべき式は n=3, t=1 の場合である.)
()
Fly UP