- (PDF) Model selection for ecologists: The worldviews of AIC and BIC の633ページ。
- Akaike information criterion - Wikipedia から参照されており、AICとBICは目的が異なることを強調している。635ページの表に両者の対比がまとまっている。
- 訓練データの被説明変数には独立に同一の分布にしたがう平均 0 のノイズがのっていると考える。と、その訓練データに最適化したモデルはたまたま出たノイズに引っ張られている可能性がある。したがって、訓練データ上の誤差(訓練誤差 )でモデル間を比較するのは適切ではない。手元に訓練データしかないとしても、あらゆるノイズの出方に対する の期待値をとったもの(訓練標本内誤差 )で比較するべきである。
- が、訓練標本内誤差 は知り得ないので、あらゆるノイズの出方に対して最適化したときの期待値 を推定することになる。例えば線形回帰モデルで2乗誤差の和を損失としたときは、 になることがわかる( は説明変数の次元数、 はノイズの分散、 は訓練データの個数)。ので、 を計算可能な で代用した を の推定値とすればよい。 は「手元の訓練データにたまたま出たノイズを学んだせいで誤差が過小評価されている分を補完(?)するペナルティ項」といえる。
- また、損失を交差エントロピーとしたときはより一般のモデルで漸近的に が成り立つ( はモデルの有効パラメータ数)。この右辺を で代用した は赤池情報量規準(AIC)とよばれる。
- 他方、元より「モデル候補 のうち訓練データ に対して最も尤もらしいモデルはどれか」を出発点に、ベイズ的にモデル選択しようとすることもできる。このとき、モデル候補 のパラメータの最尤推定値を とすると が成り立つ( はモデル候補 の自由度)。これに基づいた はベイズ情報量規準(BIC)とよばれる。
- BICとAICはペナルティ項が 倍異なるが、手元のモデル候補のどれが真かを見出したいときはBICが、専ら予測誤差の最小化に興味があるときはAICが適していると考えられる。
モデルを選択するとき、何に注意してどう選択するべきなのかって気になりますよね。そこでカステラ本の7章が「モデルの評価と選択」であるようなんです。面倒なので261ページから読みましょう。
いや俺は気になっていないんだけど。とにかくテキストの261ページね…なんか誤差の定義がやたら多くない? 訓練誤差とか汎化誤差とか期待誤差とか…。
モデルの誤差には「どの訓練データで学習したのか」「その訓練データにはどんなノイズがのっていたのか」「それをどのテストデータに適用したのか」がすべて関係してきますからね。何を固定して何を固定していないかによって呼び名を変えているようです。以下にまとめてみました。
訓練誤差 |
訓練データ で学習したモデル で訓練データを予測したときの予測誤差の平均値。 は訓練データにたまたま出たノイズまで学習しがちなので、誤差の指標としては「あまりに楽観的(261ページ)」である。 |
訓練標本内誤差 |
訓練データ で学習したモデル で訓練データを予測したときの予測誤差の、各データのノイズの出方に関する期待値の、平均値。訓練データ を、たまたま出たノイズは学ばずに、きちんと学べたかという指標になる。興味があるのはこの指標ではなく汎化誤差だが、モデル間を相対比較する分にはこの指標が使用しやすい。訓練誤差を訓練標本内誤差にするための調整分としての最善度 は「ノイズを学んでしまった分」となるがこれは直接推定できない。ふつうは訓練データの被説明変数に関する期待値を取った平均最善度 を推定する(「最善度」と名付けられている割に、大きいとよい指標ではなく、ゼロになるべき指標である)。 |
汎化誤差 |
訓練データ で学習したモデル でテストデータ点 を予測したときの予測誤差の、テストデータ点 に関する期待値。(おそらく)この指標に最も興味があるが、訓練データ しか手元にない以上これを直接推定することはできない。 |
期待誤差 |
汎化誤差の、訓練データ の取り方に関する期待値。 |
えっ、まずその が何なのかよくわかっていないんだけど…まあどのみち先に と が要るみたいだから、 を2乗誤差にすると、
こうなるよな。これを に代入して、
さらにこれを訓練データの被説明変数について期待値をとったのが だから、訓練データのノイズが変わったら変わりうるところに をかぶせればいいわけだから、
これって共分散の公式の形だ! だったら だ( とする)。この は訓練データの説明変数は固定した下での被説明変数に関する共分散(ノイズの出方が色々変わったときの共分散)だな。どう、これでいい?
間違っていないとは思いますが、カステラ本には演習の解答がないのでなんとも。
ええ解答ないの!?
何にせよ、モデルの が正である状況とは、「 が大きくなる方向にノイズが変化したら も大きくなる」といった状況であるわけです。そんなノイズに反応するようなモデルは望ましくありません。 が負であっても困ります。 はゼロであってほしいですよね。
それはそうだな。じゃあモデルが がどうなるかを調べれば、そのモデルがどれくらいノイズを学習してしまうかわかるんだな。それでさっそく263ページに加法的誤差モデルの例が出てきて…いや、 ってなんで? というか加法的誤差モデルって何?
おそらく25ページがここでいう加法的誤差モデルの定義なんじゃないかと思うんですが、25ページの記述は「加法的モデル」なんですよね…まあ、 になること自体は線形回帰モデルの最小2乗法で確かめるといいのではないかと。257ページの上の方でもその事実をつかっていますし。少なくとも7章に導出はなさそうですが。イメージとしては、最小2乗回帰したモデルは未知の点への予測値を訓練データを重ね合わせてつくり出していると解釈できますから、それを介して訓練データのノイズを取り込んでしまうわけです。
ただ、おそらくここの主張は線形回帰より広いクラスでもこうなんだというものと思います(以下)。
- 説明変数の各次元に適用したモデルを足し合わせるようなモデル(Ex. 線形回帰)で損失を2乗誤差(2乗誤差以外でも結構成り立つと思われる)とするときは、
- 平均最善度(「ノイズを学んでしまった分」の期待値)は になる。
- よって、 になる(7.24式)。
- よって、説明変数の次元 が多いほどノイズを学んでしまいやすい。
ときにハヤト、いま「標本データ上での誤差を、自由度で調整して、モデルのよさを測る」というようなことをしたわけです。「標本データ上での誤差を、自由度で調整して、モデルのよさを測る」と聞いて、何か思い出しませんか?
確かにめっちゃ降って湧いてきたな。というかこの式どういう意味?
まず は の真の分布の上での期待値ですね。ここで、真の分布は で表されることを仮定しています。つまり、真のパラメータ さえ突き止めれば真の分布を再現できるという状況です。といっても、手元には有限の 個のサンプルしかないのでこの理想的な状況でも真の分布の推定が必ずできるわけではありません。限られた手元の標本データで尤度が最大になるようにしたパラメータが です。それで、7.27式の左辺は真の分布と、手元の標本データで最善を尽くした分布の交差エントロピーの2倍ですね。これは一番知りたいものです。しかし、真の分布は知りえませんから、手元の標本データの経験分布で代用すると となりますね。この値の期待値(色々標本データを取り直したときの期待値)の2倍が右辺第1項です。しかし、この右辺第1項は、 に標本データのクセが反映されている以上、左辺の推定値としては「あまりに楽観的」ですよね。その調整分が右辺第2項であるわけです。なので結局、右辺第1項の期待値を手元のデータでの値で代用した をモデルのよさの推定値とせよというのがここでの主張ですね。右辺第1項に出てくる は最大対数尤度(=現在の で尤度を最大にした での尤度)になっていますが、「手元のデータで交差エントロピーを推定したもの」といった方が意味合い的にしっくりくる気がします。同じなんですが。
ふーん…あれでも、最小2乗線形回帰モデルだと だった気がするんだけど、調整分が だけずれていない?
どちらかというと、最小2乗線形回帰モデルの が7.29式(7.27式)の両辺に をかけたものになっていますね。順を追って説明します。
- まず、一般にAICを利用するときは、「真の分布からの標本データ が手元にあって、なるべく真の分布 に近い予測分布 をつくりたい(近さの基準は交差エントロピー)」ことが大前提になるはずです。
- 対して7.4節の文脈での当面の目的は「訓練標本内誤差 を小さくしたい」です。より詳しくいうと、「訓練データ の説明変数は固定した下で、被説明変数は標本なのだと考えて、真の被説明変数の分布上での期待損失が小さいモデルをつくりたい」です。真の分布 の予測分布 がつくりたいのだと考えれば、AICを利用したい状況と同じになるでしょう。ただし、「損失が交差エントロピーであれば」です。
- 最小2乗線形回帰モデルは損失が2乗誤差なので、AICとは目的が少し違っています。が、ノイズの分散 が既知であり、最小2乗線形回帰モデルの予測値を中心に分散 をもつガウス分布を予測分布と考えるなら、両者の目的は一致するんです。なぜなら、このときの交差エントロピー は2乗誤差を で割ったものに定数バイアスを足したものになるからです(※)。交差エントロピー最小化が2乗誤差最小化と一致するんです。
- ところでAICは「交差エントロピーの2倍」の推定値として構築されていました。これをいまの状況で「2乗誤差」の推定値にかき換えたいなら、 をかければいいです。「交差エントロピーの2倍」が2乗誤差を で割ったものになっているわけですから。定数バイアスは両辺で打ち消し合いますたぶん。
ノイズ が大きいときほどノイズを学習してしまう危険性は増すわけですからね。極端な話、ノイズが全くないデータなら と は一致して最善度は常にゼロですし。まあそれでも訓練データの隙間や外挿部分の正解は知りえませんが。
ところでジュン、265ページの「もし基底関数が適応的に選ばれるなら式 (7.23) はもはや成り立たない」ってどういうこと?
かいてある通りなんですが、例えば…ハヤトはいま1次元の入力で1次元の出力を回帰するモデルとして のような多項式を候補に考えていて、何次多項式にするかを決めたいとします。平均 、分散 であるようなガウス分布を予測分布としましょう。切片と分散も推定対象とすると、 次多項式モデルのパラメータの次元数は になりますね。これでAICを適用すればいいです。しかしハヤトは考えました。「AICの調整項が面倒だな…そうだ、 の 次の項までのうち一番予測に有用な1個だけを使うことにしよう。これならパラメータの次元数は常に3になるから調整項が要らない。10次くらいまで調べて単に尤度が最大になる次数を選べばいい。このアイデアはモテるだろ!」と。しかし、それでは全然駄目なんです。
次の7.6節に出てきますが、訓練データへの予測値 を訓練データの被説明変数のベクトル で と表し、 を「訓練データの説明変数のベクトル には依存するが には依存しない」行列としたとき、 が有効パラメータ数になるということです。
へ、行列のトレース?
AICとは「測っているもの」が異なるということでしょう。Schwarz の論文(BICの原論文)は以下で閲覧できました。
イントロダクション中に、AICはこうだがBICはこうだとありますね。- choosing the model for which is largest
- Choose the model for which is largest
この式を日本語訳するならば、「モデル候補 の下で訓練データ が得られる対数尤度は、そのモデルのパラメータを最尤推定値 にした下での対数尤度から を差し引いたものである( はモデル候補 の自由度)」といったところでしょうか。そしてこれは、AICのベースとなっている7.27式とは左辺が既に違います。あちらは「尤度最大のパラメータでの、訓練標本内交差エントロピーは?」と問うているのに対して、こちらは「どのモデルがこの訓練データに対して最も尤もらしい?」なのですから。
ところで、テキストのAICとBICを比べやすくするために、右辺第1項をそろえてみましょう。
どちらも で調整項がゼロに収束するのは同じです。ただ、収束のスピードが異なります。相対的に、AICの調整項は甘く、BICの調整項は厳しいことになります。つまり、テキストにもありますが、相対的に、AICは複雑な、BICは単純なモデルを選択する傾向があるということですね。そして、「モデル選択が目的のとき、AICとBICのどちらを使うべきかがはっきりしているわけではない(269ページ)」と。
そのようですね。つまり、真のモデルより複雑なモデルがノイズを学んでしまう分に釣り合ったペナルティを では課し切れないということでしょう。…しかし、AICの目的は「真のモデルはどれだろうか」だったでしょうか? 確かにBICの目的は「真のモデルはどれだろうか」でした。しかし、AICの目的は「そのモデルを尤度最大にチューニングした下で真の分布とどれだけ離れているか」なんです。真のモデルを外していようと、誤差を小さくすれば正義なんです。
例えば以下の文献にはAICは漸近有効性をもつとあります。つまり、予測誤差を最小にするのはAICであるということです。
そしてこの文献は、AICとBICは何を最適としているかが違うと指摘しています。- In fact the conflict is easily resolved once it is acknowledged that ‘‘asymptotically optimal’’ can have several meanings. Asymptotic efficiency and (asymptotic) consistency are different kinds of optimality.(633ページ)
えっと、モデル選択の指標が2つの派閥(?)に分かれるのとか、両者はなんか目的が違うっぽいのはわかったけど、そこまでいうならどっちを使うべきってないの?
先の文献には「真のモデルが非常に複雑で(自由度が非常に大きく)真のモデルを当てられる見込みがなく、モデル候補の自由度をそれに合わせなくてもよく、モデル候補のパラメータが真のモデルのパラメータを包含していなくてもよいし、余分なパラメータを含んでいてもよい」というときは前者を、「真のモデルがシンプルで、モデル候補のうち1つが真のモデルであると期待されるとき」は後者を利用するべきだとあります。確かに前者の状況でBICを使う意味は薄いと思うんですよね。モデル候補が真のモデルを含んでいる見込みが薄いなら。でも、ではこの状況でAICは上手く機能するのかはきちんと導出を追っていないのでわからないんですよね。いいんだと思うんですが。
※ 交差エントロピーが2乗誤差を で割ったものに定数バイアスを足したものになっている。