バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia2-backnumber/
はじめに
まずは最もシンプルな回帰分析である、
1次関数の最小二乗法についての説明の続き。
誤差関数の偏導関数を求める。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
誤差関数の偏導関数を求める
1次関数に於ける最小二乗法の誤差関数は以下。
\(
\begin{eqnarray}
L(a,b)&=&\displaystyle\sum_{i=0}^n\{y_i -(ax_i +b)\}^2 \\
&=&\displaystyle a^2\sum x_i^2+nb^2+\sum y_i^2-2a\sum x_i y_i -2b\sum y_i +2ab\sum x_i
\end{eqnarray}
\)
これの偏導関数を求めるんだよね。
というわけで、やってみて。
え゛
偏導関数を頑張って求める
前回の情報を踏まえればできる・・・はずだ。
(若干どもったのが気になる・・・。)
まぁダメ元でやってみよう。
\(a\)による偏微分
\(
\begin{eqnarray}
\displaystyle\frac{\partial L(a,b)}{\partial a}
&=&
\displaystyle\frac{\partial (a^2 \sum x_i^2 + b^2\sum 1 + \sum y^2 -2a\sum x_i y_i-2b\sum y_i+2ab\sum x_i)}{\partial a} \\
&=&
\displaystyle 2a\sum x_i^2 -2\sum x_i y_i + 2b\sum x_i=0\\
\displaystyle 2a\sum x_i^2 + 2b\sum x_i &=& 2\sum x_i y_i
\end{eqnarray}
\)
\(b\)による偏微分
\(
\begin{eqnarray}
\displaystyle\frac{\partial L(a,b)}{\partial b}
&=&
\displaystyle\frac{\partial (a^2 \sum x_i^2 + b^2\sum 1 + \sum y^2 -2a\sum x_i y_i-2b\sum y_i+2ab\sum x_i)}{\partial a} \\
&=&
\displaystyle 2b\sum 1 -2b\sum y_i + 2a\sum x_i=0\\
\displaystyle 2a\sum x_i + 2b\sum 1 &=& 2\sum y_i
\end{eqnarray}
\)
これでどうだ!
OK!正解だ!
項数が多いからややこしい部分有るけど、一個一個はそれほど難しい感じではないね。
そこは偏微分様様ってところだろう。
この後は?
で、偏導関数を求めたあとはどうするの?
いろいろ計算していく感じ?
まぁ計算するという意味では正解だが、
このままだとMATLAB等のツールの恩恵が得られにくい。
というわけでベクトル、行列の形式に変換してから計算にチャンレジだな。
どうするかわからんけど、ツールの力を借りるにも前提条件があるのね。
そういうことだね。
まぁ、これもそれほど難しくはない。
まとめ
まとめだよ。
- 1次関数に於ける最小二乗法の誤差関数の偏導関数を求めた。
- 項数が多く、ややこしい部分はあるが、一個一個はシンプル。
- これをMATLAB等で簡単に演算させるためにベクトル、行列の形式に変形する必要がある。
バックナンバーはこちら。
コメント