Mímisbrunnr知恵の泉

← 情報理論 一覧

🎓 レベル:標準 | 重要度:B(重要)

📎 前提:クロスエントロピーと最尤シャノンの情報源符号化定理 | 関連:統計(モデル選択)

要点(BLUF)

1. AIC:予測の KL を近似する

最尤推定は当てはまりを最大化しますが、パラメータを増やせばいくらでも訓練データに合い、過適合します。赤池は「推定したモデルが将来のデータを予測する性能」を、真の分布 pp と推定モデル qθ^q_{\hat\theta} の KL 期待値で測りました。これを漸近的に評価すると、最大化すべき量が lnL^k\ln\hat L-kkk=パラメータ数)になり、2-2 倍して

AIC=2lnL^+2k\mathrm{AIC} = -2\ln\hat L + 2k

最小化するモデルを選ぶ、という基準が出ます。第1項は当てはまりの悪さ(負の対数尤度=クロスエントロピー、クロスエントロピーと最尤)、第2項 2k2k は複雑さの罰則。AIC は「予測の KL を縮める」情報理論的な選択基準です。

2. MDL:データを最短で記述する

最小記述長(MDL)原理は、より直接的に符号化の言葉でモデル選択を定式化します。データ xx を送るのに、(1) どのモデル(パラメータ)を使うかの記述長 L(θ)L(\theta) と、(2) そのモデル下でデータを符号化する長さ L(xθ)=log2qθ(x)L(x\mid\theta)=-\log_2 q_\theta(x) の合計を最小化する:

minθ[L(θ)+L(xθ)]\min_\theta \big[\, L(\theta) + L(x\mid\theta)\,\big]

「データを最もよく圧縮するモデルが最良」。シャノンの符号化定理(シャノンの情報源符号化定理)が「良いモデル=短い符号」と教えるので、圧縮の良さがそのままモデルの良さになります。パラメータの記述に k2log2n\frac{k}{2}\log_2 n bit 要るとすると、MDL は

BIC=2lnL^+klnn\mathrm{BIC} = -2\ln\hat L + k\ln n

(ベイズ情報量規準)と一致します。nn が大きいほど罰則 klnnk\ln n2k2k(AIC)より重く、MDL/BIC は AIC より単純なモデルを選びがちです。

3. コード:多項式の次数選択(AIC・BIC)

3次多項式+ノイズのデータに、次数 0〜7 の多項式を当てはめ、AIC・BIC が真の次数3を選ぶことを確かめます。

import numpy as np
rng=np.random.default_rng(0)
n=60
x=np.linspace(-2,2,n)
true=0.5*x**3 - x + 0.5          # 真:3次(係数4個)
y=true+rng.normal(0,0.8,n)       # ノイズ σ=0.8
print(f"真のモデル: 3次多項式 + ノイズ(σ=0.8)。データ数 n={n}")
print(f"{'次数d':>6}{'param k':>9}{'AIC':>10}{'BIC':>10}")
best_aic=(None,1e18); best_bic=(None,1e18)
for d in range(0,8):
    X=np.vander(x,d+1)
    beta,_,_,_=np.linalg.lstsq(X,y,rcond=None)
    rss=np.sum((y-X@beta)**2)
    sig2=rss/n
    lnL=-0.5*n*(np.log(2*np.pi*sig2)+1)   # ガウス最大対数尤度
    k=(d+1)+1                              # 係数 + 分散
    aic=2*k-2*lnL; bic=k*np.log(n)-2*lnL
    print(f"{d:>6}{k:>9}{aic:>10.2f}{bic:>10.2f}")
    if aic<best_aic[1]: best_aic=(d,aic)
    if bic<best_bic[1]: best_bic=(d,bic)
print(f"AIC 最小の次数 = {best_aic[0]}, BIC 最小の次数 = {best_bic[0]} (真の次数3)")

出力:

真のモデル: 3次多項式 + ノイズ(σ=0.8)。データ数 n=60
   次数d  param k       AIC       BIC
     0        2    156.90    161.09
     1        3    143.60    149.89
     2        4    145.52    153.90
     3        5    130.19    140.66
     4        6    131.42    143.98
     5        7    133.17    147.84
     6        8    135.04    151.79
     7        9    132.39    151.24
AIC 最小の次数 = 3, BIC 最小の次数 = 3 (真の次数3)

出力の意味:次数を上げると対数尤度は必ず改善する(当てはまりは良くなる)のに、AIC・BIC は次数3で最小になり、それ以上は罰則 2k2kklnnk\ln n が当てはまりの改善を上回って増加します——過適合を情報量の罰則が止めている。真の次数3をどちらの規準も正しく選びました。次数0や1では当てはまり不足で AIC が大きく、次数4以降は複雑さ過剰。「データを最短で記述するモデル=真のモデル」という MDL の直観どおりです。BIC の罰則 klnnk\ln n は AIC の 2k2k より重いので(ln604.1>2\ln 60\approx4.1>2)、データが増えるほど BIC はより単純なモデルを好みます。

4. 数式の直観的意味

AIC と MDL は、情報理論の二大定理を「学習」に持ち込んだものと言えます。MDL は情報源符号化(圧縮)の発想——「良い理論はデータを短く言い表す」。これはオッカムの剃刀を bit で定量化したもので、過適合したモデルは「データを丸暗記する=記述が長い」ので罰せられます。AIC は予測の KL(クロスエントロピーと最尤)を将来データについて最小化する立場。両者は罰則項の重みが違うだけで、「当てはまり(負の対数尤度)と複雑さ(パラメータ数)を情報量で釣り合わせる」という骨格は共通です。統計的な一致性・有効性の議論や情報量規準の使い分けは統計分野に委ね、ここでは「モデル選択=記述長の最小化」という情報理論の核を押さえます。

⚠️ よくある誤解

対応シミュレーション

関連ノート