偏りと分散
偏りと分散やバイアス-バリアンスのトレードオフ(かたよりとぶんさんのトレードオフ、bias–variance tradeoff)とは、統計学と機械学習において、パラメータの推定においてバイアス(偏り)を減らすと標本間のバリアンス(分散)が増え、同時にその逆も成立する、という予測モデルの特徴のことである。
バイアス-バリアンスのジレンマ(bias–variance dilemma)やバイアス-バリアンスの問題(bias–variance problem)とは、誤差の原因であるバイアスとバリアンスの両方を同時に減らそうとする際の対立の事であり、教師あり学習のアルゴリズムが訓練データの内容を超えて汎化する際の課題となる。
バイアス(偏り)
学習アルゴリズムにおいて、誤差のうち、モデルの仮定の誤りに由来する分。バイアスが大きすぎることは、入力と出力の関係を適切に捉えられていないことを意味し、過少適合している。
バリアンス(分散)
誤差のうち、訓練データの揺らぎから生じる分。バリアンスが大きすぎることは、本来の出力ではなく、訓練データのランダムなノイズを学習していることを意味し、過剰適合している。
バイアス-バリアンス分解(bias–variance decomposition)とは、汎化誤差の期待値をバイアス+バリアンス+ノイズの3つの和に分解することである。
バイアス-バリアンスのトレードオフは、全ての教師あり学習で生じる。人間の学習において、人間がヒューリスティクスを使用することの有効性の説明にも使用されている。
統計学では通常 bias は偏り、variance は分散と翻訳するが、この文脈ではバイアスとバリアンスとカタカナで表記されることが多い。書籍『パターン認識と機械学習』の翻訳者はバイアス-バリアンスと訳し、書籍『統計的学習の基礎』の翻訳者はバイアス-分散と訳した。
データとして入力 x_1, \dots, x_n があり、出力は y_i とする。真の関数 y = f(x) + \varepsilon が存在し、\varepsilon は平均0分散 \sigma^2 のノイズである。
真の関数 f(x) を可能な限り近似した \hat{f}(x) を推定したいとする。可能な限りの意味として、ここでは二乗誤差 (y - \hat{f}(x))^2 を訓練データだけでなく、全てのデータにおいて最小化したいとする。ここで y_i はノイズ \varepsilon を含んでいるので、原理上、完璧に推定することは不可能である。
訓練データから \hat{f} を推定する教師あり学習のアルゴリズムは無数にあるが、どのアルゴリズムであっても、二乗誤差の期待値は以下のように分解できる。
\operatorname{E}\Big[\big(y - \hat{f}(x)\big)^2\Big]
= \Big(\operatorname{Bias}\big[\hat{f}(x)\big] \Big) ^2 + \operatorname{Var}\big[\hat{f}(x)\big] + \sigma^2
\operatorname{Bias}\big[\hat{f}(x)\big] = \operatorname{E}\big[\hat{f}(x)\big] - f(x)
\operatorname{Var}\big[\hat{f}(x)\big] = \operatorname{E}[\hat{f}(x)^2] - \operatorname{E}[{\hat{f}(x)]^2.
二乗誤差のバイアス-バリアンス分解は以下のように導出できる。f = f(x) および \hat{f} = \hat{f}(x) と簡略に表記する。分散の定義より、
\operatorname{Var}[X] = \operatorname{E}[X^2] - \Big(\operatorname{E}[X]\Big)^2.
これを式変形すると下記になる。
\operatorname{E}[X^2] = \operatorname{Var}[X] + \Big(\operatorname{E}[X]\Big)^2.
f は決定論的なので、
\operatorname{E}[f] = f.
y = f + \varepsilon と \operatorname{E}[\varepsilon] = 0 より
\operatorname{E}[y] = \operatorname{E}[f + \varepsilon] = \operatorname{E}[f] = f.
\operatorname{Var}[\varepsilon] = \sigma^2 より
\operatorname{Var}[y] = \operatorname{E}[(y - \operatorname{E}[y])^2] = \operatorname{E}[(y - f)^2] = \operatorname{E}[(f + \varepsilon - f)^2] = \operatorname{E}[\varepsilon^2] = \operatorname{Var}[\varepsilon] + \Big(\operatorname{E}[\varepsilon]\Big)^2  = \sigma^2
\varepsilon と \hat{f} は独立なので、以下のように式変形できる。
\begin{align}
\operatorname{E}\big[(y - \hat{f})^2\big]
& = \operatorname{E}\big[(f+\varepsilon  - \hat{f} )^2\big] \\[5pt]
& = \operatorname{E}\big[(f+\varepsilon  - \hat{f} +\operatorname{E}[\hat{f}]-\operatorname{E}[\hat{f}])^2\big] \\[5pt]
& = \operatorname{E}\big[(f-\operatorname{E}[\hat{f}])^2\big]+\operatorname{E}[\varepsilon^2]+\operatorname{E}\big[(\operatorname{E}[\hat{f}]- \hat{f})^2\big]
+2\operatorname{E}\big[(f-\operatorname{E}[\hat{f}])\varepsilon\big]
+2\operatorname{E}\big[\varepsilon(\operatorname{E}[\hat{f}]- \hat{f})\big]
+2\operatorname{E}\big[(\operatorname{E}[\hat{f}]- \hat{f})(f-\operatorname{E}[\hat{f}])\big] \\[5pt]
& = (f-\operatorname{E}[\hat{f}])^2+\operatorname{E}[\varepsilon^2]+\operatorname{E}\big[(\operatorname{E}[\hat{f}]- \hat{f})^2\big]
+2(f-\operatorname{E}[\hat{f}])\operatorname{E}[\varepsilon]
+2\operatorname{E}[\varepsilon]\operatorname{E}\big[\operatorname{E}[\hat{f}]- \hat{f}\big]
+2\operatorname{E}\big[\operatorname{E}[\hat{f}]- \hat{f}\big](f-\operatorname{E}[\hat{f}]) \\[5pt]
& = (f-\operatorname{E}[\hat{f}])^2+\operatorname{E}[\varepsilon^2]+\operatorname{E}\big[(\operatorname{E}[\hat{f}]- \hat{f})^2\big]\\[5pt]
& = (f-\operatorname{E}[\hat{f}])^2+\operatorname{Var}[y]+\operatorname{Var}\big[\hat{f}\big]\\[5pt]
& = \operatorname{Bias}[\hat{f}]^2+\operatorname{Var}[y]+\operatorname{Var}\big[\hat{f}\big]\\[5pt]
& = \operatorname{Bias}[\hat{f}]^2+\sigma^2+\operatorname{Var}\big[\hat{f}\big]
\end{align}
次元削減や特徴選択はモデルを簡単にすることによりバリアンスを減らせる。訓練データを増やすこともバリアンスを減らせる。特徴量を追加することはバイアスを減らす傾向にあるが、バリアンスの追加が犠牲となる。
学習アルゴリズムはバイアスとバリアンスのバランスを調整するパラメータがあることが多い。以下はその例。
線形モデルや一般化線形モデルでは、正則化により、バリアンスを減らしバイアスを増やせる。
ニューラルネットワークでは、隠れ層を大きくすることで、バリアンスを増やしバイアスを減らせる。一般化線形モデル同様、正則化も使える。
k近傍法では、kを増やすことで、バリアンスを減らしバイアスを増やせる。
決定木では、木の深さでバリアンスを調整できる。
バイアス-バリアンスのトレードオフを解決する1つの方法は、混合モデルとアンサンブル学習である。例えば、ブースティングでは複数の弱学習器(バイアスが大きい)を組み合わせることでバイアスを下げることができ、バギングでは強学習器を組み合わせることでバリアンスを減らせる。
バイアス-バリアンスのジレンマは機械学習の文脈で広く議論されているが、人間の認知の文脈でも検討されていて、Gerd Gigerenzer 等による学習ヒューリスティクスの研究がある。経験がまばらであまり特徴付けられていない状況で、高バイアス低バリアンスのヒューリスティクスにて、このジレンマを解決して、人間の脳は学習していると主張している。バイアスが小さすぎる学習手法は、新しい状況への汎化能力が乏しく、世界の真の状態を不適切に推定する、という事実を反映している。これらのヒューリスティクスは相対的に簡単であるが、多くの状況に対してより良い推定をもたらす。
Stuart Geman 等は、一般物体認識をゼロから学習することは不可能であり、ある種の"固い配線"があり、それを経験により調整する形が必要であるということを、バイアス-バリアンスのジレンマは意味していると主張している。なぜなら、高バリアンスを避けるために、自由すぎるモデルは非現実的なほどの大量の訓練データを必要とするからである。