AICとBIC

はじめに

 機械学習の目的は、観測データを元に未知データを予測できるモデル(予測モデル)を作ることである。予測モデルの実体はパラメータを含む数式なので、観測データと良く合い、かつ汎化能力が高くなるようにパラメータを決定することになる。パラメータの値自体は学習により決まるが、パラメータをいくつ導入するかはユーザがあらかじめ決めなければならない。今回は、パラメータの数の最適化に使うことのできる情報量規準(AICとBIC)について解説する。

情報量規準

 観測値としてD=\{z_1,\cdots,z_N\}が与えられたとき、予測モデルとして条件付き確率p(D|\Theta)を仮定したとする。\Thetaはパラメータの集合\Theta=\{\theta_1,\cdots,\theta_M\}を表す。各パラメータの値自体は学習により決まるが、パラメータの数Mはユーザがあらかじめ決める必要がある。p(D|\Theta)を大きくするようなMを選べば良いが、観測データDに対しp(D|\Theta)が最大となるようにMを選択してしまうと、未知のデータに対する精度が悪くなる現象が起きる。これを過学習と呼ぶ。機械学習の目的は未知データに対する精度を高くする(汎化能力を高める)ことであるから、何らかの対処が必要になる。

 一般に、パラメータの数(今の場合M)が多いほどモデルの表現能力は高まり、複雑な観測データの分布を精度良く再現できるようになる。しかし、観測データに特化したモデルになるため未知データに対する予測精度が悪くなる。従って、パラメータの数を減らしモデルの表現能力を落としつつ(観測データの精度を犠牲にしつつ)、未知データに対する予測精度を上げることを目指す必要がある。このとき、パラメータの数(M)をいくつにするのが一番良いのかを決める評価規準があると便利である。この規準を作るため、まず最初に観測データDの再現率を最大化(p(D|\Theta)}を最大化)する規準を作る。

     \begin{align*} {\rm arg}\max_{M}\rBigf[{\ln{p(D|\Theta)}}\lBig] \end{align*}

慣習上、最小となる量にしたいので負号を付け、さらに係数2を付ける。

     \begin{align*} {\rm arg}\min_{M}\rBigf[{-2\ln{p(D|\Theta)}}\lBig] \end{align*}

対数を取るのは計算が楽になる場合が多いためである。係数2を付けた理由は、確率として正規分布を想定する場合が多く、その際に指数の肩の係数を相殺したいためである。p(D|\Theta)}は確率であるが、\Thetaの関数とみるときは尤度と呼ばれる。従って、上の規準は「負の対数尤度を最小化する」規準となる。さて、既に述べたように、観測データDに対し尤度を最大化してしまうと汎化能力の低いものになってしまう。そこで、パラメータ数Mの増加に伴うペナルティ項を追加する。

     \begin{align*} C_{\rm AIC}={\rm arg}\min_{M}\rBigf[{-2\ln{p(D|\Theta)}}+2M\lBig] \end{align*}

この規準を赤池情報量規準(Akaike’s Information Criterion:AIC)と呼ぶ。パラメータ数Mに関わるペナルティとしては別の項を用いる場合がある。

     \begin{align*} C_{\rm BIC}={\rm arg}\min_{M}\rBigf[{-2\ln{p(D|\Theta)}}+M\ln{N}\lBig] \end{align*}

こちらはベイズ情報量規準(Bayesian Information Criterion:BIC)と呼ばれる。Mだけでなく観測データ数Nも含まれることに注意する。この2つの規準が、最適なパラメータ数を決める指標として良く使われる。

回帰の場合

 具体的な事例を見るため回帰を考える。Dの成分z_nを2次元ベクトル(x_n,y_n)とみなし、y=f(x)の関数形を求める問題を考える。

(1)    \begin{align*} \ln{p(D|\Theta)} &=\ln{\prod_{n=1}^Np(x_n,y_n|\Theta)}\\ &=\sum_{n=1}^N \ln{p(x_n,y_n|\Theta)} \end{align*}

ここで、データは独立に同一の確率分布から生成されることを仮定した。いまp(x_n,y_n|\Theta)として正規分布を仮定する(簡単のため1次元を考える)。

     \begin{align*} p(x_n,y_n|\Theta)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\Bigl( -\frac{1}{2\sigma^2}(y_n-f_{\Theta}(x_n))^2 \Bigl)} \end{align*}

ここで\sigma^2は次式で定義される量である。

     \begin{align*} \sigma^2 = \frac{1}{N}\sum_{n=1}^N(y_n-f_{\Theta}(x_n))^2 \end{align*}

これは、予測値f_{\Theta}(x_n)と観測値y_nとの間のずれを記述する分散である。これらを式(1)の最右辺に代入すると

(2)    \begin{align*} \ln{p(D|\Theta)}=-\frac{N}{2}\left( \ln{2\pi}+1+\ln{\sigma^2} \right) \end{align*}

を得る。式(2)を用いてC_{\rm AIC}C_{\rm BIC}を書くと

(3)    \begin{align*} C_{\rm AIC}&={\rm arg}\min_{M}\rBigf[N\ln{\sigma^2}+2M\lBig]\\ C_{\rm BIC}&={\rm arg}\min_{M}\rBigf[N\ln{\sigma^2}+M\ln{N}\lBig] \end{align*}

となる。ただし、定数項は落とした。C_{\rm AIC}C_{\rm BIC}のどちらの規準に対しても、第1項は予測値と観測値の間のずれが小さいほど小さくなる量である。この項はモデルが複雑になるほど(パラメータ数Mが増えるほど)小さくなる。一方、第2項はパラメータ数Mが増えるほど大きくなる量である。これらのトレードオフで適切なMが決まる。

実験

 ここまでの説明を実際のコード(ここ)で確認する。最初に観測データを人工的に作る。

2行目が人工データの数式である。以下の式とした。

(4)    \begin{align*} y=2x-\sin{(3\pi x)} \end{align*}

9,10,11行目でこの式にノイズを加えている。グラフは以下の通り。

赤点が人工的に発生させた観測点(15個)である。青い曲線は式(4)である。次にy=f_{\Theta}(x)の形を具体的に決める必要がある。ここでは次の多項式を採用する。

(5)    \begin{align*} y=\sum_{m=0}^{M-1}a_m\;x^m \end{align*}

このとき、\Theta=\{a_0,a_1,\cdots,a_{M-1}\}となる。コードではsklearnの関数を用いた。

上のコード中のdegreeM-1に相当する。8行目で多項式を定義し、10行目と11行目で回帰を行っている。次に、最適なdegreeを探すためAICとBICを計算する。

5行目のタプルの最初の項がAIC、次の項がBICである。式(3)をそのままコードにしただけである。AICとBICのdegree依存性は以下の通り。

AICとBICのいずれの規準に対してもDegree(=M-1)が4のとき最小値となっている。Degree=3,4,5として多項式を描画すると以下になる。

橙色の曲線が予測した曲線、青い曲線が真の曲線、赤点が観測点である。3次よりは4次の方が良いことは明らかだが、4次と5次を比較した場合は迷う。このような場合にAICやBICのような規準が力が発揮する。今回は4次を選択すべきというご託宣である。AICとBICの結果が同じ(4次がベスト)になったのはたまたまである。

AICとBICの違い

 AICやBICで比較するモデルの集合の中に、真のモデルが含まれていると仮定する。このとき、観測データ数を無限大にしたとき真のモデルが必ず選ばれることを「一致性を持つ」と言う。一方、比較するモデル集合の中に真のモデルが含まれていない場合、観測データ数を無限大にしたとき、最も誤差を小さくするモデルが選ばれることを「有効性を持つ」と言う。このとき以下の事実が知られている。

  • AICは一致性は持たないが、有効性を持つ場合がある。
  • BICは一致性は持つが、有効性は持たない。

  • 従って、AICとBICのどちらが優れているかは一概には言えない。

    まとめ

     今回は数ある情報量規準のうち、AICとBICを紹介した。今回は、たまたまAICとBICの結果が一致したが、異なる場合は解析者の判断に委ねられることが多い。ところで、いま深層学習で主流のモデルは億単位のパラメータ数を持つ。最近の研究によると、パラメータ数を増やせば増やすほど精度も上がるそうである。この事実と今回紹介した情報量規準はどう関係するのであろうか。

    参照先

    1. ベイズ統計入門⑦
    2. 軽量時系列分析, 沖本竜義, 朝倉書店
    Kumada Seiya

    Kumada Seiya

    仕事であろうとなかろうと勉強し続ける、その結果”中身”を知ったエンジニアになれる

    最近の記事

    • 関連記事
    • おすすめ記事
    • 特集記事

    アーカイブ

    カテゴリー

    PAGE TOP