この記事では,研究のサーベイをまとめていきたいと思います。ただし,全ての論文が網羅されている訳ではありません。また,分かりやすいように多少意訳した部分もあります。ですので,参考程度におさめていただければ幸いです。
間違えている箇所がございましたらご指摘ください。随時更新予定です。他のサーベイまとめ記事はコチラのページをご覧ください。
線形回帰とは?
線形回帰とは,基底関数を線形的に重みづけした出力をモデルとする回帰のことを指します。
\begin{eqnarray}
y(\boldsymbol{x},\boldsymbol{w}) &=& \boldsymbol{w}^T \phi(\boldsymbol{x})
\end{eqnarray}
このとき,最小二乗法に基づけば,最適な重みパラメータは以下のような形になります。
\begin{eqnarray}
\boldsymbol{w}_{ML} &=& (\boldsymbol{\Phi}^T\boldsymbol{\Phi})^{-1} \boldsymbol{\Phi}^T\boldsymbol{t}
\end{eqnarray}
ただし,$\Phi$は以下のように定めています。
\begin{eqnarray}
\Phi = \left(
\begin{array}{ccccc}
\phi_0(x_1) & \cdots & \phi_m(x_1) & \cdots & \phi_{M-1}(x_1)\\
\vdots & \ddots & & & \vdots \\
\phi_0(x_n) & \cdots & \phi_m(x_n) & \cdots & \phi_{M-1}(x_n) \\
\vdots & & & \ddots & \vdots \\
\phi_0(x_N) & \cdots & \phi_m(x_N) & \cdots & \phi_{M-1}(x_N)
\end{array}
\right)
\end{eqnarray}
基底関数
基底関数$\phi$としては,以下の関数がよく利用されます。
\begin{eqnarray}
\phi_j(x) &=& x^j\\
\phi_j(x) &=& \exp{(-\frac{(x – \mu_j)^2}{2s_j^2})}\\
\phi_j(x) &=& \sigma(\frac{x – \mu_j}{s_j})\\
\sigma(a) &=& \frac{1}{1 + \exp{(-a)}}
\end{eqnarray}
上から,多項式基底,ガウス基底,シグモイド基底となります。平均と分散はどのように決めてもよいですが,シンプルに以下のように定めることにします。
\begin{eqnarray}
\boldsymbol{x}_j &=& ( x_{j1}, x_{j2}, \cdots x_{jD} )^T \\
\mu_j &=& \frac{1}{D}\sum_{d}\boldsymbol{x}_{jd} \tag{2.8}\\
s_j^2 &=& \frac{1}{D}\sum_{d} (\boldsymbol{x}_{jd} – \mu_j)^2 \tag{2.8}
\end{eqnarray}
モデルの評価
出来上がったモデルはの定量評価には,以下の指標がよく利用されます。
\begin{eqnarray}
\rm{MSE}(c) &=& \frac{1}{N}\sum_{n=1}^{N}(x_n – c)^2 \\
R^2 &=& 1 – \frac{\sum_{n=1}^{N}(y_n – \hat{y_n})^2}{\sum_{n=1}^{N}(y_n – \overline{y_n})^2}
\end{eqnarray}
上は平均二乗誤差,下は決定係数と呼ばれています。
まとめ
計算過程は全てふっ飛ばして書き留めました。以下がPythonで実装した記事になります。
●Pattern Recognition and Machine Learning, Christopher Bishop