LoginSignup
26

More than 5 years have passed since last update.

オーバーフィッティングと正則化

Last updated at Posted at 2016-01-26

本記事では、こちらのサイト を参考にオーバーフィッティング(Overfitting)と、それを克服する正則化(Regularization)について解説します。

オーバーフィッティングと正則化

オーバーフィッティングとは

一般的にトレーニングセットにはノイズが含まれます。学習時にノイズの影響を受けることで、トレーニングセットには適合できるが、未知データには適合できなくなることをオーバーフィッティング過適合といいます。(トレーニングセットにも適合しないことをアンダーフィッティング・高バイアスと言います。)

overfitting.png

対策の例

  • 出力に有効でない変数を減らす。(例えば、他の変数の関数になっているもの)
  • 正則化

正則化

正則化とは、コスト関数に罰則を加えた新しいコスト関数を用いることで、モデルの複雑さを緩和しようとするための手法です。決めるべきパラメータが $\theta = \left(\theta_0, \theta_1, \ldots , \theta_n \right)^T$ であるモデルの従来のコスト関数を $\tilde{\mathrm{Cost}}(\theta)$ とします。例えば、確率変数の大きさという複雑さを緩和する方法が次の正則化1です。

\mathrm{Cost}(\theta) = \tilde{\mathrm{Cost}}(\theta)+ \lambda \sum_{i=1}^{n}\theta_i^2

ここで、 $\lambda (> 0)$ は正則化パラメータと呼ばれます。2 正則化した後は左辺の $\mathrm{Cost}(\theta)$ を最小化する $\theta$ を求めることになります。

正規方程式

トレーニングセット $(x_i, y_i),\ 1 \leq i \leq m$ と $\tilde{x_i} := (1, x_i)^T$ に対して、線形回帰の二乗誤差の正則化問題

\mathrm{Cost}(\theta) = \frac{1}{2m}\sum_{i=1}^m \left( \theta \cdot \tilde{x_i} - y_i \right)^2 + \frac{\lambda}{2m} \sum_{i=1}^{n}\theta_i^2

3

X = 
\left(
\begin{array}{c}
(\tilde{x_0})^T\\
(\tilde{x_1})^T\\
\vdots \\
(\tilde{x_n})^T
\end{array}
\right)

とおくと、解析的に

\theta = \left( X^TX + \lambda
\left(
\begin{array}{cccc}
0&0&\cdots&0\\
0&1&\cdots&0\\
\vdots & \vdots&\ddots & \vdots\\
0 & 0& \cdots&1
\end{array}
\right)
\right)^{-1}X^T y

という解を得ます。これ4を正規方程式(Normal equation)といいます。ただし、 $\lambda = 0$ のときは右辺の $X^TX$ に逆行列の存在が保障されていないことに注意してください。5


  1. この正則化は $L_2$ 正則化、リッジ(Ridge)正則化などと呼ばれます。 

  2. 正則化パラメータが大きすぎると、$\theta_i \approx 0 \ (i\neq 0)$ となり、アンダーフィッティングを生じます。 

  3. 正則化の定義に比べて正則パラメータに $1/2m$ がかかっていますが、 $\lambda$ は任意の正数なので本質的に違いはありません。 

  4. 正確には右辺にある行列 $\left( X^TX + \lambda(行列)\right)$ をこの式の両辺にかけたものが正規方程式と呼ばれます。 

  5. $X^TX$ に逆行列を持たせる操作が正則化の語源になっています。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26