nokoのブログ

こちらは暫定のメモ置き場ですので悪しからず

TSUKUBA-OCW_機械学習_3_モデルの複雑さと汎化を視聴したときのメモ

はじめに

視聴メモ

(前回の復習)二乗誤差の最小化

  • 最適化の手法として二種類ある
    • 近似解を求める
      • 計算が軽い
      • こちらの方が今は多い
      • 最急降下法など
        • ステップパラメータ
    • 解析的に求める
      • 厳密
      • 二乗誤差の場合、二乗誤差をwで微分して0にするw

(前回の復習)ROADMAP

  • モデルを決める->どう最適化するかを考える

(前回の復習)特徴量

  • ベクトルの和を行列の積で表現することは多い

(前回の復習)回帰・誤差

  • MSE以外にあるか
    • ある。誤差の表し方は自由。
    • 表現できるか->簡単に解けるか

(前回の復習)その他

  • ベクトルの書き方
    • スカラと区別する
    • 大文字にしたり上に矢印を書いたり線を入れたり

データの非線形

  • データの分布が非線形なら、線形モデルより表現能力が高い予測を行いたい
    • -> 多項式回帰とか。複雑にする。
  • 線形回帰モデル(前回まで)
    • 単回帰
    • 重回帰
  • 多項式回帰モデル
    • 次元が増えるので、水増しした特徴量を使っても良い

モデルの複雑さ

  • 多項式特徴量を導入すればリッチな表現の回帰を実現できるが、どの程度リッチにすればいいのか。
  • 20次多項式回帰は4次多項式回帰より良い?!
  • -> 我々はなにを知ろうとしているのか?MSEを下げるのが最終目的ではない!
  • -> 訓練用とテスト用のサンプルに分ける
    • 本当は汎化誤差が欲しいが、テスト誤差を出す。データが多ければ、汎化誤差に近づく。
      • 汎化誤差: データ生成分布を考慮して積分で出す
    • 訓練誤差も汎化誤差も小さいところが良い。訓練誤差が小さくて汎化誤差が大きいなら過学習
      • -> モデルの複雑さを適切に制御する必要がある

モデルの複雑さをどう制御するか

  • 2つある(やってることは同じ)
    • モデル選択
      • 適切な複雑さのモデルを選択する
    • 正則化
      • モデルの複雑さを抑制する仕組みを誤差関数に埋め込む
        • -> 結果的に、適切な複雑さのモデルが学習される

k-hold交差検証によるテスト誤差の評価

  • テスト事例がたまたま偏ったデータかもしれない
  • -> 事例を分割して、順に訓練事例・テスト事例として使う

複雑なモデルとはどんなモデル?

  • 次数が高いこと自体ではなく、ある次元のパラメータが極端な絶対値を取ったりすることが問題
  • -> 罰則付き最適化
    • 訓練誤差を最小化しつつ、複雑さも最小化する(この二つはトレードオフ
      • 複雑さの指標は、ノルム。
  • -> リッジ回帰
    • 誤差関数 = 二乗誤差項 + L2正則化
      • L2正則化項: λwTw
        • 積の和は行列の転置と掛け合わせることで求める
        • λで調整する(正則化項をどれだけ重視するか)