線形回帰
線形回帰の定式化
データの個数を \(N\) とします。
入力ベクトルを \(\boldsymbol{x}_i\in\mathbb{R}^d\) とし、これに対応する目標値を \(y_i\in\mathbb{R}\) として、データセット \(\mathcal{D}\) を与えます。
\[
\mathcal{D}=\{(\boldsymbol{x}_i,y_i) ~|~\boldsymbol{x}_i\in\mathbb{R}^d,~y_i\in\mathbb{R}\}_{i=1}^N
\]
次のモデルを考えます。
\[
y_i=f(\boldsymbol{x}_i)+\varepsilon_i,~~~\varepsilon_i\sim\mathcal{N}(0,\sigma^2) \quad (i=1,\cdots,N)
\]
これは、入力 \(\boldsymbol{x}_i\) に対する出力 \(y_i\) は、真の関数 \(f(\boldsymbol{x}_i)\) にノイズ(誤差)\(\varepsilon_i\) を加えたものであるとするものです。
このとき、正規分布の性質より
\[
y_i\sim\mathcal{N}(f(\boldsymbol{x}_i),\sigma^2)
\]
となります。
定義(線形回帰)
目的変数 \(y\) を予測するモデル関数 \(f(\boldsymbol{x};\boldsymbol{\theta})\) を
\[
f(\boldsymbol{x}_i;\boldsymbol{\theta})=\boldsymbol{x}_i^\top\boldsymbol{\theta}
\]
とするとき、すなわち、モデル式を
\[
y_i=\boldsymbol{x}_i^\top\boldsymbol{\theta}+\varepsilon_i
\]
とする回帰を線形回帰という。
線形回帰の勾配降下法
線形回帰では、損失として二乗誤差損失を用います。
\[
\begin{align}
l_i(y_i,f(\boldsymbol{x}_i;\boldsymbol{w}))
&=(y_i-f(\boldsymbol{x}_i;\boldsymbol{w}))^2\\
&=(y_i-\boldsymbol{x}_i^\top\boldsymbol{w})^2
\end{align}
\]
損失関数は平均損失として
\[
\begin{align}
L(\boldsymbol{w})
&=\frac{1}{N}\sum_{i=1}^N l_i(y_i,f(\boldsymbol{x}_i;\boldsymbol{w}))\\
&=\frac{1}{N}\sum_{i=1}^N (y_i-\boldsymbol{x}_i^\top\boldsymbol{w})^2
\end{align}
\]
と定義します。
上記の損失関数は、データ行列 \(X\) と 出力ベクトル \(\boldsymbol{y}\) を
\[
X=
\begin{bmatrix} \boldsymbol{x}_1^\top \\ \boldsymbol{x}_2^\top \\ \vdots \\ \boldsymbol{x}_n^\top \end{bmatrix}
,\quad
\boldsymbol{y}=
\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}
\]
と定めることで
\[
L(\boldsymbol{w})=\frac{1}{N} \|\boldsymbol{y}-X\boldsymbol{w}\|^2
\]
と簡単な形で表せます。
\[
\begin{align}
L(\boldsymbol{w})=\frac{1}{N}(\boldsymbol{y}-X\boldsymbol{w})^\top (\boldsymbol{y}-X\boldsymbol{w})
\end{align}
\]
したがって、勾配降下法における更新式は
\[
\boldsymbol{w} \gets \boldsymbol{w}-\eta\cdot\frac{2}{N}X^\top(X\boldsymbol{w}-\boldsymbol{y})
\]