合成関数の微分と最大値問題|高校数学の演習を通して理解する確率分布と最尤法 #3

f:id:lib-arts:20191112170245p:plain

以前のシリーズで機械学習アルゴリズムであるニューラルネットワークやランダムフォレストに絡めて高校レベルの数学の様々なトピックについて取り扱いました。

上記ではニューラルネットワークやランダムフォレストを中心に取り扱いましたが、今回は確率分布と最尤法について取り扱っていきます。
#1では集合・確率と様々な関数(指数関数、対数関数)について、#2では確率分布のグラフ化と掛け算と対数について取り扱いました。

集合・確率&様々な関数(指数関数、対数関数)|高校数学の演習を通して理解する確率分布と最尤法 #1 - lib-arts’s diary

確率分布のグラフ化&掛け算と対数|高校数学の演習を通して理解する確率分布と最尤法 #2 - lib-arts’s diary

#3では合成関数の微分と最大値問題について取り扱います。
以下、目次になります。
1. 例題⑤ 合成関数の微分
2. 例題⑥ 最大値問題
3. まとめ

 

1. 例題⑤ 合成関数の微分
1節では合成関数の微分について取り扱っていきます。複雑な関数の微分を行っていくにあたっては合成関数の微分については避けては通れませんが、基本的に演算に慣れればできるようになりますのでこちらについても手を動かして慣れるようにしていただけたらと思います。
\frac{dy}{dx}=\frac{dy}{du} \frac{du}{dx}
基本的には上記に基づいて微分を行っていきます。

ex.05
下記の関数を微分せよ(下記の関数の導関数を求めよ)。
1) f(x)=exp(x)
2) f(x)=\ln x
3) f(x)=exp(x^2)
4) f(x)=exp(-x^2)
5) f(x)=\ln x^3

Answer.
1)
f'(x)=exp(x)
2)
f'(x)=\frac{1}{x}
3)
u=x^2とおく
f'(x)=\frac{d f(x)}{du} \frac{du}{dx} = 2x exp(x^2)
4)
u=-x^2とおく
f'(x)=\frac{d f(x)}{du} \frac{du}{dx} = -2x exp(-x^2)
5)
f(x)=\ln x^3=3\ln xに変換できる。
f'(x)=\frac{3}{x}

解説.
1)と2)はそれぞれ指数関数と対数関数の微分の公式に基づいています。3)と4)は指数関数における合成関数の微分を扱うにあたって、x^2をベースに合成関数を作成しています。5)も合成関数ですが、対数は掛け算を和の形に分解ができるため、先に書き換えてから公式をそのままあてはめることができます。
ここからも、最小値・最大値問題を解くにあたって、関数が掛け算で表されている傾向にある時は対数を用いると便利だということがわかります。

 

2. 例題⑥ 最大値問題
2節では最大値問題について取り扱います。ニューラルネットワークの際は誤差関数の最小化ということで最小値問題としましたが、今回は尤度(対数尤度)の最大化を取り扱うため、最大値問題を取り扱います。また、誤差関数の最小化も尤度の最大化から導くことができるのですが、少々発展的な話題のため、別の記事で取り扱います。

ex.06
下記の関数L(\theta)を最大にする\thetaを求めよ。
1) L(\theta)=\theta^{600} (1-\theta)^{400}
2) L(\theta)=\Pi_{i=1}^N \frac{\theta^{k_{i}} exp(-theta)}{k_{i}!}
3) L(\theta)=\Pi_{i=1}^N \frac{1}{\sqrt{2 \pi}}exp(-\frac{(x_{i}-\theta)^2}{2})

Answer.
\ln L(\theta)を最大にする\thetaL(\theta)も最大にするので、それぞれ\ln L(\theta)を求めた上で計算していく。
1)
\ln L(\theta)=600\ln(\theta) + 400\ln(1-\theta)
\frac{\delta \ln L(\theta)}{\delta \theta}=\frac{600}{\theta}-\frac{400}{1-\theta}
\frac{\delta \ln L(\theta)}{\delta \theta}=0を解いて、\theta=0.6を得る。
2)
\ln L(\theta)=\sum_{i=1}^N (k_{i}\ln(\theta) - \theta - \ln(k_{i}!))
\frac{\delta \ln L(\theta)}{\delta \theta} = \sum_{i=1}^N (\frac{k_{i}}{\theta} - 1)
\frac{\delta \ln L(\theta)}{\delta \theta}=0より\theta=\frac{\sum_{i=1}^N k_{i}}{N}を求めることができる。
3)
\ln L(\theta)=\sum_{i=1}^N (\ln(\frac{1}{\sqrt{2 \pi}}) - \frac{(x_{i}-\theta)^2}{2})
\frac{\delta \ln L(\theta)}{\delta \theta} = \sum_{i=1}^N -2\frac{(x_{i}-\theta)}{2}=-\sum_{i=1}^N (x_{i}-\theta)
\frac{\delta \ln L(\theta)}{\delta \theta}=0より、\theta=\frac{\sum_{i=1}^N x_{i}}{N}を導出できる。


3. まとめ
#3では合成関数の微分と最大値問題について取り扱いました。
#4ではここまで取り扱ってきた例題の内容を確率分布や最尤法の文脈で再度確認していきます。