equal_l2’s blog

※記載されている内容の正確性は保証しませんが、間違いを指摘していただければ直します。

最小二乗法(3) 線形最小二乗法と非線形最小二乗法

前:最小二乗法(2) 一般的な正規方程式 - equal_l2’s blog
次:最小二乗法(4) 多項式フィッティング - equal_l2’s blog
最小二乗法は、モデル関数によって次の2つに分かれる。
\def \fxb {f(x_i,\vec\beta)}

線形最小二乗法

モデル関数が、「既知の関数とパラメータの積」の線形結合で表される関数(線形モデル関数)であるもの。
一般的には、
\displaystyle \fxb=\sum_{k=0}^{d} \beta_k g(x_i)
ただし、g(x_i)は任意の(パラメータ\vec\betaを含まない)関数である。

たとえば、\fxb=\beta_0 x_i + \beta_1 x_i^2とか、\fxb=\beta_0 \cos{x_i} + \beta_1 \sin{x_i}などである。

非線形最小二乗法

モデル関数が線形モデル関数以外であるもの。

たとえば、\fxb= \sin{\beta_0 x_i} + \cos{\beta_1 x_i}など。

ただし、一見すると非線形なものでも工夫次第で線形最小二乗法に帰結できるものもある。

指数関数

\fxb = \beta_0 e^{\beta_1 x_i}

\fxb=y_iとして両辺の自然対数を取ると、
\log{y_i} = \log{\beta_0} + \beta_1 x_i
となる。

\log{y_i}を新たなy_i\log{\beta_0}を新たな\beta_0として取ってやれば、
y_i=\beta_0 + \beta_1 x_i
となるから、線形最小二乗法で解ける。

三角関数

\fxb = \beta_0 \cos(\beta_1 + x_i)

展開して、
\fxb = \beta_0 (\cos\beta_1 \cos x_i - \sin\beta_1 \sin x_i )

\beta_0\cos\beta_1 , -\beta_0\sin\beta_1をそれぞれ\beta_0,\beta_1と置き直せば、
\fxb=\beta_0 \cos{x_i} + \beta_1 \sin{x_i}
となり、線形最小二乗法で解ける。

線形モデル関数は、あるパラメータで偏微分したときに他のパラメータが入り込まないので、線形最小二乗法は代数的な連立方程式として解ける。
しかし、非線形最小二乗法ではそうはいかず、数値的な解法に頼るしかない。

非線形最小二乗法はしばらく置いておいて、次回からは線形最小二乗法の中でも簡単でしかもよく使われる、モデル関数が多項式である場合を扱う。