盆暗の学習記録

データサイエンス ,エンジニアリング,ビジネスについて日々学んだことの備忘録としていく予定です。初心者であり独学なので内容には誤りが含まれる可能性が大いにあります。

予測誤差のバイアス-バリアンス分解の導出

予測誤差や推定量の推定の誤差は、バイアス(bias)とバリアンス(variance)という2つの構成要因に分けることができます。分けることで、誤差を削減する方法について議論しやすくなります。

定量のバイアスーバリアンス分解については以前の記事で書いたことがあります

nigimitama.hatenablog.jp

が、今回は目的変数を$Y=f(X) + \varepsilon$として、予測可能な部分$f(X)$と予測不能な部分$\varepsilon$があるものに対する予測誤差の分解について、どういう式の展開があった結果そうなったのかについてメモしておきます。

※一部の数式でレンダリングが失敗して、解決できなかったので画像で入れています。
Github Pagesに元のノートを公開しましたので、見づらい場合はこちらを御覧ください。
https://nigimitama.github.io/note/20200426_bias_variance_decomposition.html

概要

前提

特徴量ベクトルを$X$とし、目的変数は$Y=f(X) + \varepsilon$であると仮定します。

$f(X)$は$Y$の予測可能な部分で、$\varepsilon$は予測不能なノイズで、

f:id:nigimitama:20200428073143p:plain

とします。

議論を簡潔にするため、データにおける$x_i$の値は決定論的に決められているとします。

学習データセット$\mathcal{D}$で学習した予測器を$\hat{f}(x; \mathcal{D})$とします。

様々な学習データセット$\mathcal{D}$にわたっての期待値をとる操作を${\rm E}_{\mathcal{D}}$と表すことにします。

平均2乗誤差の分解

平均2乗誤差の下での、$X=x_0$における期待予測誤差(expected prediction error)もしくは汎化誤差(generalization error)と呼ばれるものは、

\[ {\rm EPE} (x_0) = {\rm E}_{\mathcal{D}}[(Y - \hat{f}(x_0; \mathcal{D}))^{2} | X = x_0] \]

であり、これを分解すると

f:id:nigimitama:20200428073226p:plain

と分解できることが知られています。

展開

この分解の過程を以下で整理していきます。ただし、記号を以下のように簡略化します。

\[ \begin{align}f &:= f(x_0)\\\hat{f} &:= \hat{f}(x_0; \mathcal{D})\\{\rm E} &:= {\rm E}_{\mathcal{D}}\\{\rm Var} &:= {\rm Var}_{\mathcal{D}}\\\end{align} \]

\[ \begin{align}{\rm EPE}(x_0)&={\rm E}[(Y-\hat{f})^{2}]\\&={\rm E}[(Y - {\rm E}[\hat{f}] + {\rm E}[\hat{f}] - \hat{f})^{2}]\\&={\rm E}[(Y - {\rm E}[\hat{f}])^{2} + 2(Y - {\rm E}[\hat{f}])({\rm E}[\hat{f}] - \hat{f}) + ({\rm E}[\hat{f}] - \hat{f})^{2}]\\&={\rm E}[(Y - {\rm E}[\hat{f}])^{2}]+ {\rm E}[2(Y - {\rm E}[\hat{f}])({\rm E}[\hat{f}] - \hat{f})]+ {\rm E}[({\rm E}[\hat{f}] - \hat{f})^{2}] \tag{1}\end{align} \]

ここで式$(1)$の第1項は

\[ \begin{align}&{\rm E}[(Y - {\rm E}[\hat{f}])^{2}]\\&= {\rm E}[Y^{2} - 2Y{\rm E}[\hat{f}] + {\rm E}[\hat{f}]^{2}]\\&= {\rm E}[(f+\varepsilon)^{2} - 2(f + \varepsilon){\rm E}[\hat{f}]+ {\rm E}[\hat{f}]^{2}]\\&={\rm E}[(f^{2} + 2f\varepsilon + \varepsilon^{2})- (2f{\rm E}[\hat{f}] + 2\varepsilon{\rm E}[\hat{f}])- {\rm E}[\hat{f}]^{2}]\tag{2}\end{align} \]

と分解でき、ここで${\rm E}[\varepsilon]=0$と期待値の線形性$c{\rm E}[X] = {\rm E}[cX]$から、$\varepsilon$が含まれる項はゼロが掛かってゼロになるので式$(2)$は

\[ \begin{align}&{\rm E}[(f^{2} + 2f\varepsilon + \varepsilon^{2})- (2f{\rm E}[\hat{f}] + 2\varepsilon{\rm E}[\hat{f}])+ {\rm E}[\hat{f}]^{2}]\tag{2}\\&= {\rm E}[\varepsilon^{2}]+ {\rm E}[f^{2} - 2f{\rm E}[\hat{f}] +{\rm E}[\hat{f}]^{2}]\\&= {\rm E}[\varepsilon^{2}]+ {\rm E}[(f - {\rm E}[\hat{f}])^{2}]\end{align} \]

です。

式$(1)$の第2項は、${\rm E}[\hat{f}]$が定数であることと、期待値と定数の関係${\rm E}[X - c] = {\rm E}[X]-c$から、

\[ {\rm E}[{\rm E}[\hat{f}] - \hat{f}]= {\rm E}[\hat{f}] - {\rm E}[\hat{f}] = 0 \]

なので、第2項はゼロになります。

ゆえに式$(1)$は

\[ \begin{align}&{\rm E}[(Y - {\rm E}[\hat{f}])^{2}]+ {\rm E}[2(Y - {\rm E}[\hat{f}])({\rm E}[\hat{f}] - \hat{f})]+ {\rm E}[({\rm E}[\hat{f}] - \hat{f})^{2}] \tag{1}\\&= {\rm E}[\varepsilon^{2}] + {\rm E}[(f - {\rm E}[\hat{f}])^{2}]+ {\rm E}[({\rm E}[\hat{f}] - \hat{f})^{2}]\tag{3}\end{align} \]

となります。

式$(3)$の第1項は、

\[ \begin{align}{\rm Var}[\varepsilon]&= {\rm E}[(\varepsilon - {\rm E}[\varepsilon])^{2}]\\&= {\rm E}[\varepsilon^{2} -2\varepsilon {\rm E}[\varepsilon] + {\rm E}[\varepsilon]^{2}]\\&= {\rm E}[\varepsilon^{2} -2\varepsilon \cdot 0 + 0^{2}]\\&= {\rm E}[\varepsilon^{2}]\end{align} \]

なので、ノイズ$\varepsilon$の分散に等しいことになります。

式$(3)$の第2項は、$f$と${\rm E}[\hat{f}]$が定数であるため

\[ \begin{align}&{\rm E}[(f - {\rm E}[\hat{f}])^{2}]\\&=(f - {\rm E}[\hat{f}])^{2}\\\end{align} \]

で、これは真の関数$f$と予測値の期待値${\rm E}[\hat{f}]$の差(バイアス)の2乗です。

式$(3)$の第3項は、予測値$\hat{f}$の分散(バリアンス)です。

よって、 f:id:nigimitama:20200428073736p:plain

です。

最初からの展開をまとめると

f:id:nigimitama:20200428073718p:plain

となります。

各項の意味

削減不能な誤差(irreducible error)

f:id:nigimitama:20200428073817p:plain

$Y$の分散であり、ノイズの分散。

データの測定誤差などに由来します。

削減できないので、予測誤差のバイアスーバリアンス分解を議論するときに、この項を省くために、$Y$と$\hat{f}$の誤差ではなく$f$と$\hat{f}$の誤差を分解して

\[ \begin{align}&{\rm E}[(f - \hat{f})^{2}]\\&= {\rm E}[(f - {\rm E}[\hat{f}] + {\rm E}[\hat{f}] - \hat{f})^{2}]\\&= {\rm E}[(f - {\rm E}[\hat{f}])^{2}]+ 2(f - {\rm E}[\hat{f}])\underbrace{{\rm E}[({\rm E}[\hat{f}] - \hat{f})]}_{=0}+ {\rm E}[({\rm E}[\hat{f}] - \hat{f})^{2}]\\&= (f - {\rm E}[\hat{f}])^{2}+ {\rm E}[({\rm E}[\hat{f}] - \hat{f})^{2}]\\&= {\rm Bias}(\hat{f})^{2} + {\rm Var}(\hat{f})\end{align} \]

とする場合もあります。

バイアス(Bias)

\[ {\rm Bias}(\hat{f}(x_0; \mathcal{D}))= {\rm E}_{\mathcal{D}}[\hat{f}(x_0; \mathcal{D})]- f(x_0) \]

予測値の平均と真の値との差。

多くの場合、より複雑なモデルを用いて予測すると、それだけバイアスは減少し、代わりにバリアンスが増加します。

バリアンス(Variance)

\[ {\rm Var}_{\mathcal{D}}(\hat{f}(x_0; \mathcal{D}))= {\rm E}_{\mathcal{D}}[(\hat{f}(x_0; \mathcal{D}) - {\rm E}_{\mathcal{D}}[\hat{f}(x_0; \mathcal{D})])^{2}] \]

(学習データセットを変えていったときの)予測値の分散。

学習データセットを変えるたびに予測値がばらつく、ということは、学習・予測の安定性が低いということ。

すなわち、単一の学習データセット過学習していることに由来すると考えられます。

参考文献

バイアス-バリアンス - 機械学習の「朱鷺の杜Wiki」

偏りと分散 - Wikipedia

Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning: data mining, inference, and prediction. Springer Science & Business Media.

はじめてのパターン認識

はじめてのパターン認識

  • 作者:平井 有三
  • 発売日: 2012/07/31
  • メディア: 単行本(ソフトカバー)