【E資格対策】機械学習の課題

バイアス・バリアンス・ノイズ

バイアス

バイアスは, モデルの予測が真の値からどの程度外れているかを示す値である. 高バイアスのモデルは, 訓練データに対して適合度が低く, データのパターンを十分に学習できていないため, 過少適合(underfitting)の状態であると言える.

バリアンス

バリアンスは, モデルの予測がどの程度変動するかを測定するもので, 異なる訓練データセットを使用してモデルを再訓練した際の予測の一貫性を示す. 高バリアンスのモデルは, 訓練データに対して過度に適合し, 新しいデータに対する汎化性能が低くなり, 過剰適合(overfitting)の状態であると言える.

ノイズ

ノイズは, 観測データ内のランダムな誤差や変動のことを指し, これは測定誤差やモデルが説明できないデータの複雑さなど, 様々な要因によって生じうる. モデルの訓練時においてノイズを含むデータを用いると, モデルがノイズに過度に適合してしまい, 汎化性能が低下する可能性がある.

訓練誤差・汎化誤差

訓練誤差

訓練誤差は, モデルが訓練データにどの程度適合しているかを示す指標である.

訓練誤差が小さいことは, モデルが訓練データを正確に学習していることを意味するが, 必ずしもいいことではない. モデルが訓練データに対して過剰適合し, 未知のデータに対する汎化能力を損なう可能性があるためである.

汎化誤差

汎化誤差は, モデルが未知のデータに対してどの程度適合しているかを示す指標であり, バイアス・バリアンス・ノイズの3つの要素から構成される. バイアスとバリアンスはトレードオフの関係にあるため, モデル構築時は両者が最も低くなるバランスを見つけることが重要である.

バイアス・バリアンス分解

データ集合を DD, 期待値を E\mathbb{E}, 損失関数を LL, 説明変数を xx, 真の値を h(x)h(x), 予測モデルを y(x;D)y(x ; D), 入力データの確率密度関数を p(x)p(x), 実データを tt とすると, 汎化誤差 E[L]\mathbb{E}[L] は次のようにバイアス・バリアンス・ノイズの和に分解できる.

E[L]={y(x;D)t}2p(x,t)dxdt={(y(x)h(x))+(h(x)t)}2p(x,t)dxdt={y(x)h(x)}2p(x)dx+{h(x)t}2p(x,t)dxdt+2{y(x)h(x)}{h(x)t}p(x,t)dxdt\begin{align*} \mathbb{E}[L] &= \iint \left\{ y(x ; D) - t \right\}^2 p(x, t) \mathrm{d}x \mathrm{d}t \\ & = \iint \left\{ (y(x) - h(x)) + (h(x) - t) \right\}^2 p(x, t) \mathrm{d}x \mathrm{d}t \\ & = \int \left\{ y(x) - h(x) \right\}^2 p(x) \mathrm{d}x + \iint \left\{ h(x) - t \right\}^2 p(x, t) \mathrm{d}x \mathrm{d}t \\ & \quad + 2 \iint \left\{ y(x) - h(x) \right\} \left\{ h(x) - t \right\} p(x, t) \mathrm{d}x \mathrm{d}t \tag{1} \end{align*}

第3項については

2{y(x)h(x)}{h(x)t}p(x,t)dxdt=2[{y(x)h(x)}{h(x)t}p(tx)dt]p(x)dx\begin{align*} & 2 \iint \left\{ y(x) - h(x) \right\} \left\{ h(x) - t \right\} p(x, t) \mathrm{d}x \mathrm{d}t \\ = \: & 2 \int \left[ \int \{ y(x) - h(x) \} \{ h(x) - t \} p(t|x) \mathrm{d}t \right] p(x) \mathrm{d}x \end{align*}

と分割され, 内側の積分は

{y(x)h(x)}{h(x)t}p(tx)dt={y(x)h(x)}{h(x)t}p(tx)dt={y(x)h(x)}(h(x)p(tx)dttp(tx)dt)={y(x)h(x)}(h(x)h(x))=0\begin{align*} & \int \{ y(x) - h(x) \} \{ h(x) - t \} p(t|x) \mathrm{d}t \\ = \: & \{ y(x) - h(x) \} \int \{ h(x) - t \} p(t|x) \mathrm{d}t \\ = \: & \{ y(x) - h(x) \} \left( h(x) \int p(t|x) \mathrm{d}t - \int t p(t|x) \mathrm{d}t \right) \\ = \: & \{ y(x) - h(x) \} \left( h(x) - h(x) \right) \\ = \: & 0 \end{align*}

となるから, 第3項は 00 となる. ここで, p(tx)dt=1,tp(tx)dt=h(x)\displaystyle \int p(t|x) \mathrm{d}t = 1, \: \int t p(t|x) \mathrm{d}t = h(x) に注意すること.

したがって, 式 (1)(1)

E[L]={y(x)h(x)}2p(x)dx+{h(x)t}2p(x,t)dxdt(2)\mathbb{E}[L] = \int \left\{ y(x) - h(x) \right\}^2 p(x) \mathrm{d}x + \iint \left\{ h(x) - t \right\}^2 p(x, t) \mathrm{d}x \mathrm{d}t \tag{2}

となり, 第2項はノイズに対応する.


続けて, モデルの誤差である第1項について, 学習データセット DD によるモデルの変動を考えるため, 期待値 EDp\mathbb{E}_{D \sim p} を導入すると, 次のように書ける.

(モデルの誤差)=EDp[{y(x)h(x)}2p(x)dx](\text{モデルの誤差}) = \mathbb{E}_{D \sim p} \left[ \int \left\{ y(x) - h(x) \right\}^2 p(x) \mathrm{d}x \right]

ここで, モデルの予測平均 yˉ(x)=EDp[y(x;D)]\bar{y}(x) = \mathbb{E}_{D \sim p} \left[ y(x; D) \right] を用いると,

EDp[{y(x)h(x)}2p(x)dx]=EDp[{(y(x)yˉ(x))+(yˉ(x)h(x))}2]p(x)dx=EDp[{y(x)yˉ(x)}2]p(x)dx+EDp[{yˉ(x)h(x)}2]p(x)dx+EDp[2{y(x)yˉ(x)}{yˉ(x)h(x)}]p(x)dx=EDp[{y(x)yˉ(x)}2]p(x)dx+{yˉ(x)h(x)}2p(x)dx+2{yˉ(x)h(x)}{EDp[y(x)]yˉ(x)}p(x)dx=EDp[{y(x)yˉ(x)}2]p(x)dx+{yˉ(x)h(x)}2p(x)dx\begin{align*} & \mathbb{E}_{D \sim p} \left[ \int \left\{ y(x) - h(x) \right\}^2 p(x) \mathrm{d}x \right] \\ = \: & \int \mathbb{E}_{D \sim p} \left[ \left\{ (y(x) - \bar{y}(x)) + (\bar{y}(x) - h(x)) \right\}^2 \right] p(x) \mathrm{d}x \\ = \: & \int \mathbb{E}_{D \sim p} \left[ \left\{ y(x) - \bar{y}(x) \right\}^2 \right] p(x) \mathrm{d}x + \int \mathbb{E}_{D \sim p} \left[ \left\{ \bar{y}(x) - h(x) \right\}^2 \right] p(x) \mathrm{d}x \\ \: & \quad + \int \mathbb{E}_{D \sim p} \left[ 2 \left\{ y(x) - \bar{y}(x) \right\} \left\{ \bar{y}(x) - h(x) \right\} \right] p(x) \mathrm{d}x \\ = \: & \int \mathbb{E}_{D \sim p} \left[ \left\{ y(x) - \bar{y}(x) \right\}^2 \right] p(x) \mathrm{d}x + \int \left\{ \bar{y}(x) - h(x) \right\}^2 p(x) \mathrm{d}x \\ \: & \quad + \int 2 \left\{ \bar{y}(x) - h(x) \right\} \left\{ \mathbb{E}_{D \sim p} \left[ y(x) \right] - \bar{y}(x) \right\} p(x) \mathrm{d}x \\ = \: & \int \mathbb{E}_{D \sim p} \left[ \left\{ y(x) - \bar{y}(x) \right\}^2 \right] p(x) \mathrm{d}x + \int \left\{ \bar{y}(x) - h(x) \right\}^2 p(x) \mathrm{d}x \end{align*}

となる.

これを式 (2)(2) に代入すると, 汎化誤差 E[L]\mathbb{E}[L] は次のようにバイアス・バリアンス・ノイズの和に分解される.

E[L]={EDp[y(x;D)]h(x)}2dx(Bias)2+EDp[{y(x;D)EDp[y(x;D)]}2]dxVariance+{h(x)t}2p(x,t)dxdtNoise\begin{align*} \mathbb{E}[L] &= \underbrace{\int \left\{ \mathbb{E}_{D \sim p} \left[ y(x ; D) \right] - h(x) \right\}^2 \mathrm{d}x}_{(\text{Bias})^2} + \underbrace{\int \mathbb{E}_{D \sim p} \left[ \left\{ y(x ; D) - \mathbb{E}_{D \sim p} \left[ y(x ; D) \right] \right\}^2 \right] \mathrm{d}x}_{\text{Variance}} \\ & \quad + \underbrace{\iint \left\{ h(x) - t \right\}^2 p(x, t) \mathrm{d}x \mathrm{d}t}_{\text{Noise}} \end{align*}

バイアス・バリアンス分解においては, ある特定の DD ではなく, 全ての可能な DD に対するモデルの平均的な振る舞いを考慮するために, 期待値 EDp\mathbb{E}_{D \sim p} を導入している. ノイズ項や yˉ(x),h(x)\bar{y}(x), h(x) はデータセット DD に依存しないため, 期待値 EDp\mathbb{E}_{D \sim p} の影響を受けないことに注意する.

正則化

正則化は, 機械学習モデルの訓練において, モデルの複雑さを抑制するために損失関数に正則化項を導入する手法である.

L1正則化

L1正則化は, モデルの重みの絶対値の和を損失関数に加える手法であり, スパースな解を促進する特徴がある. 線形回帰に対して適用する手法をラッソ回帰(Lasso Regression)と呼ぶ.

L2正則化

L2正則化は, モデルの重みの二乗の和を損失関数に加える手法であり, 重みの大きさを抑制し, 過剰適合を防ぐ効果がある. 線形回帰に対して適用する手法をリッジ回帰(Ridge Regression)と呼ぶ.

次元の呪い

データの次元が増えることによって, 計算量の増加, データの疎性化, 過学習などの課題が生じることを次元の呪いという.

次元の呪いを回避するために, 次元削減や利用する特徴量を最適化する特徴量選択が有効である.

参考文献