データ分析をする際は、交差検証(クロスバリデーション)してパラメータを決めることが多いと思います。
クロスバリデーションすることでテストデータでの精度が上がる傾向があるのは経験的にも感覚的にもなんとなくわかるのですが、
それがどういう原理に基づいているのかを確認していきたいと思います。
用語の定義
とりあえず今回の議論は損失関数として対数尤度をマイナスしたものを想定します。
また、クロスバリデーションは「サンプルの中から一つだけ除外して推測を行い、除外したサンプルで評価を行う」クロスバリデーション(LOOCV)を想定します。
そして、サンプルはでで
観測できない何らかの真の分布に従っているとします。
クロスバリデーション損失
は ] と書けます。ここで、]はを除いたサンプルで学習した事後分布による期待値をで表しており、]はの予測分布()になっています。経験損失
は ]と書けます。ここで、]は全サンプルで学習した事後分布による期待値です。汎化損失
は ]と書けます。ここで、]は経験損失同様に個のサンプルから学習した事後分布による期待値です。で、]はサンプル外のデータ(わかりにくければとみてもOK)と観測できない真の分布による期待値です。ポイントとしては、はでの期待値をとっているんだけれど、実はこれはに依存した確率変数であるということです(予測分布がであることを考えればわかりますかね)。
クロスバリデーションと汎化損失の関係
以上のように定義された3つの確率変数ですが、
特にクロスバリデーション損失と汎化損失の間に成り立つ関係があります。
まず、]について少し考えると、
ログの部分を一旦無視すると、確率変数]に対する期待値となっています。
この確率変数は個のサンプルから学習された事後分布を用いて生成された予測分布から
番目のサンプルがgenerateされる確率を表す確率変数となっています。
これの期待値をとっているわけですから、
]というのは、
「個のサンプルから学習した分布から、未知の番目のサンプルが発生する確率の平均値」
を表していると言えそうです。
こう考えたときに、
「個から学習して未知の個目が発生する確率」
というのは汎化損失のところで出てきた考え方と同じであることがわかり、
の等式が成立することがわかります。
細かく書くと
って感じですかね。
これを見ると、
冒頭に述べたような、クロスバリデーションのロスを減らすようにパラメータを学習することは、
右辺の(期待)汎化損失を減らそうと頑張っていたことを意味します。
ちなみに、上記の期待値があのWAICの期待値に漸近的に一致する的な話もあります()。
経験損失って?
ところで、
クロスバリデーションが汎化性能の意味で正義っぽいことは分かったとして、
じゃあ経験損失の存在意義って?ってなりますよね。
予測をする上で経験損失はあんまり使えないのですが笑、
小ネタとして以下が言えます。
詳しくみていくと、
となることに着目すると、
ヘルダーの不等式より
ということでとわかりました。
というわけで今日はこの辺で。
今回の関連書籍
むずいですが、2年くらい眺め続けたら朧げにわかってきました。
ま、代数幾何はよくわからないのですが笑
WBICも載ってるのはこちら