情報学部大学生のダラダラ日記

β日記

機械学習や日記っぽいものを書きます

予測損失と経験損失について簡単にまとめる

スポンサーリンク

 機械学習の大きな目的は訓練データから未知のデータ、すなわちテストデータに対する損失を小さくすることです。予測損失(テストデータ)と経験損失(訓練データ)についてまとめてみます。

予測損失

 予測損失というよりも汎化誤差という言葉の方が親しみがあるのではないでしょうか。また、他にも期待損失などとも言うようです。仮説{\displaystyle h }の予測損失{\displaystyle R(x) }が、損失関数として{\displaystyle l }、テストデータ{\displaystyle (X,Y) }の分布{\displaystyle D }を用いて以下のように定義されます。

{\displaystyle R(h) = E_{(X,Y)~D}[l(h(X),Y)]}

つまり、テストデータの分布に対してのテストデータの損失の期待値ということです。しかし、テストデータの分布は未知であるためこの予測損失{\displaystyle R(x) }を計算することはできないです。目標は観測データのみからできるだけ{\displaystyle R(x) }を小さくする仮説{\displaystyle h }を求めることです。

経験損失

 標本誤差、経験誤差とも言われています。データ{\displaystyle (X_1,Y_1),(X_2,Y_2),.....(X_n,Y_n) }が観測され、仮説と損失関数を先ほどと同じ文字に設定すると観測データに対する仮説{\displaystyle h }の経験損失{\displaystyle R ̃(h) }は以下のようになります。

 {\displaystyle R ̃(h) =∑_{(i=1)}^nl(h(X_i),Y_i) }

先ほどの予測損失と異なり、観測データは明らかになっているので{\displaystyle R ̃(h) }は求めることが可能です。

 特にこの時、確率{\displaystyle 1/n }{\displaystyle (X_i,Y_i) }を取る時、確率分布を{\displaystyle D_1 }とすると上式は

{\displaystyle R ̃(h) = E_{(X,Y)~D_1}[l(h(X),Y)] }

と表すことができる。この式は予測損失の式ととても似ていますね。違いは従っている確率分布です。つまり、データが同一の確率分布に従うとき、

{\displaystyle R ̃(h) ≒ R(h) }

とすることができます。

結局???

 予測損失を最小にしたいのはわかっていただけたと思います。簡単に説明すると"予測損失を最小にすることが(実質的に)機械学習の主たる目的だから"です。ではなぜ経験損失を求める必要があるのでしょうか?それは上でも述べた通り、経験損失と予測損失が近似できるからです。流れは以下のような感じです。

 

予測損失が最小となるよう仮説を設定したい

テストデータの分布は未知であるため値が求められない

予測損失と近似できる経験損失がある

経験損失は実測値から求められる

 

という感じです。今回は理論的な部分から予測損失(汎化誤差)にアプローチしてみましたが、応用的な部分から観てみるとなぜ予測損失を最小にしたいかが感覚的にわかってくると思います。以下のサイトをご覧になってみてください。

訓練誤差と汎化誤差の理論計算 - Qiita

参考文献

以下の書籍を参考に書きました。

 

 

 おわり。

もしよければ↓ぽちっと↓お願いします。

ブログランキング・にほんブログ村へにほんブログ村

 

PVアクセスランキング にほんブログ村

 

スポンサーリンク