Mímisbrunnr知恵の泉

← 情報理論 一覧

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

📎 前提:微分エントロピーシャノンの情報源符号化定理 | 関連:相互情報量

要点(BLUF)

R(D)=12log2σ2D (0<Dσ2),D(R)=σ222RR(D)=\tfrac12\log_2\frac{\sigma^2}{D}\ (0<D\le\sigma^2),\qquad D(R)=\sigma^2\,2^{-2R}

1. なぜ歪みが必要か

連続値 XX を完全に表すには無限ビットが要ります(微分エントロピーの基準が log2Δ-\log_2\Delta\to\infty微分エントロピー)。だから有限レートで送るなら、再生 X^\hat X は元 XX と必ずずれる。そのずれを 歪み d(x,x^)d(x,\hat x) で測り(典型は2乗誤差 d=(xx^)2d=(x-\hat x)^2)、平均歪み E[d(X,X^)]D\mathbb E[d(X,\hat X)]\le D という条件のもとで、必要なレート(bit/サンプル)の最小値を求めるのがレート歪み理論です。情報源符号化定理(シャノンの情報源符号化定理)が「歪み0のときの限界=エントロピー」だったのを、「歪み DD を許すと限界はどう下がるか」へ一般化します。

2. レート歪み関数

レート歪み関数は、歪み制約を満たす条件付き分布の中で相互情報量を最小化したもの:

R(D)=minp(x^x): E[d(X,X^)]DI(X;X^)R(D) = \min_{p(\hat x\mid x):\ \mathbb E[d(X,\hat X)]\le D} I(X;\hat X)

「再生 X^\hat X が元 XX について最低限持つべき情報量」。DD を大きく許すほど X^\hat X は雑でよく、R(D)R(D) は下がります。分散 σ2\sigma^2 のガウス源+2乗誤差では解析的に解けて

R(D)={12log2σ2D0<Dσ20D>σ2R(D)=\begin{cases}\tfrac12\log_2\dfrac{\sigma^2}{D} & 0<D\le\sigma^2\\[4pt]0 & D>\sigma^2\end{cases}

D=σ2D=\sigma^2R=0R=0——「平均値 0 を返すだけ(何も送らない)」で歪みは源の分散 σ2\sigma^2 に等しいので、それ以上歪んでよいならビット不要。逆向きに解くと 歪み・レート関数 D(R)=σ222RD(R)=\sigma^2 2^{-2R}

3. コード:ガウス源のレート歪み(底2, bit)

R(D)R(D)D(R)D(R) を計算し、「1ビットで歪み1/4」を確かめます。

import numpy as np
# レート歪み(ガウス源・2乗誤差歪み)。σ^2=1
sigma2=1.0
print("ガウス源(分散1)・2乗誤差のレート歪み関数 R(D)=0.5 log2(σ^2/D)")
print(f"{'歪み D':>8}{'R(D) bit':>12}")
for D in [1.0,0.5,0.25,0.1,0.01]:
    R=max(0.0, 0.5*np.log2(sigma2/D))
    print(f"{D:>8}{R:>12.4f}")
print("-"*40)
# 逆向き:レート R bit で達成できる最小歪み D(R)=σ^2 2^{-2R}
print("歪み・レート関数 D(R)=σ^2 2^(-2R):1ビット増やすと歪みは1/4")
for R in [0,1,2,3]:
    D=sigma2*2**(-2*R)
    print(f"  R={R} bit -> D={D:.4f}  (= σ^2 / 4^R)")

出力:

ガウス源(分散1)・2乗誤差のレート歪み関数 R(D)=0.5 log2(σ^2/D)
    歪み D    R(D) bit
     1.0      0.0000
     0.5      0.5000
    0.25      1.0000
     0.1      1.6610
    0.01      3.3219
----------------------------------------
歪み・レート関数 D(R)=σ^2 2^(-2R):1ビット増やすと歪みは1/4
  R=0 bit -> D=1.0000  (= σ^2 / 4^R)
  R=1 bit -> D=0.2500  (= σ^2 / 4^R)
  R=2 bit -> D=0.0625  (= σ^2 / 4^R)
  R=3 bit -> D=0.0156  (= σ^2 / 4^R)

出力の意味:歪み DD を許すほど必要レートは下がり、D=σ2=1D=\sigma^2=1 なら R=0R=0(何も送らず平均値で代用)、D=0.01D=0.01 まで精密にするには 3.323.32 bit/サンプル。逆に固定レートで見ると、RR を1ビット増やすたびに歪みが 10.250.06250.01561\to0.25\to0.0625\to0.0156ぴったり 1/4 ずつ減ります。2乗誤差はパワーなので、1ビット=歪みパワー 1/4=10log104610\log_{10}4\approx6 dB の改善。これが「オーディオやビデオのビットレートを1ビット/サンプル上げると SN が約 6 dB 良くなる」という工学の経験則の理論的な正体です。JPEG の品質スライダーや MP3 のビットレート選択は、この R(D)R(D) 曲線上のどこで妥協するかを選んでいるわけです。

4. 数式の直観的意味

レート歪みは情報源符号化(シャノンの情報源符号化定理)の「歪みを許す版」で、通信路容量(通信路容量)と双対の関係にあります。容量は「相互情報量の最大化(送れる量の上限)」、レート歪みは「相互情報量の最小化(送るべき量の下限)」。どちらも I(X;)I(X;\cdot) の最適化として書け、Blahut-Arimoto アルゴリズムで数値的に解けます。12log2(σ2/D)\frac12\log_2(\sigma^2/D) という形がガウス通信路容量 12log2(1+SNR)\frac12\log_2(1+\mathrm{SNR}) とそっくりなのは偶然ではなく、「信号パワー対歪みパワーの比」が「信号対雑音比」と同じ役割を果たすから。非可逆圧縮とノイズ通信は、情報理論では同じ数式の表と裏です。

⚠️ よくある誤解

対応シミュレーション

関連ノート