Machine Learning

Stanford Univ, Coursera


Bias vs. Variance

Bias (バイアス, ある方向への偏り) と Variance (分散) に関する考察

データセットをランダムに並べてから 60 %, 20 %, 20 % に分けてそれぞれを Training Set, Cross Validation set, Test set とする。

線形だけではなく高次元の多項式も考えて、その次元を $d$ とする。 $d=1, 2, \cdots, D$ まで変更しながら training set を用いて $err_{tr}$ が最小になるように学習する。 そのあと cross varidation setを用いて、 $d=1, 2, \cdots, D$ まで変更しながら training set を用いて $err_{cv}$ を計算する。

$d$が小さいときは、$err_{tr}$ が大きく、$err_{cv}$ はさらに大きくなる。 Biasの影響が大きくて、underfittingの状態である。

$d$が大きいときは、$err_{tr}$ が小く、$err_{cv}$ はそれよりかなり大きくなる。 Varianceの影響が大きくて、overfittingの状態である。

$err_{tr}$ が小く、$err_{cv}$ も比較的小さいときが、適切な次元 $d$ の値である。

regularization(正規化) と Bias / Variance に関する考察

regularization は overfitting を防ぐために行う。

$\lambda$が大きいと underfitting (Bias) になりがちで、 $\lambda$が小さいと overfitting (Variance) になりがちである。

例として、次数の高い多項式を線形回帰で学習した場合を考える。
$\displaystyle h_{\theta}(x) = \theta_0 + \theta_1 x + \theta_2 x^2 + \theta_3 x^3 + \theta_4 x^4$
$\displaystyle J(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_{\theta} (x^{(i)}) - y^{(i)})^2 + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2$

$J(\theta)$ を減らすように $\theta$ を調整するが、 これはすなわち regularizationの項 $\displaystyle \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2$ を小さくする ことであり、 $\theta_0$ 以外の各 $\theta_j$ を小さくする ことにつながる。 $\lambda$ が大きいと この影響が大きくなり、 結果的に $\theta_0$が相対的に大きくなってしまう。 すなわちバイアス要素が大きく効くように underfitting がちに学習してしまう。 $\lambda$ が小さいと この影響が小さくなり、 結果的に $\theta_0$が相対的に大きくならない。 よってバイアス要素があまり効かず、overfittingがちに学習する。

$\displaystyle J_{train}(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_{\theta} (x^{(i)}) - y^{(i)})^2 $
$\displaystyle J_{cv}(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_{\theta} (x^{(i)}) - y^{(i)})^2 $

$\lambda$が小さいと training set にoverfitting しているので、 cross validation setにはfittingしないので $J_{cv}(\theta)$ は大となる。 また $\lambda$ が大きいと、そもそも training set にも cross validation setにも underfitting なので $\displaystyle J_{train}(\theta)$ も $\displaystyle J_{train}(\theta)$ も大となる。 そのため、 $\lambda$ を小さい状態から少しずつ大きくしていくと $\displaystyle J_{train}(\theta)$ は単調に大きくなるが、 $\displaystyle J_{cv}(\theta)$ は途中まで減ってからそれ以後は単調に大きくなる。

Learning Curve (学習曲線)

次の式の $m$、すなわちデータセットの数について考察する。

$\displaystyle J_{train}(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_{\theta} (x^{(i)}) - y^{(i)})^2 $
$\displaystyle J_{cv}(\theta) = \frac{1}{2m} \sum_{i=1}^{m_{cv}} (h_{\theta} (x^{(i)}) - y^{(i)})^2 $

この例では
$\displaystyle h_{\theta}(x) = \theta_0 + \theta_1 x + \theta_2 x^2$
とする。


Yoshihisa Nitta

http://nw.tsuda.ac.jp/