Upgrade to Pro — share decks privately, control downloads, hide ads and more …

バイアスとバリアンスのトレードオフ

Fd6de6cbad68e7898078f548b6dd894c?s=47 K
September 19, 2021

 バイアスとバリアンスのトレードオフ

機械学習のモデルによる予測に含まれるバイアスとバリアンスによる誤差について、回帰モデルを例にして説明します。また、バイアスとバリアンスの間にはトレードオフの関係があることについて説明します。
動画:https://youtu.be/xAzvBQd0A7U

Fd6de6cbad68e7898078f548b6dd894c?s=128

K

September 19, 2021
Tweet

Transcript

  1. ,ͷษڧνϟϯωϧ

  2. 今回の内容 •回帰モデルを作成した時のモデルの複雑さについて •バイアスとバリアンスとは •バイアスとバリアンスのトレードオフ •まとめ バイアスとバリアンス

  3. 回帰モデルを作成することを考えます x0からx1を予測したいとします x1 x0 • • • • • •

    • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
  4. 回帰モデルを作成することを考えます データを訓練データとテストデータに分けます x1 x0 • • • • • •

    • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • テストデータ 訓練データ 訓練データで回帰モデルを学習させて テストデータで性能を検証しましょう
  5. 回帰モデルを作成することを考えます 線形回帰をフィットした場合 x1 x0 • • • • • •

    • • • • • • • • • • • • • • • • • •
  6. 回帰モデルを作成することを考えます 二次関数をフィットした場合 x1 x0 • • • • • •

    • • • • • • • • • • • • • • • • • •
  7. 回帰モデルを作成することを考えます 三次関数をフィットした場合 x1 x0 • • • • • •

    • • • • • • • • • • • • • • • • • •
  8. 回帰モデルを作成することを考えます かなり複雑なモデルをフィットさせた場合

  9. 訓練データに対してどれくらいフィットしているか確認します モデルが複雑なほど複雑な形状が表現できて、訓練誤差が小さくなる モデル複雑さ 訓練誤差 大 中 小 大 中 小

    (訓練データに対する Mean Squared Error)
  10. 訓練データに対してどれくらいフィットしているか確認します モデル複雑さと訓練誤差の関係をグラフで見てみます モデル複雑さ 訓練誤差 大 中 小 大 中 小

    (訓練データに対する Mean Squared Error) Error model complexity • • • • • • • •
  11. テストデータに対してどれくらいフィットしているか確認します モデルがシンプルすぎても複雑すぎても、テスト誤差が大きくなります モデル複雑さ テスト誤差 大 小 大 大 中 小

    (テストデータに対する Mean Squared Error) • • • • • • • • • • • • • • • • • • • • • • • • • • •
  12. テストデータに対してどれくらいフィットしているか確認します モデル複雑さとテスト誤差の関係をグラフで見てみます モデル複雑さ テスト誤差 大 中 小 大 中 小

    (テストデータに対する Mean Squared Error) Error model complexity • • • • • • • •
  13. 2つのグラフを重ねて見ます モデル複雑さとテスト誤差の関係をグラフで見てみます Error model complexity • • • • •

    • • • • • • • • • • • • • テスト誤差とモデル複雑さの関係 訓練誤差とモデル複雑さの関係 一番欲しいモデルはこのあたりにある この誤差はどこから来ている?
  14. テスト誤差が何で構成されているか テスト誤差 = テストデータの分散 + モデルの分散 + バイアスの二乗 E[(y −

    ̂ y)2] = E[y2 − 2y ̂ y + ̂ y2] = E[y2] − 2E[y ̂ y] + E[ ̂ y2] = {Var[y] + E[y]2} − 2E[y ̂ y] + {Var[ ̂ y] + E[y]2} = Var[y] + Var[ ̂ y] + (E[y] − E[ ̂ y])2 テストデータの分散 + モデルの分散 + バイアスの二乗 テストデータにもとから存在する分散であり、 モデルではどうにもできない。 irreducible errorと呼ぶ。 (バリアンス) Var[y] = E[y2] − E[y]2 期待値と分散の間に成り立つ式 を用いて式を展開しています。
  15. グラフと式を比較してみる バリアンスとバイアスの間にはトレードオフがあることが分かります E[(y − ̂ y)2] = Var[y] + Var[

    ̂ y] + (E[y] − E[ ̂ y])2 テストデータの分散 + モデルの分散 + バイアスの二乗 (バリアンス) Error model complexity • • • • • • • • • • • • • • • • モデルを複雑にするほど訓練データにフィットできて (E[y] − E[ ̂ y])2 バイアス項 は小さくなるはず しかし訓練データに依存して予測値がばらつくため バリアンスは大きくなり、予測誤差は増える
  16. グラフと式を比較してみる バリアンスとバイアスの間にはトレードオフがあることが分かります E[(y − ̂ y)2] = Var[y] + Var[

    ̂ y] + (E[y] − E[ ̂ y])2 テストデータの分散 + モデルの分散 + バイアスの二乗 (バリアンス) Error model complexity • • • • • • • • • • • • • • • • モデルを簡単にするほど訓練データにフィットしづらくなり バイアスは増える しかしシンプルなモデルほど予測モデルは訓練データに 依存して出力がばらつくことがなくなり、バリアンスは 小さくなると考えることができる
  17. まとめ バイアスとバリアンスについて説明しました • バイアス =モデルの予測値と真の正解との間のズレ • バリアンス = モデルの予測値のばらつき具合 •

    2つの間にはトレードオフがあり、複雑なモデルを使えばバリアンス が高くなり、シンプルなモデルを使うほどバイアスが高くなる • バイアスとバリアンスのトレードオフを理解した上でモデルの選択を 行う必要がある ࢀߟจݙɿTrevor Hastie ɾRobert Tibshirani ɾJerome Friedman (2014)ʰ౷ܭతֶशͷجૅʕσʔλϚΠχϯάɾਪ࿦ɾ༧ଌʕʱஶɾਿࢁ কɾҪख ߶ɾਆቇ හ߂ɾ܀ా ଟت ෉ɾલా ӳ࡞, p256