🦔
バイアスとバリアンスとは?
はじめに
AWS AI Practitionerの勉強で学んだことをメモ程度に書き残しておく。
バイアスとバリアンスとは?
- バイアス:モデルがシンプルすぎてデータの特徴を捉えきれていない(=学習が浅い)状態。
= 学習データとのずれが大きく、予測が全体的に外れる傾向がある。
※なお、「データに偏りがある」という意味の“データバイアス”とは文脈によってと区別される。 - バリアンス:どれくらいモデルがデータの細かいところに振り回されるか。
= モデルがトレーニングデータにめっちゃ過剰に反応している状態。
まとめると・・
バイアスは学習データとのずれ(学習時にちゃんと理解できてる?)
バリアンスはテストデータに対する不安定さ(新しいデータで安定してる?)
みたいなイメージ
この2つのバランスがモデル精度のカギ!
バイアスとバリアンスはバランスが大事?
理想的なモデル
低バイアス✖️低バリアンス
低バイアス = 学習データにうまく合っている(ちゃんと学習してる)
低バリアンス = 新しいデータにも安定して適応する。
かといって超低バイアス✖️超低バリアンスがいいかと言われれば違う。
超低バイアス = 学習データに完璧にフィットしていて、応用が効かないモデルになってしまう。(高バリアンスになりやすい)
超低バリアンス = モデルが出力をほとんど変えずに安定しているが、逆に柔軟性がなくなる可能性もある。
高バリアンスモデル
高バリアンスモデルはテストデータに適応せず、過剰に反応してしまう。
高バリアンス = 学習データにはうまく適応しているが、テストデータに対しては過剰に反応し、不安定になる。
高バイアスモデル
高バイアスモデルはちゃんと学習していないので、モデルが雑すぎる。
高バイアス = 学習に偏りがあり、重要なデータの特徴を捉えきれていない状態。
過小学習と過学習
過小学習(UnderFitting)
モデルがデータの重要な特徴を捉えられていない状態を過小学習と呼ぶ。
← バイアスが高いモデルだと過小学習になりやすい。
過学習(OverFitting)
学習データに対してはいい感じに機能するが、新しいデータ(テストデータ)に対してはうまく機能しない状態を過学習と呼ぶ。
← バリアンスが高い、もしくはバイアスがめっちゃ低いモデルだと過学習になりやすい。
まとめ:バイアスとバリアンスの「ちょうどいい塩梅」
状態 | バイアス | バリアンス | 結果 |
---|---|---|---|
単純すぎ(アンダーフィット) | 高 | 低 | 学習不足で性能が出ない |
複雑すぎ(オーバーフィット) | 低 | 高 | 訓練には強いが実戦に弱い |
理想的 | 低〜中 | 低〜中 | 学習もできて汎化もできる!◎ |
つまり、「ちょうどよく賢くて、ちょうどよく柔軟」なモデルがベスト。
参考記事
Discussion