第11話 ディープラーニングに必要な数学知識 -微分編 常微分・偏微分-
今回から微分について勉強していきます。
ディープラーニングの理論を学ぶために、微分の知識は必須だそうです。
微分といえば数学の王様チックな響きがあって、苦手意識を持っている方も多いのではないでしょうか。
私も高校で初めて習った時は意味不明でしたが、繰返しやっていくうちになんとなく理解できました。
なので頑張れば誰にでも理解できるものだと思います。
内容は次のとおりです。
・微分とは
・常微分
・合成関数の微分(連鎖律)
・偏微分
それでは今回の学習のスタートです!
(教科書「はじめてのディープラーニング」我妻幸長著)
微分とは
ある関数上の各点における変化の割合のことです。
と言われても何のこっちゃ!?ですよね。
なので私は「曲線の傾き」と理解しています。
教科書では厳密な微分の説明よりも、ディープラーニングを作れるように微分のイメージを掴むことに重点を置いています。
常微分
下の図のように、ある関数f(x)について考えます。
ある点xとそれからΔx先の点(x+Δx)を結ぶ直線の傾きは次式で表すことができます。
Δxを限りなく0に近づけると「導関数」という、新たな関数f'(x)が得られます。
これをf(x)を微分するといい、「'」やd/dxを使って表します。
上式のように1つの変数に対する微分が常微分です。
導関数f'(x)がわかると、ある点aにおける傾き(勾配)がわかるようになります。
ところで、関数の傾き(勾配)とディープラーニングって何の関係があるのと思いませか?(私はそう思いました。)
どうやら勾配降下法というアルゴリズムで、関数の勾配を使っていくようです。
勾配降下法は後々やっていくようなので乞うご期待です。
微分の公式
微分するとき、毎回Δxがとかlim Δx→0とかやるのは、はっきり言ってめんどくさいです。
次のようなよく使う関数については公式を覚えておくのが便利です。
(大学受験で数学を使う人なら必ず覚えていると思います。)
一つ例題をやってみましょう。
2次関数の微分です。
合成関数の微分(連鎖律)
次のような関数を合成関数といいます。
このような合成関数の微分は、次式のように構成する各関数の導関数の積で表せます。
これを連鎖律といいます。
これだけではよくわからないと思うので、例題をみていきましょう。
このyの微分を求めることとします。
連鎖律からyの微分は、uの微分とxの微分の掛け算になります。連鎖律からyの微分は、uの微分とxの微分の掛け算になります。
連鎖律はバックプロパゲーションで使用するようです。
こちらもどのように使うのか期待しましょう。
偏微分
複数の変数を持つ関数に対して、1つの変数だけで微分することを偏微分といいます。
1つの変数以外は定数扱いなので、微分すること自体は難しくはありません。
また、偏微分された関数を「偏導関数」といいます。
定義の式だけみてもよくわからないですよね。
例題を見れば一目瞭然です。
fはxとyの2変数の関数ですが、これをxで偏微分しましょう。
yは定数扱いなので偏微分すると下式のようになります。
偏微分をすることにより、特定のパラメータの微小な変化が結果に及ぼす影響を予測できるようです。
偏微分は、連鎖律と同じくバックプロパゲーションで登場します。
今回は常微分、偏微分を主に学習しました。
ソースコードもなかったので、完全に数学でしたね。
残念ながら(?)、次回も微分のお勉強になります。
それではまた(^_^)ノシ
よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!