最大エントロピー原理と指数型分布族 — 「偏りのない推定」の数学

サイコロを投げたとき、各目が出る確率はどのように推定すればよいでしょうか。何の情報もなければ、すべての目が等確率 $1/6$ であると推定するのが自然です。では、「平均値が4.0である」という情報だけが与えられたらどうでしょうか。この制約を満たす確率分布は無数にありますが、その中から一つを選ぶ合理的な基準はあるのでしょうか。

この問いに対する明快な回答が最大エントロピー原理(Maximum Entropy Principle, MaxEnt)です。「与えられた制約を満たす分布の中で、エントロピーが最大の分布を選べ」——この原理は、1957年に物理学者ジェインズ(Edwin T. Jaynes)が統計力学の基礎付けとして提唱し、その後あらゆる分野に浸透した汎用的な推論原理です。

「エントロピーが最大」とは「仮定が最小」ということに他なりません。制約として与えられた情報だけを反映し、それ以外のいかなる構造も仮定しない——最も保守的で偏りのない推定を行うのが最大エントロピー原理の精神です。

最大エントロピー原理を理解すると、以下のような分野に直結する洞察が得られます。

  • 統計力学: ボルツマン分布(カノニカル分布)は、エネルギーの期待値を制約とした最大エントロピー分布です。統計力学の第一原理からの帰結として最大エントロピーが位置づけられます
  • 統計学: 指数型分布族(正規分布、ポアソン分布、指数分布、ガンマ分布など)はすべて最大エントロピー分布として特徴づけられます。最尤推定との深い関係もあります
  • 機械学習: ロジスティック回帰は最大エントロピーモデル(MaxEntモデル)の一種であり、条件付きランダム場(CRF)の理論的基盤でもあります
  • ベイズ統計: 無情報事前分布の設計において、最大エントロピー原理が重要な指針を提供します
  • 自然言語処理: 最大エントロピー言語モデルは、n-gramの制約のもとで最も偏りのない確率モデルを構成する手法です

本記事の内容

  • 最大エントロピー原理の動機と直感的理解
  • 制約付き最適化としての定式化とラグランジュ乗数法による解の導出
  • 最大エントロピー分布と指数型分布族の同値性
  • 対数分配関数の凸性と双対問題
  • 具体例: 一様分布、指数分布、正規分布、ボルツマン分布の導出
  • 連続分布への拡張と微分エントロピーの最大化
  • Pythonによる数値最適化と可視化

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

なぜ最大エントロピーか — 原理の動機

直感的な理解

確率分布の推定において、与えられた情報以上のことを仮定するのは危険です。知らないことについて不当な仮定を置けば、推定結果はその仮定に左右されてしまいます。

エントロピーは不確実性の度合いを測る量です。交差エントロピーとKLダイバージェンスで学んだように、離散確率変数のエントロピー $H(p)$ は分布が一様に近いほど大きく、分布が偏っているほど小さくなります。

最大エントロピー原理は、「制約を満たす分布の中で最もエントロピーが大きい(=最も不確実性が高い=最も偏りのない)分布を選ぶ」という原理です。これは次のように正当化できます。

情報理論的正当化: エントロピーが最大の分布は、制約以外のいかなる構造も仮定していません。低いエントロピーの分布を選ぶことは、与えられていない追加の情報を暗黙に仮定することに等しいのです。

公理的正当化: ショア(Shore)とジョンソン(Johnson, 1980)は、推論が満たすべき合理的な公理(部分集合独立性、座標独立性、系の独立性)を設定し、これらを同時に満たす唯一の推論原理が最大エントロピーであることを証明しました。

濃度論的正当化: 制約を満たす分布の中で、最大エントロピー分布から生成されるデータの組み合わせの数(多重度)が圧倒的に多い——これは統計力学でボルツマン分布を正当化する論法と同じです。

簡単な例: 偏ったサイコロ

6面サイコロの各目の確率 $(p_1, p_2, \dots, p_6)$ を推定する問題を考えましょう。

何の情報もない場合: 制約は $\sum_{k=1}^6 p_k = 1$ のみ。エントロピーを最大化すると $p_k = 1/6$(一様分布)が得られます。

平均値が4.0とわかっている場合: 制約は $\sum p_k = 1$ と $\sum k \cdot p_k = 4.0$。通常のサイコロの平均3.5より大きいため、大きな目の確率がやや高い分布が得られます。しかし、具体的にどのような形の分布かは、最大エントロピー原理が一意に決定します。

この「一意に決まる」という性質が最大エントロピー原理の強みです。同じ制約を満たす分布は無数にありますが、そのうちエントロピーが最大のものは(エントロピーの狭義凹性から)一つしかありません。

直感的な理解を得たところで、数学的な定式化に進みましょう。

制約付き最適化としての定式化

離散確率変数の場合

離散確率変数 $X$ が値 $x_1, x_2, \dots, x_K$ をとるとき、最大エントロピー問題は次の制約付き最適化として定式化されます。

$$ \max_{\bm{p}} \quad H(\bm{p}) = -\sum_{k=1}^K p_k \log p_k $$

制約条件:

$$ \begin{aligned} \sum_{k=1}^K p_k &= 1 \quad (\text{正規化条件}) \\ \sum_{k=1}^K p_k f_j(x_k) &= \alpha_j \quad (j = 1, 2, \dots, m) \quad (\text{モーメント制約}) \\ p_k &\geq 0 \quad (k = 1, 2, \dots, K) \quad (\text{非負条件}) \end{aligned} $$

ここで $f_1, f_2, \dots, f_m$ は既知の関数(制約関数)、$\alpha_1, \alpha_2, \dots, \alpha_m$ は既知の制約値(期待値の制約)です。

制約の数 $m$ は値の数 $K$ よりも少ない($m < K - 1$)ことが前提です。$m = K - 1$ であれば正規化条件と合わせて $p_k$ が一意に決まってしまい、最適化の余地がありません。

ラグランジュ乗数法による解の導出

ラグランジュ関数を構成します。非負条件 $p_k \geq 0$ はエントロピーの定義域から自然に満たされるため、明示的には扱いません。

$$ \mathcal{L}(\bm{p}, \lambda_0, \bm{\lambda}) = -\sum_{k=1}^K p_k \log p_k – \lambda_0 \left(\sum_{k=1}^K p_k – 1\right) – \sum_{j=1}^m \lambda_j \left(\sum_{k=1}^K p_k f_j(x_k) – \alpha_j\right) $$

$p_k$ に関する停留条件 $\frac{\partial \mathcal{L}}{\partial p_k} = 0$ を計算します。

$$ \frac{\partial \mathcal{L}}{\partial p_k} = -\log p_k – 1 – \lambda_0 – \sum_{j=1}^m \lambda_j f_j(x_k) = 0 $$

$p_k$ について解くと、

$$ \log p_k = -1 – \lambda_0 – \sum_{j=1}^m \lambda_j f_j(x_k) $$

$$ p_k = \exp\left(-1 – \lambda_0 – \sum_{j=1}^m \lambda_j f_j(x_k)\right) $$

$C = \exp(-1 – \lambda_0)$ を正規化定数とまとめると、

$$ p_k = C \exp\left(-\sum_{j=1}^m \lambda_j f_j(x_k)\right) $$

正規化条件 $\sum_k p_k = 1$ から $C$ が定まります。分配関数(partition function)$Z(\bm{\lambda})$ を導入すると、

$$ Z(\bm{\lambda}) = \sum_{k=1}^K \exp\left(-\sum_{j=1}^m \lambda_j f_j(x_k)\right) $$

$$ p_k^* = \frac{1}{Z(\bm{\lambda})} \exp\left(-\sum_{j=1}^m \lambda_j f_j(x_k)\right) $$

これが最大エントロピー分布の一般形です。

最適解の構造の解釈

得られた最大エントロピー分布 $p_k^* \propto \exp(-\sum_j \lambda_j f_j(x_k))$ を観察すると、いくつかの重要なことがわかります。

指数的な形: 確率は制約関数の線形結合の指数関数で表されます。これは後述する指数型分布族の標準形に他なりません。

ラグランジュ乗数の役割: $\lambda_j$ は制約 $j$ の「重要度」を反映しています。$\lambda_j > 0$ なら、$f_j(x_k)$ が大きい値ほど確率が低く、$\lambda_j < 0$ なら逆です。ラグランジュ乗数の値はモーメント制約 $E[f_j(X)] = \alpha_j$ から決定されます。

分配関数の役割: $Z(\bm{\lambda})$ は正規化を保証するとともに、後述するように熱力学的なポテンシャル(自由エネルギー)としての意味を持ちます。

ラグランジュ乗数法による解を理解したところで、この結果と指数型分布族の関係を見ていきましょう。

指数型分布族との同値性

指数型分布族の一般形

確率分布が指数型分布族(exponential family)に属するとは、確率密度(質量)関数が次の形で表されることです。

$$ p(x \mid \bm{\eta}) = h(x) \exp\left(\bm{\eta}^T \bm{T}(x) – A(\bm{\eta})\right) $$

ここで各量は以下のとおりです。

  • $\bm{\eta} = (\eta_1, \eta_2, \dots, \eta_m)$: 自然パラメータ(natural parameter)
  • $\bm{T}(x) = (T_1(x), T_2(x), \dots, T_m(x))$: 十分統計量(sufficient statistic)
  • $A(\bm{\eta})$: 対数分配関数(log-partition function, cumulant function)
  • $h(x)$: 基底測度(base measure)

$A(\bm{\eta}) = \log \int h(x) \exp(\bm{\eta}^T \bm{T}(x)) dx$ は正規化定数の対数であり、分布を正規化する役割を持ちます。

最大エントロピー分布との対応

最大エントロピー分布 $p_k^* = \frac{1}{Z(\bm{\lambda})} \exp(-\sum_j \lambda_j f_j(x_k))$ と指数型分布族の標準形を比較すると、次の対応関係が見えます。

最大エントロピー 指数型分布族
ラグランジュ乗数 $-\lambda_j$ 自然パラメータ $\eta_j$
制約関数 $f_j(x)$ 十分統計量 $T_j(x)$
対数分配関数 $\log Z(\bm{\lambda})$ 対数分配関数 $A(\bm{\eta})$
制約値 $\alpha_j = E[f_j(X)]$ 期待値パラメータ $\mu_j = E[T_j(X)]$

この対応は偶然ではなく、最大エントロピー分布はつねに指数型分布族の形をとり、逆に指数型分布族はつねに何らかの制約のもとでの最大エントロピー分布として特徴づけられるという同値関係です。

同値性の証明

定理: 制約 $E[f_j(X)] = \alpha_j$($j = 1, \dots, m$)のもとでエントロピーを最大化する分布は、指数型分布族の形をとる。逆に、指数型分布族 $p(x \mid \bm{\eta}) = h(x) \exp(\bm{\eta}^T \bm{T}(x) – A(\bm{\eta}))$ は、$h(x)$ を基底測度とし、$E[\bm{T}(X)] = \nabla A(\bm{\eta})$ を制約としたとき、$h(x)$ に関する相対エントロピー(KLダイバージェンス $D_{\mathrm{KL}}(p \| h)$ の負値)を最大化する分布である。

前半の証明: 前節のラグランジュ乗数法の結果から直ちに従います。

後半の証明: 制約 $E[\bm{T}(X)] = \bm{\mu}$ を満たす任意の分布 $q$ に対して、

$$ D_{\mathrm{KL}}(q \| p^*) = \sum_x q(x) \log \frac{q(x)}{p^*(x)} = -H(q) – \sum_x q(x) \log p^*(x) $$

$\log p^*(x) = \bm{\eta}^T \bm{T}(x) – A(\bm{\eta}) + \log h(x)$ を代入し、$q$ と $p^*$ が同じ制約値 $E_q[\bm{T}(X)] = E_{p^*}[\bm{T}(X)] = \bm{\mu}$ を満たすことを使うと、

$$ \sum_x q(x) \log p^*(x) = \bm{\eta}^T \bm{\mu} – A(\bm{\eta}) + E_q[\log h(X)] = \sum_x p^*(x) \log p^*(x) + E_q[\log h(X)] – E_{p^*}[\log h(X)] $$

$h(x)$ が一定(離散一様な場合)であれば最後の2項は消え、

$$ D_{\mathrm{KL}}(q \| p^*) = -H(q) + H(p^*) \geq 0 $$

すなわち $H(q) \leq H(p^*)$ であり、$p^*$ がエントロピーを最大化する分布です。

対数分配関数の性質

凸性

対数分配関数 $A(\bm{\eta}) = \log \sum_x h(x) \exp(\bm{\eta}^T \bm{T}(x))$ は $\bm{\eta}$ の凸関数です。

これは対数和指数関数(log-sum-exp)の凸性から直接従います。あるいは、2階微分を計算して正定値性を確認することもできます。

微分による期待値とモーメントの計算

$A(\bm{\eta})$ の1階微分と2階微分は、十分統計量のモーメントを与えます。

1階微分(期待値):

$$ \frac{\partial A}{\partial \eta_j} = E[T_j(X)] = \mu_j $$

2階微分(分散・共分散):

$$ \frac{\partial^2 A}{\partial \eta_j \partial \eta_l} = \mathrm{Cov}(T_j(X), T_l(X)) $$

共分散行列は半正定値であるため、$A(\bm{\eta})$ のヘッセ行列は半正定値であり、$A$ の凸性が再確認されます。さらに、十分統計量が線形独立であれば共分散行列は正定値であり、$A$ は狭義凸です。

これらの性質は、ラグランジュ乗数 $\bm{\lambda}$(= $-\bm{\eta}$)を制約値 $\bm{\alpha}$ から求める問題が凸最適化問題であり、解が一意に存在することを保証しています。

双対問題: 最大尤度推定との関係

最大エントロピー問題の双対問題(ラグランジュ双対)は、実は最大尤度推定と等価です。

双対関数は

$$ g(\bm{\lambda}) = -\log Z(\bm{\lambda}) + \sum_{j=1}^m \lambda_j \alpha_j $$

この双対問題の最大化 $\max_{\bm{\lambda}} g(\bm{\lambda})$ は、観測された期待値 $\alpha_j$ に対するパラメータ $\bm{\lambda}$ の最尤推定と一致します。これは、最大エントロピーと最大尤度という2つの異なる推定原理が、指数型分布族において表裏一体であることを意味しています。

対数分配関数の性質を理解したところで、具体的な確率分布が最大エントロピー原理からどのように導出されるかを見ていきましょう。

具体例: 主要な分布の導出

例1: 一様分布(制約なし)

制約: 正規化条件 $\sum_{k=1}^K p_k = 1$ のみ。

ラグランジュ乗数法で $p_k^* = \exp(-1 – \lambda_0)$ が得られます。正規化から $K \cdot p_k^* = 1$ なので、

$$ p_k^* = \frac{1}{K} \quad (k = 1, 2, \dots, K) $$

一様分布が得られました。何の情報もないときに最も偏りのない分布は一様分布——これは直感と完全に一致します。

例2: 指数分布(非負・平均の制約)

制約: $X \geq 0$ 上の分布で、$E[X] = 1/\lambda$。

制約関数は $f_1(x) = x$、制約値は $\alpha_1 = 1/\lambda$ です。最大エントロピー分布は

$$ p^*(x) = \frac{1}{Z(\lambda_1)} e^{-\lambda_1 x}, \quad x \geq 0 $$

正規化条件 $\int_0^\infty p^*(x) dx = 1$ から $Z(\lambda_1) = 1/\lambda_1$ であり、制約 $E[X] = 1/\lambda$ から $\lambda_1 = \lambda$ が決まります。

$$ p^*(x) = \lambda e^{-\lambda x}, \quad x \geq 0 $$

これは指数分布 $\text{Exp}(\lambda)$ です。「非負で平均だけがわかっている」とき、最も偏りのない分布は指数分布なのです。

例3: 正規分布(平均と分散の制約)

制約: $E[X] = \mu$, $E[X^2] = \mu^2 + \sigma^2$。

制約関数は $f_1(x) = x$, $f_2(x) = x^2$、制約値は $\alpha_1 = \mu$, $\alpha_2 = \mu^2 + \sigma^2$ です。最大エントロピー分布は

$$ p^*(x) = \frac{1}{Z} \exp(-\lambda_1 x – \lambda_2 x^2) $$

指数部分を平方完成すると、

$$ -\lambda_2 x^2 – \lambda_1 x = -\lambda_2\left(x + \frac{\lambda_1}{2\lambda_2}\right)^2 + \frac{\lambda_1^2}{4\lambda_2} $$

制約条件から $\lambda_2 = 1/(2\sigma^2)$, $\lambda_1 = -\mu/\sigma^2$ が決まり、

$$ p^*(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x – \mu)^2}{2\sigma^2}\right) $$

正規分布 $N(\mu, \sigma^2)$ が得られました。微分エントロピーで証明した「分散を固定したとき正規分布が微分エントロピーを最大化する」という定理は、この結果と完全に整合しています。

例4: ボルツマン分布(エネルギーの制約)

制約: $E[E(x)] = \langle E \rangle$($E(x)$ は状態 $x$ のエネルギー)。

制約関数は $f_1(x) = E(x)$、制約値は $\alpha_1 = \langle E \rangle$ です。最大エントロピー分布は

$$ p^*(x) = \frac{1}{Z(\beta)} e^{-\beta E(x)} $$

ここでラグランジュ乗数 $\lambda_1 = \beta = 1/(k_B T)$ は逆温度です。分配関数は $Z(\beta) = \sum_x e^{-\beta E(x)}$ です。

これが統計力学のボルツマン分布(カノニカル分布)です。ジェインズの業績は、ボルツマン分布が「エネルギーの平均値だけを知っているときの最も偏りのない推定」であることを示し、統計力学の基礎付けに情報理論的な視点を導入したことです。

ボルツマン分布の対数分配関数 $\log Z(\beta)$ はヘルムホルツ自由エネルギー $F = -k_B T \log Z$ と密接に関連しています。対数分配関数の微分が熱力学的な量を与えるという性質は、指数型分布族の一般的な性質の物理学的な表現です。

具体例のまとめ

制約 最大エントロピー分布 自然パラメータ
なし(台が有限) 一様分布
$X \geq 0$, $E[X] = 1/\lambda$ 指数分布 $\text{Exp}(\lambda)$ $\eta = -\lambda$
$E[X] = \mu$, $\text{Var}(X) = \sigma^2$ 正規分布 $N(\mu, \sigma^2)$ $\eta_1 = \mu/\sigma^2$, $\eta_2 = -1/(2\sigma^2)$
$X \in \{0, 1, 2, \dots\}$, $E[X] = \mu$ ポアソン分布 $\text{Poi}(\mu)$ $\eta = \log \mu$
$E[E(x)] = \langle E \rangle$ ボルツマン分布 $\eta = -\beta$
$E[\log X] = \psi(\alpha)$, $E[X] = \alpha\beta$ ガンマ分布 $\Gamma(\alpha, \beta)$ $\eta_1 = \alpha – 1$, $\eta_2 = -1/\beta$

この表から、我々が日常的に使う主要な確率分布がすべて最大エントロピーの観点から自然に導出できることがわかります。

最大エントロピーモデルの応用

ロジスティック回帰(最大エントロピー分類器)

機械学習で広く使われるロジスティック回帰は、分類問題に対する最大エントロピーモデルです。

特徴量ベクトル $\bm{x}$ が与えられたときのクラス $y$ の条件付き分布を、特徴関数 $f_j(\bm{x}, y)$ の期待値制約のもとでエントロピーを最大化して求めると、

$$ p(y \mid \bm{x}) = \frac{1}{Z(\bm{x})} \exp\left(\sum_j \lambda_j f_j(\bm{x}, y)\right) $$

二値分類で $f_j(\bm{x}, y) = x_j \cdot \mathbb{1}[y = 1]$ とすると、

$$ p(y = 1 \mid \bm{x}) = \frac{1}{1 + \exp(-\bm{\lambda}^T \bm{x})} = \sigma(\bm{\lambda}^T \bm{x}) $$

これがロジスティック回帰の確率モデルです。最大エントロピー原理が、なぜロジスティック回帰が「自然な」分類器であるかを理論的に正当化しています。

条件付きランダム場(CRF)

自然言語処理の系列ラベリング(品詞タグ付け、固有表現抽出など)で使われる条件付きランダム場(CRF)も、条件付き最大エントロピーモデルの一種です。入力系列 $\bm{x}$ が与えられたときのラベル系列 $\bm{y}$ の条件付き分布が、指数型分布族の形で表されます。

Pythonによる数値検証

離散最大エントロピー分布の計算

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize
from scipy.stats import norm, expon

np.random.seed(42)

def max_entropy_discrete(x_values, constraint_funcs, constraint_values):
    """離散最大エントロピー分布をラグランジュ乗数法で求める

    Parameters:
        x_values: 確率変数の値の配列
        constraint_funcs: 制約関数のリスト [f1, f2, ...]
        constraint_values: 制約値のリスト [alpha1, alpha2, ...]

    Returns:
        p: 最大エントロピー分布
        lambdas: ラグランジュ乗数
    """
    K = len(x_values)
    m = len(constraint_funcs)

    # 制約関数の値を事前計算
    F = np.array([f(x_values) for f in constraint_funcs])  # m x K

    def dual_objective(lambdas):
        """双対問題の目的関数(最小化する)"""
        log_unnorm = -F.T @ lambdas  # K次元
        log_Z = np.log(np.sum(np.exp(log_unnorm - np.max(log_unnorm)))) + np.max(log_unnorm)
        return log_Z - np.dot(lambdas, constraint_values)

    def dual_gradient(lambdas):
        """双対問題の勾配"""
        log_unnorm = -F.T @ lambdas
        log_unnorm -= np.max(log_unnorm)  # 数値安定性
        p = np.exp(log_unnorm)
        p /= np.sum(p)
        return -(np.array(constraint_values) - F @ p)

    result = minimize(dual_objective, np.zeros(m), jac=dual_gradient,
                      method='L-BFGS-B')
    lambdas = result.x

    # 最適分布の計算
    log_unnorm = -F.T @ lambdas
    log_unnorm -= np.max(log_unnorm)
    p = np.exp(log_unnorm)
    p /= np.sum(p)

    return p, lambdas

# --- サイコロの例 ---
x_dice = np.arange(1, 7, dtype=float)

fig, axes = plt.subplots(2, 2, figsize=(13, 10))

# 左上: 制約なし → 一様分布
ax = axes[0, 0]
p_uniform = np.ones(6) / 6
H_uniform = -np.sum(p_uniform * np.log(p_uniform))
ax.bar(x_dice, p_uniform, color='steelblue', alpha=0.8, edgecolor='white')
ax.set_xlabel('Face value')
ax.set_ylabel('Probability')
ax.set_title(f'No constraint: Uniform (H = {H_uniform:.3f} nats)')
ax.set_ylim(0, 0.4)
ax.grid(True, alpha=0.3)

# 右上: E[X] = 4.0 の制約
ax = axes[0, 1]
p_mean4, lam_mean4 = max_entropy_discrete(
    x_dice, [lambda x: x], [4.0])
H_mean4 = -np.sum(p_mean4 * np.log(p_mean4 + 1e-15))
ax.bar(x_dice, p_mean4, color='coral', alpha=0.8, edgecolor='white')
ax.set_xlabel('Face value')
ax.set_ylabel('Probability')
ax.set_title(f'$E[X] = 4.0$ (H = {H_mean4:.3f} nats, $\\lambda$ = {lam_mean4[0]:.3f})')
ax.set_ylim(0, 0.4)
ax.grid(True, alpha=0.3)

# 左下: E[X] = 3.5 の制約(一様分布と一致するはず)
ax = axes[1, 0]
p_mean35, lam_mean35 = max_entropy_discrete(
    x_dice, [lambda x: x], [3.5])
H_mean35 = -np.sum(p_mean35 * np.log(p_mean35 + 1e-15))
ax.bar(x_dice, p_mean35, color='mediumseagreen', alpha=0.8, edgecolor='white')
ax.bar(x_dice, p_uniform, color='none', edgecolor='black', linewidth=1.5,
       linestyle='--', label='Uniform')
ax.set_xlabel('Face value')
ax.set_ylabel('Probability')
ax.set_title(f'$E[X] = 3.5$ (H = {H_mean35:.3f} nats, $\\lambda \\approx$ {lam_mean35[0]:.4f})')
ax.legend()
ax.set_ylim(0, 0.4)
ax.grid(True, alpha=0.3)

# 右下: E[X] = 2.5 の制約
ax = axes[1, 1]
p_mean25, lam_mean25 = max_entropy_discrete(
    x_dice, [lambda x: x], [2.5])
H_mean25 = -np.sum(p_mean25 * np.log(p_mean25 + 1e-15))
ax.bar(x_dice, p_mean25, color='orchid', alpha=0.8, edgecolor='white')
ax.set_xlabel('Face value')
ax.set_ylabel('Probability')
ax.set_title(f'$E[X] = 2.5$ (H = {H_mean25:.3f} nats, $\\lambda$ = {lam_mean25[0]:.3f})')
ax.set_ylim(0, 0.4)
ax.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

シミュレーション結果から、以下のことが読み取れます。

  1. 制約なし(左上): 一様分布 $p_k = 1/6$ が得られ、エントロピーは $\log 6 \approx 1.792$ ナットで最大です。

  2. $E[X] = 4.0$(右上): 大きな目の確率が高い指数的な分布が得られています。ラグランジュ乗数 $\lambda < 0$ であり、$f(x) = x$ に対して $e^{-\lambda x}$ は $x$ の増加関数となるため、大きな値が確率的に優遇されます。エントロピーは一様分布より低下しています。

  3. $E[X] = 3.5$(左下): 平均値がちょうど一様分布の期待値(3.5)と一致するため、最大エントロピー分布は一様分布に一致します。ラグランジュ乗数は $\lambda \approx 0$ であり、制約が実質的に無制約であることを反映しています。

  4. $E[X] = 2.5$(右下): 小さな目の確率が高い分布が得られています。$\lambda > 0$ であり、$e^{-\lambda x}$ は $x$ の減少関数です。

連続分布での最大エントロピー性の検証

fig, axes = plt.subplots(1, 2, figsize=(14, 5))

# 左: 分散固定で正規分布が最大エントロピー
sigma = 2.0
x = np.linspace(-8, 8, 500)

# 正規分布
p_normal = norm.pdf(x, 0, sigma)
h_normal = 0.5 * np.log(2 * np.pi * np.e * sigma**2)

# ラプラス分布(同じ分散)
b = sigma / np.sqrt(2)
p_laplace = np.exp(-np.abs(x) / b) / (2 * b)
h_laplace = np.log(2 * b * np.e)

# 一様分布(同じ分散)
a = sigma * np.sqrt(3)
p_uniform_c = np.where(np.abs(x) <= a, 1 / (2 * a), 0)
h_uniform_c = np.log(2 * a)

axes[0].plot(x, p_normal, 'b-', linewidth=2.5,
             label=f'Normal (h = {h_normal:.3f})')
axes[0].plot(x, p_laplace, 'r--', linewidth=2,
             label=f'Laplace (h = {h_laplace:.3f})')
axes[0].plot(x, p_uniform_c, 'g:', linewidth=2,
             label=f'Uniform (h = {h_uniform_c:.3f})')
axes[0].set_xlabel('$x$')
axes[0].set_ylabel('Density')
axes[0].set_title(f'MaxEnt with $\\sigma^2 = {sigma**2}$: Normal wins')
axes[0].legend()
axes[0].grid(True, alpha=0.3)

# 右: 平均固定・非負で指数分布が最大エントロピー
x_pos = np.linspace(0, 8, 500)
mean_val = 2.0
lam = 1 / mean_val

# 指数分布
p_exp = expon.pdf(x_pos, scale=mean_val)
h_exp = 1 + np.log(mean_val)

# ガンマ分布(同じ平均)
from scipy.stats import gamma as gamma_dist
for k_shape in [2, 5]:
    theta = mean_val / k_shape
    p_gamma = gamma_dist.pdf(x_pos, k_shape, scale=theta)
    # 微分エントロピー
    from scipy.special import digamma as psi_func, gamma as gamma_func
    h_gamma = (k_shape + np.log(theta) + np.log(gamma_func(k_shape))
               + (1 - k_shape) * psi_func(k_shape))
    axes[1].plot(x_pos, p_gamma, '--', linewidth=1.5,
                 label=f'Gamma(k={k_shape}) (h = {h_gamma:.3f})')

axes[1].plot(x_pos, p_exp, 'b-', linewidth=2.5,
             label=f'Exponential (h = {h_exp:.3f})')
axes[1].set_xlabel('$x$')
axes[1].set_ylabel('Density')
axes[1].set_title(f'MaxEnt on $[0, \\infty)$ with $E[X] = {mean_val}$: Exp wins')
axes[1].legend()
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

左のグラフから、同じ分散 $\sigma^2 = 4$ を持つ3つの分布のうち、正規分布が最大の微分エントロピーを持つことが確認できます。ラプラス分布は中心が尖って裾が重い形状、一様分布は有限台の形状を持ちますが、いずれも正規分布よりエントロピーが低く、「平均と分散だけを知っている」状況では正規分布以外の形状は追加的な仮定に相当することがわかります。

右のグラフから、$[0, \infty)$ 上で平均が同じ分布のうち、指数分布が最大のエントロピーを持つことが確認できます。ガンマ分布の形状パラメータ $k$ が大きいほど分布の形がより特殊化され、エントロピーは低下します。$k = 1$ がガンマ分布の指数分布の特殊ケースであり、最大エントロピーを達成しています。

まとめ

本記事では、最大エントロピー原理と指数型分布族の関係を解説しました。

  • 最大エントロピー原理: 制約を満たす分布の中でエントロピーが最大の分布を選ぶ原理。「知っていることだけに基づき、知らないことについては最も偏りのない推定をする」という合理的態度の数学的実現
  • ラグランジュ乗数法: 制約付きエントロピー最大化をラグランジュ乗数法で解くと、最大エントロピー分布は $p^*(x) \propto \exp(-\sum_j \lambda_j f_j(x))$ の形になる
  • 指数型分布族との同値性: 最大エントロピー分布はつねに指数型分布族の形をとり、逆も成り立つ。主要な確率分布(正規、指数、ポアソン、ボルツマン等)はすべて特定の制約のもとでの最大エントロピー分布
  • 対数分配関数の凸性: 双対問題は凸最適化であり、解の一意性と最大尤度推定との等価性を保証する
  • 応用: ロジスティック回帰、CRF、統計力学のボルツマン分布がすべて最大エントロピー原理から導かれる

次のステップとして、以下の記事も参考にしてください。