🦔

バイアスとバリアンスとは?

に公開

はじめに

AWS AI Practitionerの勉強で学んだことをメモ程度に書き残しておく。

バイアスとバリアンスとは?

  • バイアス:モデルがシンプルすぎてデータの特徴を捉えきれていない(=学習が浅い)状態。
    = 学習データとのずれが大きく、予測が全体的に外れる傾向がある。
    ※なお、「データに偏りがある」という意味の“データバイアス”とは文脈によってと区別される。
  • バリアンス:どれくらいモデルがデータの細かいところに振り回されるか。
    = モデルがトレーニングデータにめっちゃ過剰に反応している状態。

まとめると・・
バイアスは学習データとのずれ(学習時にちゃんと理解できてる?)
バリアンスはテストデータに対する不安定さ(新しいデータで安定してる?)
みたいなイメージ
この2つのバランスがモデル精度のカギ!

バイアスとバリアンスはバランスが大事?

理想的なモデル

低バイアス✖️低バリアンス
低バイアス = 学習データにうまく合っている(ちゃんと学習してる)
低バリアンス = 新しいデータにも安定して適応する。
かといって超低バイアス✖️超低バリアンスがいいかと言われれば違う。
超低バイアス = 学習データに完璧にフィットしていて、応用が効かないモデルになってしまう。(高バリアンスになりやすい)
超低バリアンス = モデルが出力をほとんど変えずに安定しているが、逆に柔軟性がなくなる可能性もある。

高バリアンスモデル

高バリアンスモデルはテストデータに適応せず、過剰に反応してしまう。
高バリアンス = 学習データにはうまく適応しているが、テストデータに対しては過剰に反応し、不安定になる。

高バイアスモデル

高バイアスモデルはちゃんと学習していないので、モデルが雑すぎる。
高バイアス = 学習に偏りがあり、重要なデータの特徴を捉えきれていない状態。

過小学習と過学習

過小学習(UnderFitting)

モデルがデータの重要な特徴を捉えられていない状態を過小学習と呼ぶ。
← バイアスが高いモデルだと過小学習になりやすい。

過学習(OverFitting)

学習データに対してはいい感じに機能するが、新しいデータ(テストデータ)に対してはうまく機能しない状態を過学習と呼ぶ。
← バリアンスが高い、もしくはバイアスがめっちゃ低いモデルだと過学習になりやすい。

まとめ:バイアスとバリアンスの「ちょうどいい塩梅」

状態 バイアス バリアンス 結果
単純すぎ(アンダーフィット) 学習不足で性能が出ない
複雑すぎ(オーバーフィット) 訓練には強いが実戦に弱い
理想的 低〜中 低〜中 学習もできて汎化もできる!◎

つまり、「ちょうどよく賢くて、ちょうどよく柔軟」なモデルがベスト。

参考記事

https://zenn.dev/nekoallergy/articles/ml-basic-bias-variance

Discussion