相対エントロピーから情報と物理を組み立てる 第1部 第5章 §1.5.6 ★★ 教科書の「L≥H の証明」「Lagrange 乗数による最適な長さ」「Huffman の表」を、この章の分解式と並べる
エントロピーと平均符号長の不等式
学部の情報理論の授業や教科書では、エントロピーを 2 を底にして H(X)=−∑ipilog2pi ビットと定義し、平均符号長を L=∑ipili と書くことが多い。この記法では、情報源符号化定理の1記号版は
H(X)≤L<H(X)+1(ビット),i∑2−li≤1(1.5.11)
と書かれる。この章の記法との対応は、H教科書=H(X)/ln2、L=ℓˉ、li=ℓ(xi) である。
(1.5.11) の左の不等式の証明として教科書でよく見るのは、lny≤y−1 を使う次の計算である。qi=2−li とおくと
H−L=i∑pilog2pi2−li=ln21i∑pilnpiqi≤ln21i∑pi(piqi−1)=ln21(i∑qi−1)≤0.
途中の ∑ipiln(qi/pi)≤∑iqi−1 は、q の和が 1 のとき −D(p∥q)≤0 そのもので、Gibbs の不等式と呼ばれることもある。この計算は、分解 (1.5.5) の右辺の2つの非負の項(D(p∥qC) と −lnK)を、1回の不等式でまとめて捨てたものにあたる。2つを分けて書くと、捨てたものが「分布のずれ」と「木の使い残し」の2種類であることが見える。
Lagrange 乗数で最適な長さを出す
教科書のもう1つの定番は、長さが整数であるという条件を外して、∑ipili を ∑i2−li=1 のもとで最小にする計算である。Lagrange 関数
L=i∑pili+λ(i∑2−li−1)
を li で微分して 0 とおくと pi=λln2⋅2−li で、制約と ∑ipi=1 から λln2=1、すなわち li∗=−log2pi を得る。そのときの値は ∑ipili∗=H ビットである。この章の言葉では、li∗=−log2pi は qC=p と選ぶことで、D(p∥qC)=0 にする選び方にあたる。長さを整数に戻すと D=0 は一般に達成できず、切り上げた Shannon 符号は 1 ビット未満の代価を、Huffman 符号はその中で最小の代価を払う。
表 1.5.1 データ圧縮の教科書の書き方とこの章の書き方の対応。 | 教科書の書き方 | この章の書き方 |
| エントロピー | H(X)=−∑pilog2pi [ビット] | H(p)/ln2(H は nat) |
| 平均符号長 | L=∑pili | ℓˉ(C)=⟨ℓ(X)⟩p |
| Kraft の不等式 | ∑2−li≤1 | K(C)≤1、qC=2−ℓ/K |
| 下界の証明 | lny≤y−1 | (ln2)ℓˉ=H+D(p∥qC)−lnK |
| 最適な長さ | li∗=−log2pi(Lagrange) | qC=p で D=0 |
| Huffman 符号 | 最小の2つをまとめる表 | 2 の負べきの分布で D(p∥qC) を最小化 |
統計学との対応:符号長と対数尤度
統計学の授業では、データ x1,…,xn に対してモデル qθ の対数尤度 ∑klnqθ(xk) を最大にする θ を最尤推定量と呼ぶ。第1部第3章では、対数尤度の平均が −H(p^)−D(p^∥qθ) に等しいことから、最尤推定は D(p^∥qθ) の最小化と同じだと示した。ここではそれを符号長の言葉で読み直す。この章の言葉では、−log2qθ(x) は分布 qθ を見込んだ符号の(整数に丸める前の)符号長なので、対数尤度を最大にすることは、データを qθ 用の符号で書いたときの全長を最小にすることと同じである。最尤推定は「手元のデータを最も短く書ける符号を選ぶ」ことと言い換えることができる。データの経験分布を p^ とすると、全長は n(H(p^)+D(p^∥qθ))/ln2 ビットで、第1項は θ によらないので、最も短く書ける θ は D(p^∥qθ) を最小にする θ と一致する。推定と相対エントロピーの関係は、第1部第7章(第1部第7章)で Fisher 情報として、第1部第8章(第1部第8章)で大偏差として扱う。
例題 1.5.6 最尤推定は最短の符号を選ぶ ★★
オリジナル3文字 a,b,c からなる長さ 20 の列に、a が 10 回、b が 6 回、c が 4 回現れる。各文字が独立に分布 q=(qa,qb,qc) で出ると見込んだ符号で、この列を書くのに必要な長さ(整数に丸める前の理想的な符号長)を
ℓ(q)=−10log2qa−6log2qb−4log2qc
とする。
- ℓ(q) を最小にする q を求め、それが q の最尤推定量(経験分布)と一致することを確かめよ。
- 最小値を経験分布のエントロピーで表し、数値で求めよ。
- 一様の見込み u=(31,31,31)(何も見込まない符号)のときとの差を、相対エントロピーで表して数値で求めよ。
解答
(1) 経験分布を p^=(10,6,4)/20=(21,103,51) とおくと、ℓ(q)=−20∑xp^(x)log2q(x) で、上で見た全長の分解のとおり
ℓ(q)=ln220(H(p^)+D(p^∥q))
と分かれる。第1項は q によらず、第2項は D≥0 で等号は q=p^ のときに限るので、最小を与えるのは q=p^=(21,103,51) である。尤度 qa10qb6qc4 の対数は −(ln2)ℓ(q) なので、尤度の最大と ℓ の最小は同じ q で起こり、最尤推定量(各文字の回数 ÷20)に一致する。
(2) 最小値は ℓ(p^)=20H(p^)/ln2。H(p^)=21ln2+103ln310+51ln5≈0.3466+0.3612+0.3219=1.0297 nat なので、ℓ(p^)≈20×1.0297/0.6931≈29.71 ビットである。
(3) ℓ(u)=20log23≈31.70 ビット。差は
ℓ(u)−ℓ(p^)=ln220D(p^∥u)=ln220(ln3−H(p^))≈1.99 ビット
で、経験分布と見込みのずれ D(p^∥u)≈0.0690 nat が、1記号あたりの代価として全長に現れている。文字が2種類の場合は、序章の例題 1.1.6(硬貨の最尤推定)を符号長で読み直したものになる。ただし、実際に p^ の符号で送るには、受け手に p^ の値も伝える必要があり、そのぶんの長さが別にかかる。この勘定はこの章では扱わない。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com