はじめに
ディープラーニングにおける過学習を理解する上でよく出てくるバイアスとかバリアンス。両者の違いについてなんとなく感覚でわかっていたつもりだったが、調べてみると奥深い視点が自分なりに見えてきたので、メモ的にまとめて投稿してみます。
今回はバイアス-バリアンス分解についてになります。単なる一視点ということで。
バイアスって?バリアンスって?
はじめにバイアスとは、予測モデルにおける予測値と学習データの差(平均値)を示しており、予測モデルが単純な場合大きくなる傾向があります。
一方バリアンスとは、予測モデルの複雑化を示したものでありノイズに影響を受けており、予測モデルが複雑すぎる場合に大きくなっていきます。
ちなみに、単純なモデルではバイアスが高くなり、一方複雑すぎるモデルではバリアンスは高くなる関係性を「バイアスとバリアンスのトレードオフ」と呼んでたりします。
バイアス-バリアンス分解について
ある評価点とテストデータとの差を平均二乗誤差で算出すると、下記の3つの項に分解できる。
(バイアス-バリアンス分解)
E[(y_0-f'(x_0))^2]= (f(x_0)-E[f'(x_0)])^2+Var[f'(x_0)]+Var[ε]
f':予測値 \\ f:実測値
詳細を記載すると期待平均二乗誤差(MSE)は、第一項のバイアスの2乗と第二項のバリアンス、そして第3項のノイズから構成されている。
バイアスとバリアンスは、どちらも予測モデルとのズレを示しているが、バイアスが差の2乗であるのに対し、バリアンスは分散を使用して算出されている。
このことから両者ともずれを示しているが引き算と分散を使用しているのが確認できた。
分散と引き算の二乗(マイナスになる可能性から二乗している)の違いについて、以下自分なりの考察を書いてみる。
バイアスを示す引き算(の二乗)単純にズレの数値を示し、バリアンスを示す分散はより複雑なズレを表現していることから、バイアスとバリアンスの表現力の違いを数値化しているように感じる。バイアスは単一のものがターゲットに対し、バリアンスは集合をターゲットにしている。
なんとな~くな感想ですが、引き算より分散の方が高い表現力で数値化できている感覚。統計学とか数学もより学習を進めていくと、より高い表現力を数式で表記できるようになっていくんだろうなーと。正解値との単なるズレを色んな数式(分散や差)で表現できるって改めてすごいなと思う。
数学においてより複雑なモデルというのは、視点を変えるとより”表現力が高い”ことにつながっていると実感できました。