

機械学習をやっていると、バイアスとバリアンスっていうワードがでてきますよね。
二つとも名前も意味も似た感じがしてこんがらがってしまいます。
今回の記事では、そんな不安を解消していきましょう。
バイアスとは?
バイアスとは偏りのことです。
例えば、最近、Amazonが採用のための履歴書のスクリーニングを自動化するシステムを機械学習で作ろうとしました。
Amazonの従業員の男女比は、男に多く偏っていたために、成功した過去の採用というのも「男」のデータに偏ってしまいます。当然そういったバイアスの入ったシステムが出来上がってしまいました。その結果、女性に対して不利な評価を下してしまうのです。
偏りの大きい機械学習モデルは硬いと言われており、モデルの型が硬すぎると、予測値f(x)は実測値yへのアンフィットするのです。
図のようにモデルが硬すぎる場合、予測値が実測値のデータにフィッティングできません。
このときの実測値yと予測値f(x)の差がバイアスになります。
原因
バイアスが高い「ハイバイアス状態」になるのは、学習が全然足りなくて学習不足であるときになります。
解決策
- 機械学習アルゴリズムの変更
➡データ量ではなく、機械学習アルゴリズムに問題があるケースがある。
- 特徴量を増やす
➡データの特徴量を増やすことで、学習不足を解決する。
学習の入力に使う測定可能な特性のこと。例えば、物件の専有面積が増えるほど家賃は高くなる傾向にあり、逆に築年数は増えるほど家賃は安くなる傾向にあるとき、「専有面積」「築年数」「最寄駅」が特徴量になります。
バリアンスとは?
バリアンスとは、分散のことです。つまり、数値データのばらつき具合のことです。バリアンスが高いと分散値が大きということです。
つまり、バリアンスが大きいバラバラのデータに予測値f(x)をフィッティングさせようとするとグニャグニャになってしまいます。
バリアンスを詳しくいうと、「モデルの型が柔らかすぎるがゆえに生じる、モデルのぶれやすさ」です。
原因
バリアンスが高い「ハイバリアンス状態」になるのは、学習が多すぎて過学習であるときになります。
解決策
- 機械学習アルゴリズムの変更
➡データ量ではなく、機械学習アルゴリズムに問題があるケースがある。
- 特徴量を減らす
➡データの特徴量を減らすことで、過学習を解決する。
バイアスは硬さ、バリアンスは柔らさを意味し、どちらかを小さくすると、もう片方は大きくなり、その逆も成り立ちます。この関係をバイアスとバリアンスのトレードオフ関係といいます。
数式で理解する
数式で理解するには平均2乗誤差(MSE)を用います。
真のモデルを $y=f(x)+σ$、
図の学習モデル (近似曲線)を $ý$ とします。
このときのMSEを解くと下記の式になります。
$$E[(y−ý)^2]=(E[ý]−y)^2+E[(ý−E[ý])^2]+σ^2$$
第1項はバイアスで、予測平均値と実測値の差を表しています。
第2項目はバリアンスで分散値になります。
MSEは値が低いほどいいので、バイアス、バリアンスの値が高くないほうがいいのがわかりますね。