微分エントロピーと連続確率変数の情報量を基礎から解説

コインを投げたときに得られる情報量は、シャノンのエントロピーで定量化できます。しかし、気温や株価のように連続的な値を取る確率変数の「情報量」は、どのように定義すればよいのでしょうか。離散確率変数のエントロピー $H(X) = -\sum_x p(x) \log p(x)$ をそのまま連続版に拡張しようとすると、和を積分に置き換えるだけではうまくいかない——実は、連続確率変数のエントロピーは負の値を取りえるなど、離散版とは根本的に異なる性質を持ちます。

この「連続版エントロピー」が微分エントロピー(differential entropy)です。微分エントロピーを理解すると、以下のような分野に直結する洞察が得られます。

  • 通信理論: AWGN通信路の通信路容量の導出で、微分エントロピーは中心的な役割を果たします。シャノンの通信路符号化定理の連続版そのものです
  • 統計力学: ボルツマン分布が「エネルギー制約のもとで微分エントロピーを最大化する分布」であるという最大エントロピー原理と深く結びつきます
  • ベイズ推定: 無情報事前分布の設計において、最大エントロピー原理が重要な指針を与えます
  • データ圧縮: 連続信号の量子化と符号化の理論的限界は、微分エントロピーで特徴づけられます

本記事の内容

  • 離散エントロピーから微分エントロピーへの自然な拡張と、その際に失われる性質
  • 微分エントロピーの数学的定義と基本性質
  • 代表的な確率分布の微分エントロピーの計算
  • 正規分布の最大エントロピー性の厳密な証明
  • 条件付き微分エントロピーと相互情報量
  • Pythonによる微分エントロピーの数値的検証

前提知識

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

離散エントロピーの復習 — 連続化への準備

シャノンエントロピーの定義

まず、離散確率変数のエントロピーを復習しましょう。確率質量関数 $p(x_1), p(x_2), \dots, p(x_n)$ を持つ離散確率変数 $X$ のシャノンエントロピーは次のように定義されます。

$$ H(X) = -\sum_{i=1}^{n} p(x_i) \log p(x_i) $$

ここで対数の底は2(ビット単位)または $e$(ナット単位)を使います。本記事では自然対数(ナット単位)を基本とし、必要に応じてビットに換算します。

シャノンエントロピーは以下の重要な性質を持ちます。

  1. 非負性: $H(X) \geq 0$。確率変数が確定的(ある値を確率1で取る)場合に等号成立
  2. 最大値: $n$ 個の値を取る離散確率変数のエントロピーは、一様分布のとき最大値 $\log n$ を取る
  3. 加法性: 独立な確率変数 $X, Y$ に対して $H(X, Y) = H(X) + H(Y)$

これらの性質は「エントロピー = 不確実性の度合い」という直感と整合しています。確定的なら不確実性は0、一様分布なら不確実性は最大、独立な情報源の不確実性は足し合わせられる——いずれも自然です。

では、これを連続確率変数に拡張するとき、何が起こるでしょうか。

連続化を試みる — 量子化からのアプローチ

連続確率変数 $X$ の確率密度関数を $f(x)$ とします。$X$ の値域を幅 $\Delta$ の小区間に分割して量子化すると、$X$ が区間 $[i\Delta, (i+1)\Delta)$ に入る確率は近似的に

$$ p_i = f(x_i) \Delta $$

です($x_i = i\Delta$ は区間の代表値)。この量子化された確率変数のエントロピーは

$$ H(X_\Delta) = -\sum_i p_i \log p_i = -\sum_i f(x_i) \Delta \log\left(f(x_i) \Delta\right) $$

対数を分解すると、

$$ H(X_\Delta) = -\sum_i f(x_i) \Delta \log f(x_i) – \sum_i f(x_i) \Delta \log \Delta $$

第2項は $\sum_i f(x_i) \Delta = 1$(確率の正規化)を使うと $-\log \Delta$ となります。$\Delta \to 0$ の極限で、第1項はリーマン和として次の積分に収束します。

$$ \lim_{\Delta \to 0}\left(-\sum_i f(x_i) \Delta \log f(x_i)\right) = -\int_{-\infty}^{\infty} f(x) \log f(x) \, dx $$

しかし、第2項 $-\log \Delta$ は $\Delta \to 0$ で $+\infty$ に発散してしまいます。つまり、

$$ H(X_\Delta) \approx -\int_{-\infty}^{\infty} f(x) \log f(x) \, dx – \log \Delta \quad \to \quad \infty \quad (\Delta \to 0) $$

連続確率変数をいくらでも精密に量子化しようとすると、必要な情報量は無限大に発散するのです。これは直感にも合います——実数の値を無限の精度で指定するには、無限のビットが必要です。

この発散する $-\log \Delta$ の項を取り除き、有限の量として意味のある部分だけを取り出したものが微分エントロピーです。

微分エントロピーの定義

定義と記法

上述の議論を踏まえて、微分エントロピー $h(X)$ を定義します。確率密度関数 $f(x)$ を持つ連続確率変数 $X$ の微分エントロピーは次のように定義されます。

$$ h(X) = -\int_{-\infty}^{\infty} f(x) \log f(x) \, dx $$

ただし $f(x) = 0$ の点では $f(x) \log f(x) = 0$ と約束します($\lim_{t \to 0^+} t \log t = 0$ による)。

離散エントロピー $H(X)$ と区別するために、微分エントロピーには小文字の $h$ を使います。形式的には離散エントロピーの和を積分に置き換えただけですが、上で見たように $-\log \Delta$ の項を落としているため、離散エントロピーとは質的に異なるいくつかの性質を持ちます。

多変量への拡張

$n$ 次元の連続確率ベクトル $\bm{X} = (X_1, X_2, \dots, X_n)$ の結合確率密度関数を $f(\bm{x})$ とすると、結合微分エントロピーは次のように定義されます。

$$ h(\bm{X}) = -\int_{\mathbb{R}^n} f(\bm{x}) \log f(\bm{x}) \, d\bm{x} $$

この定義は1変量の場合の自然な拡張です。

微分エントロピーの定義を理解したところで、離散エントロピーと比較しながら、その独特の性質を見ていきましょう。

微分エントロピーの基本性質

性質1: 微分エントロピーは負になりうる

離散エントロピーとの最も大きな違いは、微分エントロピーが負の値を取りうることです。これは、先ほどの量子化の議論で $-\log \Delta$ の項を取り除いたことの帰結です。

具体例で確認しましょう。区間 $[0, a]$ 上の一様分布 $f(x) = 1/a$ を考えます。

$$ h(X) = -\int_0^a \frac{1}{a} \log \frac{1}{a} \, dx = -\frac{1}{a} \cdot \left(-\log a\right) \cdot a = \log a $$

$a < 1$ のとき、$\log a < 0$ なので $h(X) < 0$ です。たとえば $a = 1/2$ なら $h(X) = \log(1/2) = -\log 2 \approx -0.693$ ナットです。

直感的に解釈すると、一様分布の「幅」が狭いほど不確実性が小さく、$a = 1$(標準的な尺度)を基準としたときに「基準よりも不確実性が少ない」ことを負の値で表しているのです。微分エントロピーは絶対的な情報量ではなく、密度関数の「拡がり具合」の対数的な尺度と考えるのが適切です。

性質2: 座標変換で値が変わる

離散エントロピーは確率変数の値の取り方(ラベルの付け方)に依存しません。しかし、微分エントロピーは座標変換で値が変わります。

$Y = aX + b$($a \neq 0$)のとき、$Y$ の確率密度関数は $f_Y(y) = f_X((y-b)/a) / |a|$ であるため、

$$ h(Y) = h(aX + b) = h(X) + \log |a| $$

となります。定数を足しても微分エントロピーは変わりませんが、スケーリングでは $\log |a|$ だけ変化します。

これを一般の可逆変換 $\bm{Y} = g(\bm{X})$ に拡張すると、

$$ h(\bm{Y}) = h(\bm{X}) + E\left[\log \left|\det \frac{\partial g}{\partial \bm{x}}\right|\right] $$

となります。ヤコビアンの行列式の対数の期待値が補正項として加わるのです。

性質3: 連鎖律は成り立つ

微分エントロピーの連鎖律は離散版と同じ形で成り立ちます。

$$ h(X, Y) = h(X) + h(Y \mid X) = h(Y) + h(X \mid Y) $$

ここで条件付き微分エントロピー $h(Y \mid X)$ は次のように定義されます。

$$ h(Y \mid X) = -\int \int f(x, y) \log f(y \mid x) \, dx \, dy $$

性質4: 条件付けは微分エントロピーを減らさないとは限らない

離散エントロピーでは $H(Y \mid X) \leq H(Y)$ が常に成り立ちますが、微分エントロピーでは条件付き微分エントロピーが条件付けなしの微分エントロピーより大きくなることがあると誤解されがちです。実は、条件付き微分エントロピーについてもこの不等式は成り立ちます。

$$ h(Y \mid X) \leq h(Y) $$

等号は $X$ と $Y$ が独立なときに成り立ちます。

性質5: 独立なら加法的

独立な連続確率変数 $X_1, X_2, \dots, X_n$ に対して、

$$ h(X_1, X_2, \dots, X_n) = \sum_{i=1}^n h(X_i) $$

が成り立ちます。これは離散版と同じです。より一般には、

$$ h(X_1, X_2, \dots, X_n) \leq \sum_{i=1}^n h(X_i) $$

であり、等号は独立なときに成り立ちます。この不等式は、相関があると不確実性が減ることを反映しています。

性質6: 相互情報量は座標に依存しない

微分エントロピー自体は座標変換で値が変わりますが、相互情報量

$$ I(X; Y) = h(X) + h(Y) – h(X, Y) = h(X) – h(X \mid Y) $$

は座標変換に対して不変です。これは、$I(X; Y)$ が本質的にKLダイバージェンスとして定義されるためです。

$$ I(X; Y) = D_{\mathrm{KL}}(f(x, y) \| f(x) f(y)) = \int \int f(x, y) \log \frac{f(x, y)}{f(x) f(y)} \, dx \, dy $$

KLダイバージェンスは非負かつ座標変換に不変であるため、相互情報量もこれらの良い性質を受け継ぎます。微分エントロピーの「クセ」(負になりうる、座標依存性がある)は、差を取ることで打ち消されるのです。

これは実用上も重要な性質です。連続確率変数の「情報量」を議論するとき、微分エントロピーの絶対値よりも、相互情報量(エントロピーの差)の方が座標に依存しない本質的な量として信頼できます。

微分エントロピーの基本性質を理解したところで、具体的な確率分布の微分エントロピーを計算してみましょう。

代表的な確率分布の微分エントロピー

一様分布

区間 $[a, b]$ 上の一様分布 $f(x) = 1/(b-a)$ の微分エントロピーは、

$$ h(X) = -\int_a^b \frac{1}{b-a} \log \frac{1}{b-a} \, dx = \log(b – a) $$

です。区間の長さ $b – a$ の対数が微分エントロピーになります。$b – a > 1$ なら正、$b – a < 1$ なら負、$b - a = 1$ なら $h(X) = 0$ です。

正規分布(ガウス分布)

平均 $\mu$、分散 $\sigma^2$ の正規分布 $f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$ の微分エントロピーを計算しましょう。

$$ h(X) = -\int_{-\infty}^{\infty} f(x) \log f(x) \, dx $$

$\log f(x)$ を展開すると、

$$ \log f(x) = -\frac{1}{2} \log(2\pi\sigma^2) – \frac{(x-\mu)^2}{2\sigma^2} $$

これを代入して期待値を計算します。

$$ h(X) = -E[\log f(X)] = \frac{1}{2} \log(2\pi\sigma^2) + \frac{1}{2\sigma^2} E[(X – \mu)^2] $$

$E[(X – \mu)^2] = \sigma^2$(分散の定義)を代入すると、

$$ h(X) = \frac{1}{2} \log(2\pi\sigma^2) + \frac{1}{2} = \frac{1}{2} \log(2\pi e \sigma^2) $$

この結果は美しく簡潔です。正規分布の微分エントロピーは分散 $\sigma^2$ のみで決まり、平均 $\mu$ には依存しません(性質2で $h(X + b) = h(X)$ であることからも明らか)。

ビット単位では $h(X) = \frac{1}{2} \log_2(2\pi e \sigma^2)$ です。

指数分布

パラメータ $\lambda > 0$ の指数分布 $f(x) = \lambda e^{-\lambda x}$($x \geq 0$)の微分エントロピーは、

$$ h(X) = -\int_0^{\infty} \lambda e^{-\lambda x} (\log \lambda – \lambda x) \, dx $$

$E[X] = 1/\lambda$ を使って計算すると、

$$ h(X) = -\log \lambda + \lambda \cdot \frac{1}{\lambda} = 1 – \log \lambda = \log \frac{e}{\lambda} $$

指数分布の微分エントロピーは $\lambda$ が大きい(平均が小さい = 分布が集中している)ほど小さくなり、$\lambda > e$ のとき負になります。

多変量正規分布

$n$ 次元の多変量正規分布 $\bm{X} \sim \mathcal{N}(\bm{\mu}, \bm{\Sigma})$ の微分エントロピーは、

$$ h(\bm{X}) = \frac{1}{2} \log\left((2\pi e)^n \det \bm{\Sigma}\right) = \frac{n}{2} \log(2\pi e) + \frac{1}{2} \log \det \bm{\Sigma} $$

です。共分散行列の行列式 $\det \bm{\Sigma}$ が分布の「拡がり」を表す量であり、これが大きいほど微分エントロピーも大きくなります。1変量の場合 $\det \bm{\Sigma} = \sigma^2$ であり、上で求めた結果と一致します。

結果の比較表

各分布の微分エントロピーをまとめます。

分布 パラメータ 微分エントロピー $h(X)$
一様分布 $U[a, b]$ $a, b$ $\log(b – a)$
正規分布 $N(\mu, \sigma^2)$ $\mu, \sigma^2$ $\frac{1}{2}\log(2\pi e \sigma^2)$
指数分布 $\mathrm{Exp}(\lambda)$ $\lambda$ $\log(e/\lambda)$
ラプラス分布 $b$ $\log(2be)$
ガンマ分布 $\Gamma(\alpha, \beta)$ $\alpha, \beta$ $\alpha + \log\beta + \log\Gamma(\alpha) + (1-\alpha)\psi(\alpha)$

共通するパターンとして、分布の「拡がり」が大きいほど微分エントロピーが大きくなることがわかります。これは離散エントロピーで「一様に近いほどエントロピーが大きい」のと対応しています。

次に、これらの分布の中で正規分布が特別な地位を占めること——分散を固定したとき、正規分布が微分エントロピーを最大化する——を厳密に証明しましょう。

正規分布の最大エントロピー性

定理の主張

分散が $\sigma^2$ であるすべての連続確率変数の中で、微分エントロピーを最大化するのは正規分布 $N(\mu, \sigma^2)$ です。すなわち、$E[X] = \mu$、$\mathrm{Var}(X) = \sigma^2$ を満たす任意の確率密度関数 $f(x)$ に対して、

$$ h(f) \leq \frac{1}{2} \log(2\pi e \sigma^2) = h(\phi) $$

が成り立ちます。ここで $\phi(x)$ は $N(\mu, \sigma^2)$ の確率密度関数です。等号は $f = \phi$ のときに限り成立します。

この定理は直感的にも納得できます。正規分布は、平均と分散だけを指定して他のことは一切仮定しない「最も偏りのない」分布です。追加の構造(歪み、尖度の偏りなど)があれば、その分だけ不確実性(エントロピー)は減少するはずです。

証明

証明はKLダイバージェンスの非負性を利用します。

任意の確率密度関数 $f$ と正規分布の確率密度関数 $\phi$ に対して、KLダイバージェンスの非負性から

$$ D_{\mathrm{KL}}(f \| \phi) = \int f(x) \log \frac{f(x)}{\phi(x)} \, dx \geq 0 $$

これを展開すると、

$$ \int f(x) \log f(x) \, dx – \int f(x) \log \phi(x) \, dx \geq 0 $$

左辺の第1項は $-h(f)$ です。第2項を計算しましょう。

$$ \int f(x) \log \phi(x) \, dx = \int f(x) \left[-\frac{1}{2}\log(2\pi\sigma^2) – \frac{(x-\mu)^2}{2\sigma^2}\right] dx $$

$f$ の平均が $\mu$、分散が $\sigma^2$ であることを使うと、

$$ \int f(x) \log \phi(x) \, dx = -\frac{1}{2}\log(2\pi\sigma^2) – \frac{\sigma^2}{2\sigma^2} = -\frac{1}{2}\log(2\pi\sigma^2) – \frac{1}{2} $$

これはまさに $-h(\phi)$ に等しいことに注目してください。

$$ \int f(x) \log \phi(x) \, dx = -h(\phi) $$

この結果をKLダイバージェンスの不等式に代入すると、

$$ -h(f) – (-h(\phi)) \geq 0 $$

$$ h(\phi) – h(f) \geq 0 $$

$$ h(f) \leq h(\phi) $$

証明のポイントは、$\int f(x) \log \phi(x) \, dx$ を計算するとき、$\phi$ が正規分布であるために $\log \phi(x)$ が $x$ の2次式であり、結果が $f$ の平均と分散のみに依存する——つまり $f$ が正規分布であろうがなかろうが同じ値になる——ことです。これにより、任意の $f$ と $\phi$ の微分エントロピーの差がKLダイバージェンスに帰着されます。

より一般の制約付き最大エントロピー

正規分布の最大エントロピー性は、より一般的な最大エントロピー原理の特殊ケースです。制約の種類に応じて、最大エントロピー分布は変わります。

制約 最大エントロピー分布
台 $[a, b]$ が有限 一様分布 $U[a,b]$
$x \geq 0$, $E[X] = 1/\lambda$ 指数分布 $\mathrm{Exp}(\lambda)$
$E[X] = \mu$, $\mathrm{Var}(X) = \sigma^2$ 正規分布 $N(\mu, \sigma^2)$
$E[\bm{X}] = \bm{\mu}$, $\mathrm{Cov}(\bm{X}) = \bm{\Sigma}$ 多変量正規分布 $N(\bm{\mu}, \bm{\Sigma})$

いずれの場合も、指数型分布族に属する分布が最大エントロピー分布になります。これは偶然ではなく、ラグランジュ乗数法による最適化の帰結として自然に導かれる結果です。

正規分布の最大エントロピー性を確認したところで、次に微分エントロピーと他の情報理論的量との関係を見ていきましょう。

微分エントロピーと通信路容量

AWGN通信路の容量

微分エントロピーの最も重要な応用の一つが、AWGN通信路(加法的白色ガウス雑音通信路)の通信路容量の導出です。

入力 $X$ に対して出力 $Y = X + Z$ となるAWGN通信路を考えます。ここで $Z \sim N(0, N)$ は入力と独立なガウス雑音、$N$ は雑音の分散です。入力に電力制約 $E[X^2] \leq P$ を課します。

通信路容量は次の最大化問題で定義されます。

$$ C = \max_{f_X : E[X^2] \leq P} I(X; Y) $$

相互情報量を微分エントロピーで展開すると、

$$ I(X; Y) = h(Y) – h(Y \mid X) = h(Y) – h(Z) $$

$Z \sim N(0, N)$ なので $h(Z) = \frac{1}{2}\log(2\pi eN)$ は固定です。したがって、$I(X; Y)$ を最大化するには $h(Y)$ を最大化すればよいことがわかります。

$Y = X + Z$ の分散は $\mathrm{Var}(Y) = \mathrm{Var}(X) + \mathrm{Var}(Z) \leq P + N$ です。正規分布の最大エントロピー性から、分散が $P + N$ 以下の確率変数の微分エントロピーは、$Y \sim N(0, P + N)$ のとき最大になります。

$$ h(Y) \leq \frac{1}{2}\log(2\pi e(P + N)) $$

等号は $X \sim N(0, P)$ のとき($Y$ が正規分布になるとき)に成立します。

したがって、AWGN通信路の容量は

$$ C = \frac{1}{2}\log(2\pi e(P + N)) – \frac{1}{2}\log(2\pi eN) = \frac{1}{2}\log\left(1 + \frac{P}{N}\right) $$

これがシャノンの有名な通信路容量公式です。$P/N$ は信号対雑音比(SNR)であり、帯域幅 $W$ のAWGN通信路では $C = W \log(1 + \mathrm{SNR})$ となります。

この導出における微分エントロピーの役割は本質的です。通信路容量の導出の各ステップで、微分エントロピーの性質(条件付けでの変化、最大エントロピー性)が使われています。

レート歪み理論との関係

レート歪み理論においても、微分エントロピーは重要な役割を果たします。ガウス情報源 $X \sim N(0, \sigma^2)$ の二乗誤差歪みに対するレート歪み関数は

$$ R(D) = \begin{cases} \frac{1}{2}\log\frac{\sigma^2}{D} & \text{if } 0 < D \leq \sigma^2 \\ 0 & \text{if } D > \sigma^2 \end{cases} $$

であり、微分エントロピー $h(X) = \frac{1}{2}\log(2\pi e\sigma^2)$ と密接に関連しています。ガウス情報源は、同じ分散を持つ情報源の中で最もレート歪み関数が大きく(=圧縮しにくく)、これも正規分布の最大エントロピー性の帰結です。

通信路容量の話題で微分エントロピーの実用的な重要性を確認したところで、Pythonで微分エントロピーの性質を数値的に検証しましょう。

Pythonによる微分エントロピーの数値検証

各分布の微分エントロピーの計算と比較

理論値と数値積分の結果を比較し、正規分布の最大エントロピー性を可視化します。

import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
from scipy.stats import norm, expon, uniform, laplace

def numerical_diff_entropy(pdf, x_range, dx=0.0001):
    """確率密度関数から微分エントロピーを数値的に計算する"""
    x = np.arange(x_range[0], x_range[1], dx)
    fx = pdf(x)
    # f(x) > 0 の点のみ積分
    mask = fx > 1e-30
    integrand = np.zeros_like(fx)
    integrand[mask] = -fx[mask] * np.log(fx[mask])
    return np.trapz(integrand, x)

# 各分布の微分エントロピー: 理論値 vs 数値計算
print("=== 微分エントロピーの検証 ===\n")

# 正規分布 N(0, sigma^2)
for sigma in [0.5, 1.0, 2.0, 5.0]:
    theory = 0.5 * np.log(2 * np.pi * np.e * sigma**2)
    numerical = numerical_diff_entropy(
        lambda x: norm.pdf(x, 0, sigma), (-10*sigma, 10*sigma))
    print(f"N(0, {sigma**2:.1f}): 理論値 = {theory:.4f}, "
          f"数値計算 = {numerical:.4f}, 差 = {abs(theory - numerical):.6f}")

print()

# 一様分布 U[0, a]
for a in [0.5, 1.0, 2.0, 5.0]:
    theory = np.log(a)
    numerical = numerical_diff_entropy(
        lambda x, a=a: uniform.pdf(x, 0, a), (-0.1, a + 0.1))
    print(f"U[0, {a}]: 理論値 = {theory:.4f}, "
          f"数値計算 = {numerical:.4f}, 差 = {abs(theory - numerical):.6f}")

print()

# 指数分布 Exp(lambda)
for lam in [0.5, 1.0, 2.0, 5.0]:
    theory = np.log(np.e / lam)
    numerical = numerical_diff_entropy(
        lambda x, l=lam: expon.pdf(x, scale=1/l), (0, 20/lam))
    print(f"Exp({lam}): 理論値 = {theory:.4f}, "
          f"数値計算 = {numerical:.4f}, 差 = {abs(theory - numerical):.6f}")

上の結果から、理論値と数値計算がきわめてよく一致していることが確認できます。特に注目すべき点として、$\sigma = 0.5$ の正規分布や $a = 0.5$ の一様分布では微分エントロピーが負になっており、離散エントロピーとの質的な違いを数値的にも確認できます。

正規分布の最大エントロピー性の数値的検証

同じ分散を持つ様々な分布の微分エントロピーを比較し、正規分布が最大であることを確認します。

from scipy.stats import t as t_dist

sigma2 = 4.0  # 分散を4に固定
sigma = np.sqrt(sigma2)

# 正規分布の微分エントロピー(理論上の上界)
h_gauss = 0.5 * np.log(2 * np.pi * np.e * sigma2)

# 様々な分布で同じ分散を持つものの微分エントロピーを計算
distributions = {}

# 1. 正規分布 N(0, 4)
distributions['正規分布'] = numerical_diff_entropy(
    lambda x: norm.pdf(x, 0, sigma), (-20, 20))

# 2. ラプラス分布: 分散 = 2b^2 = 4 => b = sqrt(2)
b = np.sqrt(2)
distributions['ラプラス分布'] = numerical_diff_entropy(
    lambda x: laplace.pdf(x, 0, b), (-20, 20))

# 3. 一様分布: 分散 = (b-a)^2/12 = 4 => b-a = 4*sqrt(3)
width = 4 * np.sqrt(3)
distributions['一様分布'] = numerical_diff_entropy(
    lambda x: uniform.pdf(x, -width/2, width), (-width/2 - 0.1, width/2 + 0.1))

# 4. t分布 (df=5): 分散 = df/(df-2) = 5/3, スケーリングで分散4に調整
df = 5
scale = np.sqrt(sigma2 * (df-2) / df)
distributions['t分布(df=5)'] = numerical_diff_entropy(
    lambda x: t_dist.pdf(x/scale, df) / scale, (-30, 30))

print(f"分散 = {sigma2} に固定した各分布の微分エントロピー (nats)")
print(f"正規分布の理論上界: h = {h_gauss:.4f}")
print("-" * 50)
for name, h in sorted(distributions.items(), key=lambda x: -x[1]):
    gap = h_gauss - h
    print(f"{name:12s}: h = {h:.4f}  (上界との差: {gap:.4f})")

数値計算の結果から、分散を固定した場合に正規分布が微分エントロピーを最大化していることが確認できます。ラプラス分布や一様分布は正規分布よりも小さな微分エントロピーを持ちます。t分布は裾が重い分布ですが、それでも正規分布の微分エントロピーには及びません。

微分エントロピーの分散依存性の可視化

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

# 左: 分散に対する微分エントロピーの変化
sigma2_range = np.linspace(0.01, 10, 500)

# 正規分布
h_gauss_range = 0.5 * np.log(2 * np.pi * np.e * sigma2_range)
axes[0].plot(sigma2_range, h_gauss_range, 'b-', linewidth=2, label='Normal')

# 一様分布(同じ分散)
h_uniform_range = np.log(np.sqrt(12 * sigma2_range))
axes[0].plot(sigma2_range, h_uniform_range, 'r--', linewidth=2, label='Uniform')

# 指数分布(分散 = 1/lambda^2 => lambda = 1/sqrt(sigma2))
h_exp_range = np.log(np.e * np.sqrt(sigma2_range))
axes[0].plot(sigma2_range, h_exp_range, 'g-.', linewidth=2, label='Exponential')

axes[0].axhline(y=0, color='k', linestyle='-', alpha=0.3)
axes[0].set_xlabel('Variance $\\sigma^2$')
axes[0].set_ylabel('Differential Entropy $h(X)$ (nats)')
axes[0].set_title('Differential Entropy vs Variance')
axes[0].legend()
axes[0].grid(True, alpha=0.3)

# 右: 各分布の確率密度関数(同じ分散)
x = np.linspace(-8, 8, 1000)
sigma2_fixed = 4.0
sigma_fixed = np.sqrt(sigma2_fixed)

# 正規分布
axes[1].plot(x, norm.pdf(x, 0, sigma_fixed), 'b-', linewidth=2,
             label=f'Normal (h={0.5*np.log(2*np.pi*np.e*sigma2_fixed):.2f})')

# ラプラス分布
b_lap = np.sqrt(sigma2_fixed / 2)
axes[1].plot(x, laplace.pdf(x, 0, b_lap), 'r--', linewidth=2,
             label=f'Laplace (h={np.log(2*b_lap*np.e):.2f})')

# 一様分布
w = np.sqrt(12 * sigma2_fixed)
axes[1].plot(x, uniform.pdf(x, -w/2, w), 'g-.', linewidth=2,
             label=f'Uniform (h={np.log(w):.2f})')

axes[1].set_xlabel('$x$')
axes[1].set_ylabel('$f(x)$')
axes[1].set_title(f'PDFs with same variance $\\sigma^2 = {sigma2_fixed}$')
axes[1].legend(fontsize=9)
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

左のグラフから、すべての分布において微分エントロピーは分散の増加とともに単調に増加することが読み取れます。正規分布のエントロピーが常に最大であることが視覚的にも確認できます。分散が小さい領域では微分エントロピーが負になる場合があることも見て取れます。

右のグラフでは、同じ分散 $\sigma^2 = 4$ を持つ3つの分布の形状を比較しています。正規分布は「最もなだらかに広がった」形状をしており、ラプラス分布は中心が尖って裾が重く、一様分布は有限の台を持ちます。正規分布が最も「偏りのない」形であることが、最大エントロピー性の幾何学的な解釈です。

量子化と微分エントロピーの関係の検証

冒頭で議論した、量子化エントロピーと微分エントロピーの関係を数値的に検証します。

def quantized_entropy(pdf, x_range, delta):
    """量子化幅deltaでの離散エントロピーを計算する"""
    bins = np.arange(x_range[0], x_range[1], delta)
    probs = np.array([integrate.quad(pdf, b, b + delta)[0] for b in bins])
    probs = probs[probs > 1e-30]
    return -np.sum(probs * np.log(probs))

# 標準正規分布の場合
sigma = 1.0
pdf = lambda x: norm.pdf(x, 0, sigma)
h_theory = 0.5 * np.log(2 * np.pi * np.e * sigma**2)

deltas = [2.0, 1.0, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01]
print("量子化エントロピーと微分エントロピーの関係")
print(f"微分エントロピー h(X) = {h_theory:.4f} nats")
print(f"{'Delta':>8s}  {'H(X_Δ)':>10s}  {'H(X_Δ)+logΔ':>12s}  {'差':>8s}")
print("-" * 45)

for delta in deltas:
    H_delta = quantized_entropy(pdf, (-8, 8), delta)
    adjusted = H_delta + np.log(delta)
    diff = adjusted - h_theory
    print(f"{delta:8.4f}  {H_delta:10.4f}  {adjusted:12.4f}  {diff:8.4f}")

この結果は、量子化エントロピー $H(X_\Delta)$ から $-\log \Delta$ を引いた値(すなわち $H(X_\Delta) + \log \Delta$)が微分エントロピー $h(X)$ に収束することを数値的に確認しています。$\Delta$ が小さくなるほど近似が精密になりますが、$H(X_\Delta)$ 自体は $\Delta \to 0$ で無限大に発散します。このことは、微分エントロピーが「絶対的な情報量」ではなく、量子化精度を基準とした相対的な量であることを明確に示しています。

エントロピーパワー不等式

微分エントロピーに関連する重要な不等式として、エントロピーパワー不等式(Entropy Power Inequality, EPI)があります。これはシャノンが1948年に提唱し、後にスタム(Stam)やブレイナー(Blachman)によって厳密に証明されました。

エントロピーパワーの定義

確率変数 $X$ のエントロピーパワーは次のように定義されます。

$$ N(X) = \frac{1}{2\pi e} e^{2h(X)} $$

正規分布 $N(0, \sigma^2)$ のエントロピーパワーは $N(X) = \sigma^2$ となり、分散と一致します。一般の分布では、エントロピーパワーは「同じ微分エントロピーを持つ正規分布の分散」を意味します。

エントロピーパワー不等式の主張

独立な連続確率変数 $X$ と $Y$ に対して、

$$ N(X + Y) \geq N(X) + N(Y) $$

すなわち、

$$ e^{2h(X+Y)} \geq e^{2h(X)} + e^{2h(Y)} $$

が成り立ちます。等号は $X$ と $Y$ がともに正規分布のときに成立します。

エントロピーパワー不等式は、独立確率変数の和の不確実性が、個々の不確実性の「和以上」であることを述べています。通信理論では、この不等式がAWGN通信路の通信路容量の強逆定理(strong converse)の証明に使われます。

まとめ

本記事では、微分エントロピーの定義・性質・応用について解説しました。

  • 定義の背景: 微分エントロピーは離散エントロピーの連続版だが、量子化の発散項を取り除いた「相対的な量」である。そのため負になりうるし、座標変換で値が変わる
  • 基本性質: 連鎖律は成り立つが、非負性は失われる。一方、相互情報量は座標に依存しない本質的な量として信頼できる
  • 最大エントロピー性: 分散を固定したとき、正規分布が微分エントロピーを最大化する。この事実はAWGN通信路の容量導出の核心
  • 通信路容量: シャノンの公式 $C = \frac{1}{2}\log(1 + \mathrm{SNR})$ は、微分エントロピーと正規分布の最大エントロピー性から直接導かれる

微分エントロピーは、離散エントロピーに比べて扱いに注意が必要ですが、連続変数を扱う情報理論の基盤として不可欠な概念です。

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