見出し画像

第11話 ディープラーニングに必要な数学知識 -微分編 常微分・偏微分-

今回から微分について勉強していきます。
ディープラーニングの理論を学ぶために、微分の知識は必須だそうです。

微分といえば数学の王様チックな響きがあって、苦手意識を持っている方も多いのではないでしょうか。

私も高校で初めて習った時は意味不明でしたが、繰返しやっていくうちになんとなく理解できました。
なので頑張れば誰にでも理解できるものだと思います。

内容は次のとおりです。

・微分とは
・常微分
・合成関数の微分(連鎖律)
・偏微分

それでは今回の学習のスタートです!
(教科書「はじめてのディープラーニング」我妻幸長著)

微分とは

ある関数上の各点における変化の割合のことです。
と言われても何のこっちゃ!?ですよね。
なので私は「曲線の傾き」と理解しています。

教科書では厳密な微分の説明よりも、ディープラーニングを作れるように微分のイメージを掴むことに重点を置いています。

常微分

下の図のように、ある関数f(x)について考えます。

名称未設定3

ある点xとそれからΔx先の点(x+Δx)を結ぶ直線の傾きは次式で表すことができます。

名称未設定2

Δxを限りなく0に近づけると「導関数」という、新たな関数f'(x)が得られます。
これをf(x)を微分するといい、「'」やd/dxを使って表します。

名称未設定7


上式のように1つの変数に対する微分が常微分です。

導関数f'(x)がわかると、ある点aにおける傾き(勾配)がわかるようになります。

名称未設定6

ところで、関数の傾き(勾配)とディープラーニングって何の関係があるのと思いませか?(私はそう思いました。)
どうやら勾配降下法というアルゴリズムで、関数の勾配を使っていくようです。
勾配降下法は後々やっていくようなので乞うご期待です。

微分の公式

微分するとき、毎回Δxがとかlim Δx→0とかやるのは、はっきり言ってめんどくさいです。
次のようなよく使う関数については公式を覚えておくのが便利です。
(大学受験で数学を使う人なら必ず覚えていると思います。)

名称未設定5

一つ例題をやってみましょう。
2次関数の微分です。

名称未設定3

合成関数の微分(連鎖律)

次のような関数を合成関数といいます。

名称未設定4

このような合成関数の微分は、次式のように構成する各関数の導関数の積で表せます。
これを連鎖律といいます。

名称未設定4

これだけではよくわからないと思うので、例題をみていきましょう。

名称未設定5

このyの微分を求めることとします。
連鎖律からyの微分は、uの微分とxの微分の掛け算になります。連鎖律からyの微分は、uの微分とxの微分の掛け算になります。

名称未設定4

連鎖律はバックプロパゲーションで使用するようです。
こちらもどのように使うのか期待しましょう。

偏微分

複数の変数を持つ関数に対して、1つの変数だけで微分することを偏微分といいます。
1つの変数以外は定数扱いなので、微分すること自体は難しくはありません。
また、偏微分された関数を「偏導関数」といいます。

名称未設定5

定義の式だけみてもよくわからないですよね。
例題を見れば一目瞭然です。

名称未設定8

fはxとyの2変数の関数ですが、これをxで偏微分しましょう。
yは定数扱いなので偏微分すると下式のようになります。

名称未設定8

偏微分をすることにより、特定のパラメータの微小な変化が結果に及ぼす影響を予測できるようです。
偏微分は、連鎖律と同じくバックプロパゲーションで登場します。


今回は常微分、偏微分を主に学習しました。
ソースコードもなかったので、完全に数学でしたね。
残念ながら(?)、次回も微分のお勉強になります。

それではまた(^_^)ノシ

よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!