Posted at

# ITエンジニアのための機械学習理論入門 (第2章)

More than 3 years have passed since last update.


2.1 多項式近似と最小二乗法による推定


  • 回帰分析のもっとも基礎となる最小二乗法の解説


    • 最小二乗法は目的変数とそれに対する設計変数が与えられた時に、その目的変数と求められた関数との二乗誤差を最小化する最適化手法

    • このとき関数は重み付きの多項式として決定される


      • 調整するパラメータとして、次数と重み



    • 各重みを決定し、与えられているデータとの誤差を計算する


      • 誤差は得られた多項式と与えられたデータ(トレーニングデータ)との差分


        • 二乗誤差を1/2した値





    • この誤差を最小化する



  • 上記の重みの計算は解析的にいけるらしい


    • 誤差関数を偏微分した時に0となると仮定する(だから微分可能じゃないと使えないのかな・・・?)

    • summationを行列に変形する(内積とみる)

    • 式変形を行い重みを求める式にしてあげる



  • 最初に得られるデータはそのまま使えないので、データを整形(クレンジング)し、どのデータを特徴変数とするかは自分で決める必要がある。

  • 平方根平均事情誤差(RMSE)


    • 出来上がった多項式が実際にどの程度トレーニングセットと離れているかをみる指標

    • RMSEが低いからといってその多項式が正確とは限らない


      • トレーニングセットに対しては正確でも汎用性があるとは限らない


        • オーバーフィッティングしている可能性がある







  • 正確な次数について


    • チューニングするパラメータの次数を変えて複数試した際にどの次数を選択するか


      • 得られた多項式を描画したときにそれ「っぽい」のがあるけど、定量的にとらないと


        • 変数が一つとか2つとかなら描画できるけど、次元が膨大になったら・・・?








オーバーフィッティングの検出


  • 前述にあるオーバーフィッティングをどのように検出するのか

  • 与えられたデータをトレーニング用と検出用(テスト用)のデータにわける


    • 学習(ここで言うと多項式をもとめる)ためにトレーニングデータを用いて、構築された多項式の評価用にテストデータを用いる感じ

    • ここでテストデータにトレーニングデータを混ぜることは絶対にダメ


      • 学習する事の本質はビジネスに活かすことにある

      • 混ぜてしまい正確な評価が行えないことは場合によってはビジネスに対して負の影響を生んでしまう





  • テストデータで多項式を評価するときは、多項式の設計に用いたRMSEを使う


    • 次数を変えていったときにテストデータにおけるRMSEの値はどうなるかを評価



  • 次数を増やしていきトレーニングデータではRMSEが下がったとしても、テストデータで同じ傾向になるとは限らない


    • 逆に誤差が上昇することもある→オーバーフィッティング



  • クロスバリデーション


    • 検証を行うための手法の一つ

    • データセットをいくつかに分割(例えば5つ)

    • どれか一つをテストデータ、それ以外をトレーニングデータに分割

    • 分割データすべてがテストデータとして学習を繰り返し行う

    • 得られた複数の結果(ここでは5つ)を総合して検証



  • データ数によるオーバーフィッティングの違い


    • オーバーフィッティングは与えられるサンプル数<次数により強く起きる


      • サンプル数>次数でももちろん発生する



    • サンプル数を増やすことでオーバーフィッティングを緩和できる

    • サンプル数が膨大なら次数も際限なく増やせばいい、ということはない


      • 次数を上げていくとどこかでRMSEが減少しなくなる