Mímisbrunnr知恵の泉

← 情報理論 一覧

🎓 レベル:発展 | 重要度:A(必須)

📎 前提:エントロピーの性質と最大エントロピー | 次:ガウス通信路と容量

要点(BLUF)

1. 定義と離散との違い

連続確率変数 XX が密度 f(x)f(x) を持つとき、

h(X)=f(x)log2f(x)dx[bit]h(X) = -\int_{-\infty}^{\infty} f(x)\log_2 f(x)\,dx \quad [\text{bit}]

形は離散エントロピーそっくりですが、f(x)f(x)密度(1を超えうる)なので logf\log f が正にも負にもなり、h(X)h(X)負になりえます。実際、XX を細かい幅 Δ\Delta で離散化した離散エントロピーは h(X)log2Δh(X)-\log_2\Delta に近づき、Δ0\Delta\to0log2Δ-\log_2\Delta\to\infty。つまり連続変数の「真の」エントロピーは無限大で、h(X)h(X) はそこから log2Δ\log_2\Delta を引いた有限の残差です。だから h(X)h(X) 単体は基準依存で、相互情報量 I(X;Y)=h(Y)h(YX)I(X;Y)=h(Y)-h(Y\mid X) のようにを取ると基準がキャンセルし、意味のある(非負の)量になります。

2. ガウスが最大エントロピー

分散 σ2\sigma^2 を固定したとき、微分エントロピーを最大にするのは ガウス分布エントロピーの性質と最大エントロピー の最大エントロピー原理の連続版)。その値は

h(N(μ,σ2))=12log2(2πeσ2)[bit]h(\mathcal N(\mu,\sigma^2)) = \tfrac12\log_2(2\pi e\,\sigma^2) \quad [\text{bit}]

平均 μ\mu に依らず分散だけで決まります。「分散(パワー)が同じなら、ガウスが最も不確か」——これがノイズをガウスでモデル化すると最悪(最も情報を削る)になる理由で、ガウス通信路容量の議論で本質的に効きます。

3. コード:ガウスの微分エントロピー・負値・最大性(底2, bit)

数値積分(scipy.integrate.trapezoid)で hh を計算し、理論式との一致、負値、ガウスの最大性を確かめます。

import numpy as np
from scipy.integrate import trapezoid
from scipy.stats import norm, uniform

# 微分エントロピー h(X) = -∫ f log2 f dx (bit)
def diff_entropy(f, x):
    fx=f(x); fx=np.where(fx>0, fx, 1e-300)
    return -trapezoid(fx*np.log2(fx), x)

# ガウス N(0, σ^2):理論 h = 0.5 log2(2πe σ^2) bit
for sigma in [0.5, 1.0, 2.0]:
    x=np.linspace(-12*sigma, 12*sigma, 200001)
    h_num=diff_entropy(lambda t: norm.pdf(t,0,sigma), x)
    h_theory=0.5*np.log2(2*np.pi*np.e*sigma**2)
    print(f"ガウス σ={sigma}: 数値 h={h_num:.4f} bit, 理論 0.5 log2(2πe σ^2)={h_theory:.4f} bit")
print("-"*56)
# 微分エントロピーは負になりうる(σが小さいと)
sigma=0.1
x=np.linspace(-12*sigma,12*sigma,200001)
print(f"ガウス σ={sigma}: h={diff_entropy(lambda t: norm.pdf(t,0,sigma),x):.4f} bit  (負になりうる!)")
print("-"*56)
# 分散固定での最大エントロピーはガウス。同分散の一様分布と比較
a=np.sqrt(3.0)   # 一様[-a,a] の分散 a^2/3=1 -> a=sqrt(3)
xu=np.linspace(-a,a,200001)
h_unif=diff_entropy(lambda t: uniform.pdf(t,-a,2*a), xu)
h_gauss=0.5*np.log2(2*np.pi*np.e*1.0)
print(f"分散1の一様分布: h={h_unif:.4f} bit")
print(f"分散1のガウス  : h={h_gauss:.4f} bit  (ガウスが最大: {h_gauss>h_unif})")

出力:

ガウス σ=0.5: 数値 h=1.0471 bit, 理論 0.5 log2(2πe σ^2)=1.0471 bit
ガウス σ=1.0: 数値 h=2.0471 bit, 理論 0.5 log2(2πe σ^2)=2.0471 bit
ガウス σ=2.0: 数値 h=3.0471 bit, 理論 0.5 log2(2πe σ^2)=3.0471 bit
--------------------------------------------------------
ガウス σ=0.1: h=-1.2748 bit  (負になりうる!)
--------------------------------------------------------
分散1の一様分布: h=1.7925 bit
分散1のガウス  : h=2.0471 bit  (ガウスが最大: True)

出力の意味:数値積分による hh がガウスの理論式 12log2(2πeσ2)\frac12\log_2(2\pi e\sigma^2) と4桁一致(σ\sigma が2倍になるごとに hhlog22=1\log_2 2=1 bit 増える=スケールで値が動く)。σ=0.1\sigma=0.1 と分布が鋭くなると h=1.27h=-1.27 bit とになります——離散エントロピーでは絶対ありえない現象で、微分エントロピーが「基準からの差」であることの証拠です。最後に、同じ分散1で比べるとガウス 2.04712.0471 bit が一様分布 1.79251.7925 bit を上回り、分散固定ならガウスが最大エントロピーを数値で確認できました。

4. 数式の直観的意味

微分エントロピーは「連続値をどれだけ細かく区別できるか」の相対尺度です。σ\sigma が大きい(広がった)分布ほど区別すべき範囲が広く hh が大きい。負値は「分布が幅1(log2\log_2 の基準)より狭く集中している」ことを意味します。実用上は単体の hh よりが主役:相互情報量 I(X;Y)=h(X)h(XY)I(X;Y)=h(X)-h(X\mid Y) は基準がキャンセルして非負になり、ガウス通信路の容量(ガウス通信路と容量)はまさにこの形 h(Y)h(YX)=h(Y)h(Z)h(Y)-h(Y\mid X)=h(Y)-h(Z) で計算されます。「ガウスが最大」という性質が、最悪ノイズと最良信号の両方を特徴づけます。

⚠️ よくある誤解

対応シミュレーション

関連ノート