機械学習

最小2乗法の計算式を偏微分してみた

このブログの以下の記事で、最小2乗法と最急降下法を用いて回帰直線を求めている。

最小2乗法と最急降下法を用いて回帰直線を求めてみた 以下のように、入力データ\(x\),\(y\)の値が与えられた場合を考える。 このときの、各点との距離が最小になるような\...

上記記事に記載の通り、最小2乗法で、回帰直線と各点との距離の2乗和が最小になるような関係式(これを\(S\)とする)を求める計算式と、それを\(a\),\(b\)それぞれについて偏微分した式は、以下の通りである。
\[
\begin{eqnarray}
S &=& (ax_{1}+b-y_{1})^2 + (ax_{2}+b-y_{2})^2 + ・・・ + (ax_{n}+b-y_{n})^2 \\
&=& \sum_{i=1}^{n} (ax_{i}+b-y_{i})^2 \\
\\
\displaystyle \frac{\partial S}{\partial a} &=& 2\sum_{i=1}^{n} (ax_{i}+b-y_{i})x_{i} \\
\displaystyle \frac{\partial S}{\partial b} &=& 2\sum_{i=1}^{n} (ax_{i}+b-y_{i})
\end{eqnarray}
\]

今回は、この偏微分の式の導出過程を紹介する。その際に利用する公式は、以下の公式となる。

偏微分公式_1
出所:KIT数学ナビゲーション

この公式を利用すると、\(S\)を\(a\),\(b\)について偏微分した式は、以下のように変形できる。
\[
\begin{eqnarray}
\displaystyle \frac{\partial S}{\partial a} &=& \frac{\partial \displaystyle}{\partial a}\sum_{i=1}^{n} (ax_{i}+b-y_{i})^2 \\
&=& \frac{\partial \displaystyle}{\partial a}\{(ax_{1}+b-y_{1})^2 + (ax_{2}+b-y_{2})^2 + ・・・ + (ax_{n}+b-y_{n})^2\} \\
&=& \frac{\partial \displaystyle}{\partial a}(ax_{1}+b-y_{1})^2 + \frac{\partial \displaystyle}{\partial a}(ax_{2}+b-y_{2})^2 + ・・・ + \frac{\partial \displaystyle}{\partial a}(ax_{n}+b-y_{n})^2 \\
&=& \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial a}(ax_{i}+b-y_{i})^2 \\
\\
\displaystyle \frac{\partial S}{\partial b} &=& \frac{\partial \displaystyle}{\partial b}\sum_{i=1}^{n} (ax_{i}+b-y_{i})^2
= \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial b}(ax_{i}+b-y_{i})^2 \\
\end{eqnarray}
\]

また、以下の「合成関数の偏導関数」という公式も利用する。

偏微分公式_2
出所:KIT数学ナビゲーション

\(u=ax_{i}+b-y_{i}\)とし、上記公式を利用すると、\(S\)を\(a\),\(b\)について偏微分した式は、以下のように変形できるため、想定通りの偏微分の式が導出されることが確認された。
\[
\begin{eqnarray}
\displaystyle \frac{\partial S}{\partial a} &=& \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial a}(ax_{i}+b-y_{i})^2
= \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial a}u^2
= \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial u}u^2\displaystyle \frac{\partial u}{\partial a}u \\
&=& \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial u}u^2\displaystyle \frac{\partial u}{\partial a}(ax_{i}+b-y_{i})
= \sum_{i=1}^{n}2u*x_{i}
= \sum_{i=1}^{n}2(ax_{i}+b-y_{i})x_{i} \\
&=& 2\sum_{i=1}^{n}(ax_{i}+b-y_{i})x_{i}
\\
\displaystyle \frac{\partial S}{\partial b} &=& \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial b}(ax_{i}+b-y_{i})^2
= \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial b}u^2
= \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial u}u^2\displaystyle \frac{\partial u}{\partial b}u \\
&=& \sum_{i=1}^{n}\frac{\partial \displaystyle}{\partial u}u^2\displaystyle \frac{\partial u}{\partial b}(ax_{i}+b-y_{i})
= \sum_{i=1}^{n}2u*1
= \sum_{i=1}^{n}2(ax_{i}+b-y_{i}) \\
&=& 2\sum_{i=1}^{n}(ax_{i}+b-y_{i})
\end{eqnarray}
\]