Mímisbrunnr知恵の泉

← ベイズ統計 一覧

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

📎 前提:正規正規モデル | 数理:共役事前分布(統計)

要点(BLUF)

1. 指数型分布族の共通形

これまで別々に導いた共役(ベータ二項モデルガンマポアソンと指数正規正規モデル)が、なぜどれも同じ骨格(カーネルの肩を足すと同じ族に戻る)だったのか。その種明かしが指数型分布族です。密度を次の共通形に書ける分布の集まりを言います。

p(xη)=h(x)exp ⁣(ηT(x)A(η))p(x\mid\eta)=h(x)\,\exp\!\big(\eta^\top T(x)-A(\eta)\big)

nn 個の独立観測では、肩の十分統計量がになります。

p(x1:nη)exp ⁣(η ⁣iT(xi)nA(η))p(x_{1:n}\mid\eta)\propto\exp\!\Big(\eta^\top\!\sum_{i}T(x_i)-nA(\eta)\Big)

ここがポイント:データの情報は iT(xi)\sum_i T(x_i)nn にすべて圧縮されます(だから共役更新が「足し算」になる)。

2. 代表分布はすべて特殊例

主役たちを共通形に当てはめると、η,T(x),A(η)\eta,T(x),A(\eta) が読み取れます。

分布自然パラメータ η\eta十分統計量 T(x)T(x)対数分配 A(η)A(\eta)
ベルヌーイ(θ)(\theta)logθ1θ\log\dfrac{\theta}{1-\theta}(ロジット)xxlog(1+eη)\log(1+e^\eta)
ポアソン(λ)(\lambda)logλ\log\lambdaxxeηe^\eta
指数(λ)(\lambda)λ-\lambdaxxlog(η)-\log(-\eta)
正規(分散既知 σ2\sigma^2μ/σ2\mu/\sigma^2xxη2σ2/2\eta^2\sigma^2/2

「成功確率のロジット」「対数発生率」など、自然パラメータは制約のない実数軸に乗るのが特徴で、これが後の変分推論や一般化線形モデル(リンク関数)で効いてきます。

3. 対数分配関数が積率を生む

A(η)A(\eta) はただの正規化定数ではありません。微分すると十分統計量の積率(モーメント)が出てきます

ηA(η)=E[T(x)],η2A(η)=Var[T(x)]\nabla_\eta A(\eta)=\mathbb{E}[T(x)],\qquad \nabla^2_\eta A(\eta)=\mathrm{Var}[T(x)]

「1階微分が平均、2階微分が分散」。これを数値微分で確かめます。

import numpy as np

# A(η) を数値微分して、平均・分散と一致するか確かめる
print("=== ベルヌーイ: η=logit(θ), A(η)=log(1+e^η), T(x)=x ===")
A_bern = lambda eta: np.log1p(np.exp(eta))
for theta in [0.3, 0.5, 0.8]:
    eta = np.log(theta/(1-theta)); h = 1e-6
    A1 = (A_bern(eta+h) - A_bern(eta-h)) / (2*h)                  # A'(η)=平均
    A2 = (A_bern(eta+h) - 2*A_bern(eta) + A_bern(eta-h)) / h**2   # A''(η)=分散
    print(f"θ={theta}: A'={A1:.4f}(平均θ={theta})  A''={A2:.4f}(分散={theta*(1-theta):.4f})")

print("=== ポアソン: η=log λ, A(η)=e^η, T(x)=x ===")
A_pois = lambda eta: np.exp(eta)
for lam in [1.0, 2.5, 5.0]:
    eta = np.log(lam); h = 1e-6
    A1 = (A_pois(eta+h) - A_pois(eta-h)) / (2*h)
    A2 = (A_pois(eta+h) - 2*A_pois(eta) + A_pois(eta-h)) / h**2
    print(f"λ={lam}: A'={A1:.4f}(平均λ)  A''={A2:.4f}(分散λ)")

出力:

=== ベルヌーイ: η=logit(θ), A(η)=log(1+e^η), T(x)=x ===
θ=0.3: A'=0.3000(平均θ=0.3)  A''=0.2100(分散=0.2100)
θ=0.5: A'=0.5000(平均θ=0.5)  A''=0.2500(分散=0.2500)
θ=0.8: A'=0.8000(平均θ=0.8)  A''=0.1601(分散=0.1600)
=== ポアソン: η=log λ, A(η)=e^η, T(x)=x ===
λ=1.0: A'=1.0000(平均λ)  A''=1.0000(分散λ)
λ=2.5: A'=2.5000(平均λ)  A''=2.5002(分散λ)
λ=5.0: A'=5.0000(平均λ)  A''=5.0004(分散λ)

出力の意味A(η)A(\eta) をただ微分するだけで、ベルヌーイなら平均 θ\theta・分散 θ(1θ)\theta(1-\theta)、ポアソンなら平均も分散も λ\lambda というおなじみの公式が再現されます(AA'' の末尾のわずかなズレは数値微分の誤差)。各分布で別々に積分して求めていた平均・分散が、対数分配関数1個から統一的に出る——これが指数型分布族の威力です。

4. 共役事前の一般構成と「普遍の更新則」

尤度 exp(ηiT(xi)nA(η))\propto\exp(\eta^\top\sum_i T(x_i)-nA(\eta)) に対し、同じ関数形η\eta の関数として与えた事前を取ります。

p(ηχ,ν)exp ⁣(ηχνA(η))p(\eta\mid\boldsymbol\chi,\nu)\propto\exp\!\big(\eta^\top\boldsymbol\chi-\nu A(\eta)\big)

すると事後は、肩を足すだけで同じ形に戻ります。

p(ηx1:n)exp ⁣(η(χ+iT(xi))(ν+n)A(η))p(\eta\mid x_{1:n})\propto\exp\!\Big(\eta^\top\big(\boldsymbol\chi+\textstyle\sum_i T(x_i)\big)-(\nu+n)A(\eta)\Big)

つまりハイパーパラメータの更新は、分布によらず

 χ  χ+iT(xi),ν  ν+n \boxed{\ \boldsymbol\chi\ \to\ \boldsymbol\chi+\sum_i T(x_i),\qquad \nu\ \to\ \nu+n\ }

これが共役事前の一般原理です。ベータ–二項・ガンマ–ポアソン・正規–正規はすべてこの特殊例にすぎません。実際にベルヌーイで、この普遍の更新が ベータ二項モデル のベータ更新を再現することを確かめます。

# 指数型族の共役を θ で表すと Beta(χ, ν-χ)。よって Beta(a,b) ↔ (χ=a, ν=a+b)
a, b = 2, 2
n, k = 20, 14                      # T(x)=x なので ΣT(x_i) = 成功数 k
chi, nu = a, a + b                 # Beta(a,b) を自然形 (χ, ν) に対応づけ

chi_post, nu_post = chi + k, nu + n            # ★ 普遍の更新則
beta_a, beta_b = chi_post, nu_post - chi_post  # 自然形 → Beta に戻す

print(f"一般式の更新: (χ,ν)=({chi},{nu}) → ({chi_post},{nu_post})")
print(f"Beta に戻すと   : Beta({beta_a}, {beta_b})")
print(f"02-02 の直接更新: Beta({a+k}, {b+n-k})")
print(f"一致: {(beta_a, beta_b) == (a+k, b+n-k)}")

出力:

一般式の更新: (χ,ν)=(2,4) → (16,24)
Beta に戻すと   : Beta(16, 8)
02-02 の直接更新: Beta(16, 8)
一致: True

出力の意味:ベルヌーイの十分統計量 T(x)=xT(x)=x なので T(xi)=k\sum T(x_i)=k(成功数)。普遍の更新 χχ+k, νν+n\chi\to\chi+k,\ \nu\to\nu+nBeta\mathrm{Beta} に翻訳すると Beta(16,8)\mathrm{Beta}(16,8)——02-02 で直接導いた事後と完全一致します。個別ペアをいちいち導かなくても、自然パラメータと十分統計量さえ分かれば事後が機械的に出る、というのが一般論のご利益です。

5. 擬似観測の統一的な意味

ここまで各ペアで「ハイパーパラメータ=擬似観測」と読んできました(ベータ二項モデルa+ba+bガンマポアソンと指数β\beta)。指数型の枠組みでは、これが統一されます。

更新 νν+n\nu\to\nu+nχχ+T\boldsymbol\chi\to\boldsymbol\chi+\sum T は、まさに「仮想データに本物のデータを足し込む」操作。事前の強さは ν\nu、事前の位置は χ/ν\boldsymbol\chi/\nu(擬似的な平均十分統計量)で決まる、と全ペア共通で読めます。

6. 指数型でなければ共役はない → MCMC・変分へ

きれいな共役事前が存在するのは、尤度が指数型分布族のときに限られます。自由度未知の tt 分布、混合分布、一様分布の区間端の推定などは指数型でなく、閉じた共役を持ちません。そうした場合は事後を解析的に書けないので、

に進みます。実は変分推論の中心的な手法(平均場近似・座標上昇法)は、各因子が指数型分布族のとき自然パラメータの更新として書け、本ノートの χ,ν\boldsymbol\chi,\nu の更新と地続きです(平均場近似と座標上昇法)。一般化線形モデルのリンク関数も、自然パラメータ η\eta を線形予測子に結ぶ仕組みでした(ベイズGLM)。指数型分布族は、共役・変分・GLM を貫く共通言語です。

flowchart TB
  EF["指数型分布族<br/>p(x|η)=h(x)exp(ηᵀT(x)−A(η))"] --> C["共役事前あり<br/>χ→χ+ΣT, ν→ν+n(本章)"]
  EF --> V["変分推論の自然パラメータ更新<br/>(第6章)"]
  EF --> G["一般化線形モデルのリンク関数<br/>(第7章)"]
  NF["指数型でない尤度<br/>(t分布・混合など)"] --> M["閉じた共役なし<br/>→ MCMC(第4章)/ 変分(第6章)"]

⚠️ よくある誤解

まとめ(Phase 2)

第2章では、Phase 1 で数値積分した事後を閉じた式で一気に求める共役事前を扱いました。骨格はどのペアも同じ——尤度カーネル × 事前カーネル = 同じ族のカーネル共役性とは)。そして本ノートで、その「同じ骨格」の正体が指数型分布族であり、更新が χχ+T, νν+n\boldsymbol\chi\to\boldsymbol\chi+\sum T,\ \nu\to\nu+n に統一されることを見ました。次章では、共役が使えない一般の事後をどう要約し(第3章)、どう計算するか(MCMC・第4章/変分・第6章)へ進みます。

関連ノート