pikesaku’s blog

個人的なプログラム勉強メモです。記載内容について一切の責任は持ちません。

詳解ディープラーニングを読んで(必要な数学知識-微分編)

読んだ本

 
Amazon CAPTCHA
 

DeepLearningに必要な数学知識

偏微分
線形対数
 

微分とは?

 
y = f(x)
 
fという関数がある時、xの各点における傾きを示す関数を導くことを微分する」という。
傾きを示す関数を導関数or微分という。
導関数により値がゆっくり変わるのか、急激に変わるのか、その変化の仕方を表す。
detail.chiebukuro.yahoo.co.jp

 
微分の表記方法は複数あり。上記の関数の場合、以下の通り。(他にも表記方法あり。以下は一部)
微分の記法 - Wikipedia
 

①y'

②f'(x)

f:id:pikesaku:20170810204639p:plain
 
※dはdifferntiation(微分)
 
微分は変数が一つ
 
微分」を導く定義式は以下の通り。
 
f:id:pikesaku:20170813142546p:plain
 
x2点の時のyの値の差分をx2点間の距離で割り、傾きを算出している。
∆xはx2点間の距離(∆はMacではoptions+jで入力可能)
 

偏微分とは?

 
変数を2つ以上持つ関数に対し、いづれか1つの変数に関して微分すること
 
例) 2変数関数 z=f(x,y)の場合 
 
表記方法は以下の通り
f:id:pikesaku:20170813145206p:plain
f:id:pikesaku:20170813145211p:plain
 
dではなく∂(デル)
sigmac.hatenablog.jp
 
定義式は以下の通り。
 
f:id:pikesaku:20170813144724p:plain
 
導関数ではなく偏導関数という。
 
例) f(x,y) = x^2 + 3y + 1の場合
 
xの偏微分

f'(x)=((((x+∆x)^2)+3y+1)-(x^2 + 3y + 1))/∆x
f'(x)=((x^2+2x∆x+∆x^2+3y+1)-(x^2+3y+1))/∆x
f'(x)=(x^2+2x∆x+∆x^2+3y+1)-x^2-3y-1)/∆x
f'(x)=2x∆x+∆x^2/∆x
f'(x)=2x+∆x

∆xはlimでなくなるため、偏微分は2x
 
yの偏微分

f'(y)=((x^2+3(y+∆y)+1)-(x^2+3y+1))/∆y
f'(y)=((x^2+3y+3∆y+1)-(x^2+3y+1))/∆y
f'(y)=(x^2+3y+3∆y+1-x^2-3y-1)/∆y
f'(y)=3∆y/∆y
f'(y)=3

∆yはlimでなくなるため、偏微分は3
 

微分係数とは?

 
変数が任意の値の時の微分
例) 関数f(x,y) = x^2 + 3y + 1のx=aの場合
f'(a)=2a
 
上記関数をグラフにすると以下
x^2 + 3y + 1 - Google 検索
 
xの偏微分はyが任意の値の時のもの。(yが任意の値の時の平面で切断した時のグラフの断面)
yの偏微分はxが任意の値の時のもの。(xが任意の値の時の平面で切断した時のグラフの断面)
 

偏微分の基本公式

 
偏微分も基本的な算術演算子を用いることができる。
公式は以下の通り。
 
f:id:pikesaku:20170813162413p:plain
 
f:id:pikesaku:20170813162538p:plain
 

合成関数

 
以下の関係の関数f,uがある時
y=f(u)
u=g(x)
これらを関数zでまとめると以下表記
z=f(g(x))
zを合成関数と呼ぶ。
合成関数zの微分を関数f,gの微分を使って表記すると以下
z'(x)=f'(u)*g'(x)
 
合成関数の微分は、それぞれの関数の微分を掛け算したものになる。
これを連鎖律(chain rule)と呼ぶ
 
証明は以下の通り。
以下2つの関数の場合

y=u^2
u=x^2

 
これを普通に微分すると

y=x^4
y'=4x^3

 
※以下公式利用

y=x^n 
y'=nx^(n-1)

 
合成関数の連鎖律を使い微分すると、、、

1つ目の関数fを微分

y=u^2
f'(u)=((u+∆u)^2-u^2)/∆u
f'(u)=(u^2+2u∆u+∆u^2-u^2)/∆u
f'(u)=(2u∆u+∆u^2)/∆u
f'(u)=2u+∆u
f'(u)=2u

 
2つ目の関数を微分

u=x^2
〜省略〜
g'(x)=2x

 
2つの微分を掛け算

z'(x)=2u*2x
z'(x)=2(x^2)*2x
z'(x)=4x^3

 
普通に微分した場合と、合成関数の連鎖律を使った場合が同じ結果となった。
 

偏微分の合成関数

 
偏微分も合成関数の連鎖律が適用できるとのこと。
導出には微分という考え方がある。
※難しそうなので、公式だけ覚える。 
 
以下のように多変数関数zおよびui(i=1,...,n)が以下の式で与えられた場合
f:id:pikesaku:20170813194447p:plain
 
以下の公式が成り立つ。
f:id:pikesaku:20170813194444p:plain
 
連鎖律はニューラルネットワークの理論で頻繁に用いられるよう。
ひとまず理解はさておき、覚えて先に進んでみる。