物理のノート
最小二乗法
多項式近似による関数関係の推測
観測点$x$に対して得られた観測値を$t$とする.
$N$組の$x,t$の組み合わせを$\lbrace(x_n,t_n)\rbrace^{N}_{n=1}$と表すことにする.
この時, $N+1$番目の観測点$x_{n+1}$において観測される$t_{n+1}$はどのような値になると予測されるだろうか.
この予測を行うには,$x$と$t$の間にある
関数関係を推測する.
ここでは,推測する関数$f(x)$を次のような,$M$を最大次数とする多項式で近似されるものと仮定する.
\begin{equation}
f(x)=\omega_0 x^0 + \omega_1 x^1 +\omega_2 x^2 + \dots + \omega_M x^M \\
=\sum^M_{m=0} \omega_m x^m
\end{equation}
推測される関数$f(x)$は,(1)式より未知の係数$\lbrace \omega_0,\dots,\omega_M\rbrace$(これをまとめて$\lbrace \omega_m\rbrace_{m=0}^M $と表記する),すなわちパラメーターを決定すると明らかになる.
ここで, 推定される関数から計算で得られる$f(x)$と,実際の観測値$t_n$を比較するために,次の値をここでの誤差$E$と定義し,
二乗誤差と呼ぶ.
\begin{equation}
E=\frac{\lbrace f(x_1)-t_1\rbrace^2 +\lbrace f(x_2)-t_2\rbrace^2+ \dots + \lbrace f(x_N)-t_N\rbrace^2}{2}\\
=\frac{1}{2}\sum_{n=1}^N \lbrace f(x_n)-t_n\rbrace^2\\
=\frac{1}{2}\sum_{n=1}^N \left(\sum^M_{m=0} \omega_m x^m-t_n\right)^2
\end{equation}
二乗誤差を定義した(2)式(これを
誤差関数と称することもある)の$3$行目には(1)式が代入されている.
さて(2)式を,未知の係数$\lbrace\omega_m\rbrace_{m=0}^M $の関数を見なすと,二乗誤差$E$を最小にする係数および次数$M$を求めることが,観測点を予測する最も近似された関数を求めることになる.この手法を
最小二乗法という.
例えば,$M=0$の場合,多項式(1)は
\[
f(x)=\omega_0
\]
という定数項で表される$x$軸に平行な直線となる.
$M=1$の場合は,
\[
f(x)=\omega_0 + \omega_1 x
\]
で表される傾きと切片を有する直線になる.
二乗誤差$E$を最小にする係数を求めるには,次の偏微分係数が$0$になる(微小変化に対して導関数が変化しない)ことが条件となる.
\begin{equation}
\frac{\partial E}{\partial \omega_m}=0
\end{equation}
ここで,$m=0,\dots,M$.
なお,係数の組をベクトル$\pmb \omega=(\omega_0,\dots,\omega_M)^T$とすれば,
勾配ベクトル$\nabla E(\pmb\omega)=\pmb 0$であるといえる.
(2)式を(3)式に代入して偏微分する.
途中まで,
\begin{equation}
g(x)=\sum^M_{m=0} \omega_m x^m-t_n
\end{equation}
と置き換えて計算すると,次のような過程および結果になる.
\begin{equation}
\frac{\partial E}{\partial \omega_m}=\frac{\partial}{\partial \omega_m}\left[\frac{1}{2}\lbrace g(x_1)\rbrace^2 +,\dots,+ \frac{1}{2}\lbrace g(x_N)\rbrace^2\right]\\
=\sum_{n=1}^N g(x_n) g^{'}(x_n)\\
=\sum_{n=1}^N \left(\sum^M_{m^{'}=0} \omega_{m^{'}} x^{m^{'}}-t_n\right)x_n^m\\
=\sum^M_{m^{'}=0} \omega_{m^{'}} \sum_{n=1}^N x_n^{m^{'}} x_n^m -\sum_{n=1}^N t_n x_n^m\\
=0
\end{equation}
さて,ここに$x_n^m$を$(n,m)$成分とする,$N\times(M+1)$行列$\pmb\Phi$を用意する.
\begin{equation}
\pmb\Phi=
\begin{pmatrix}
x^0_1 & x^1_1 & \dots & x^M_1 \\
x^0_2 & x^1_2 & \dots & x^M_2 \\
\dots & \dots & \dots & \dots \\
x^0_N & x^1_N & \dots & x^M_N
\end{pmatrix}
=
\begin{pmatrix}
1 & x_1 & \dots & x^M_1 \\
1 & x_2 & \dots & x^M_2 \\
\dots & \dots & \dots & \dots \\
1 & x_N & \dots & x^M_N
\end{pmatrix}
\end{equation}
さらに,先ほど勾配ベクトルのところで触れた,未知の係数の組を表したベクトル$\pmb \omega$と,観測値の組であるベクトル$\pmb t =(t_1,\dots,t_N)^T$を用意する.
すると,(5)式は次のように書き換えられる.
\begin{equation}
\pmb\omega^T \Phi^T \Phi - \pmb t^T \Phi = \pmb 0,\\
\pmb\omega = (\Phi^T\Phi)^{-1} \Phi^T \pmb t.
\end{equation}
$M=1$での最小二乗法による(7)式の確認
$M=1$の場合は,
\[
f(x)=\omega_0 + \omega_1 x
\]
で表される傾きと切片を有する直線になることは先述した.(2)式より
\begin{equation}
E=\frac{1}{2}\sum_{n=1}^N \lbrace f(x_n)-t_n\rbrace^2\\
=\frac{1}{2}\sum_{n=1}^N \left[ (\omega_0 + \omega_1 x_n) - t_n\right]^2
\end{equation}
(8)式を$\omega_0,\omega_1$で偏微分すると(5)式より,
\begin{equation}
\frac{\partial E}{\partial \omega_0}=\sum_{n=1}^N \left[(\omega_0 + \omega_1 x_n) - t_n\right]=0
\end{equation}
および
\begin{equation}
\frac{\partial E}{\partial \omega_1}=\sum_{n=1}^N \left[(\omega_0 + \omega_1 x_n) - t_n\right]x_n=0
\end{equation}
が得られる.(9)(10)式をそれぞれ整理すると
\begin{equation}
N \omega_0 + \omega_1 \sum_{n=1}^N x_n = \sum_{n=1}^N t_n
\end{equation}
および
\begin{equation}
\omega_0 \sum_{n=1}^N + \omega_1 \sum_{n=1}^N x_n^2 = \sum_{n=1}^N x_n t_n
\end{equation}
となる.(11)(12)式を行列形式で表すと,
\begin{equation}
\begin{pmatrix}
N & \sum_{n=1}^N x_n \\
\sum_{n=1}^N x_n & \sum_{n=1}^N x_n^2
\end{pmatrix}
\begin{pmatrix}
\omega_0 \\
\omega_1
\end{pmatrix}
=
\begin{pmatrix}
\sum_{n=1}^N t_n \\
\sum_{n=1}^N x_n t_n
\end{pmatrix}
\end{equation}
ゆえに,
\begin{equation}
\begin{pmatrix}
\omega_0 \\
\omega_1
\end{pmatrix}
=
\begin{pmatrix}
N & \sum_{n=1}^N x_n \\
\sum_{n=1}^N x_n & \sum_{n=1}^N x_n^2
\end{pmatrix} ^{-1}
\begin{pmatrix}
\sum_{n=1}^N t_n \\
\sum_{n=1}^N x_n t_n
\end{pmatrix}
\end{equation}
(6)式より,
\begin{equation}
\pmb\Phi=
\begin{pmatrix}
x^0_1 & x^1_1 \\
x^0_2 & x^1_2 \\
\dots & \dots \\
x^0_N & x^1_N
\end{pmatrix}
=
\begin{pmatrix}
1 & x_1 \\
1 & x_2 \\
\dots & \dots \\
1 & x_N
\end{pmatrix}
\end{equation}
と置き換えて,(14)式を変形する.
\begin{equation}
\begin{pmatrix}
\omega_0 \\
\omega_1
\end{pmatrix}
=
\begin{pmatrix}
\begin{pmatrix}
1 & 1 & \dots &1 \\
x_1 & x_2 & \dots & x_N
\end{pmatrix}
\begin{pmatrix}
1 & x_1 \\
1 & x_2 \\
\dots & \dots \\
1 & x_N
\end{pmatrix}
\end{pmatrix}^{-1}
\begin{pmatrix}
1 & 1 & \dots &1 \\
x_1 & x_2 & \dots & x_N
\end{pmatrix}
\begin{pmatrix}
t_1 \\
t_2 \\
\dots \\
t_N
\end{pmatrix}
\end{equation}
なお,
\begin{equation}
\begin{pmatrix}
1 & x_1 \\
1 & x_2 \\
\dots & \dots \\
1 & x_N
\end{pmatrix}^{T}
=
\begin{pmatrix}
1 & 1 & \dots &1 \\
x_1 & x_2 & \dots & x_N
\end{pmatrix}
\end{equation}
である($T$は転置行列を表している).
したがって,
\begin{equation}
\pmb\omega = (\Phi^T\Phi)^{-1} \Phi^T \pmb t
\end{equation}
となり,(7)式と一致する.
index.htmlに戻る