機械学習の分野では、バギング(bagging)というアンサンブル学習の方法があります。
なぜバギングは予測誤差を下げるのか?という点について少し学んだのでメモしておきます。
バギング(bagging, “bootstrap aggregating”の略)とは、多様性をもった複数の決定木を作り、その平均(回帰の場合)や多数決を行った結果(分類の場合)を最終的な予測値とする学習法です。
アルゴリズムは以下のようになります:
誤差はバイアスとバリアンスという構成要因に分解できます。
データがモデルY=f(X) + \varepsilonから生成されたとし、\text{E}(\varepsilon)=0,\ \text{Var}(\varepsilon)=\sigma^2_{\varepsilon}とします。議論を簡潔にするため、データにおけるx_iの値は決定論的に決められているとします。そのとき、X=x_0における期待予測誤差、もしくは汎化誤差と呼ばれるものは \begin{align}\text{EPE}(x_0)&=\text{E}_{\mathcal D}[(Y-\hat{f}(x_0))^2|X=x_0]\\&= \sigma^2_{\varepsilon} + (\text{E}_{\mathcal D}[\hat{f}(x_0)] - f(x_0))^2+ \text{E}_{\mathcal D}[(\hat{f}(x_0) - \text{E}_{\mathcal D}[\hat{f}(x_0)])^2]\\&= \sigma^2_{\varepsilon} + \text{Bias}(\hat{f}(x_0))^2 + \text{Var}_{\mathcal D}(\hat{f}(x_0))\\&= \text{削減不能な誤差} + \text{バイアス}^2 + \text{バリアンス(分散)} \end{align} と分解できます。ただし、\text{E}_{\mathcal D}はいろいろな訓練サンプル集合\mathcal Dについてとった平均です。各用語の意味は以下の通り:
解析のため、真の分布\mathcal Pから無限に学習データセットが得られるとし、その下で構成される理想的な平均化推定量(aggregated estimator)\bar{f}(x) = \text{E}_{\mathcal P} [\hat{f}(x)]があったとします。
ここで\hat{f}(x)は分布\mathcal{P}から独立に取り出した学習データ\{x_i, y_i\}_{i=1}^Nで学習した予測器の、入力点xにおける予測値です。
固定された入力点xの下での平均2乗誤差(MSE)を分解すると \begin{align}\text{E}_{\mathcal P} [(Y - \hat{f}(x))^2]&= \text{E}_{\mathcal P} [(Y - \bar{f}(x) + \bar{f}(x) -\hat{f}(x))^2]\\ &= \text{E}_{\mathcal P} [(Y - \bar{f}(x))^2] + \underbrace{\text{E}_{\mathcal P} [(\hat{f}(x) - \bar{f}(x))^2]}_{Variance}\\ &\geq \text{E}_{\mathcal P} [(Y - \bar{f}(x))^2]\end{align} 2行目の第2項\text{E}_{\mathcal P} [(\hat{f}(x) - \bar{f}(x))^2]は平均\bar{f}(x)のまわりでの\hat{f}(x)の分散(バリアンス)です。
上の式は、Yと平均化推定量\bar{f}(x)の平均2乗誤差\text{E}_{\mathcal P} [(Y - \bar{f}(x))^2]は、Yと推定量\hat{f}(x)の平均2乗誤差\text{E}_{\mathcal P} [(Y - \hat{f}(x))^2]よりもバリアンスの分だけ小さいことを示しています。
一般的に、バイアスとバリアンスの間にはトレードオフ関係があり、バリアンスを下げるとバイアスが増える傾向がありますが、バギングを使うことで、バイアスを増やさずにバリアンスをゼロにすることができるわけです。
上の議論は真の分布\mathcal Pから無限にデータセットが得られる場合で、現実にはありえません。Breiman (1996)が提案したバギングでは、この無限のデータセットをブートストラップサンプルで近似したものになります。ブートストラップによる現実のバギングでも、多くの場合はこのようにバリアンスを下げてくれます。
ただし、回帰においてバギングは平均2乗誤差を増加させず減少させますが、分類の場合は多数決になるので、一定以上の精度がないと逆に悪化させる可能性があります。
Breiman(1999)が行った実験結果をまとめたのが以下の表です。
Data Setはデータセット名、Noiseはデータセットのノイズです。
Unpruned CARTは、枝刈りを行わなかった単体の決定木で、Baggingは枝刈りしていない50本の決定木で構成されたBaggingです。
理論解析の結論とほぼ合致していて、Baggingが単体の決定木と同程度のBiasを保ったままVarianceを大幅に削減していることがわかります。
理論解析と違ってVarianceがゼロにならないのは、
という理由が考えられます。
分散\sigma^2のB個の独立な確率変数Xの平均\bar{X}の分散は \text{Var}[\bar{X}] = \frac{\sigma^2}{B} になりますが、確率変数間に正の相関\rhoがある場合は \text{Var}[\bar{X}] = \frac{1-\rho}{B} \sigma^2 + \rho \sigma^2 となります。
ブートストラップ標本の数Bを増やすと第1項は減りますが、第2項は残ります。
単純なバギングで決定木を作っただけでは\rho \sigma^2が残ってしまい、分散の低減効果が少なくなります。
そのため、ランダムフォレスト(Breiman 2001)では、複数の決定木を作っていくフェーズで、あらかじめ決めた数の特徴量をランダムに選び出して決定木を作ることで決定木間の相関を大幅に減らすように工夫されています。
Breiman, L. (1996). Bagging predictors. Machine learning, 24(2), 123-140.
Breiman, L. (2001). Random forests. Machine learning, 45(1), 5-32.
Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning: data mining, inference, and prediction. Springer Science & Business Media.