線形回帰

線形回帰の定式化

データの個数を \(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}) \]

演習問題

問題
解答