tecktom.com

当てる性質:DD の非負性が圧縮の限界を決める

2026年10月15日8分で読めますAI生成教科書『虎の巻』第1部 第5章 データ圧縮
目次
  1. 平均符号長の分解
  2. Shannon 符号と、分布を取り違えた代価
  3. 木下の層

AI 生成・木下が未勉強

相対エントロピーから情報と物理を組み立てる 第1部 第5章 §1.5.3 ★★★ 平均符号長を H(p)+D(p ∥ qC)−ln⁡KH(p)+D(p\,\|\,q_C)-\ln K と分ける恒等式1本から、下界・Shannon 符号・分布を取り違えた代価が全部出る

平均符号長の分解

第1部第3章(第1部第3章)で相対エントロピー

D(p ∥ q)=∑xp(x)ln⁡p(x)q(x) ≥0(等号は p=q のときに限る)D(p\,\|\,q)=\sum_xp(x)\ln\frac{p(x)}{q(x)}\ \ge0\qquad(\text{等号は }p=q\text{ のときに限る})

を定義し、非負性を Jensen の不等式から示した。これを平均符号長に当てる。

定理 1.5.6(平均符号長の分解 ★★★)

任意の符号 CC と情報源の分布 pp について

(ln⁡2) ℓˉ(C)=H(p)+D(p ∥ qC)−ln⁡K(C)(1.5.5)(\ln2)\,\bar\ell(C)=H(p)+D(p\,\|\,q_C)-\ln K(C)\tag{1.5.5}

が成り立つ。H(p)=−∑xp(x)ln⁡p(x)H(p)=-\sum_xp(x)\ln p(x) は情報源のエントロピー(nat)、qCq_C と K(C)K(C) は定義 1.5.3 のものである。

証明

(1.5.3) から 2−ℓ(x)=K(C) qC(x)2^{-\ell(x)}=K(C)\,q_C(x) なので、(ln⁡2) ℓ(x)=−ln⁡(K(C)qC(x))=−ln⁡K(C)−ln⁡qC(x)(\ln 2)\,\ell(x)=-\ln\bigl(K(C)q_C(x)\bigr)=-\ln K(C)-\ln q_C(x) である。p(x)p(x) を掛けて和をとると

(ln⁡2) ℓˉ(C)=−ln⁡K(C)−∑xp(x)ln⁡qC(x)=−ln⁡K(C)−∑xp(x)ln⁡p(x)+∑xp(x)ln⁡p(x)qC(x).(\ln2)\,\bar\ell(C)=-\ln K(C)-\sum_xp(x)\ln q_C(x) =-\ln K(C)-\sum_xp(x)\ln p(x)+\sum_xp(x)\ln\frac{p(x)}{q_C(x)} .

右辺の第2項が H(p)H(p)、第3項が D(p ∥ qC)D(p\,\|\,q_C) である。

右辺の3つの項はそれぞれ別の量を測っている。H(p)H(p) は情報源だけで決まり、符号をどう作っても変わらない。D(p ∥ qC)D(p\,\|\,q_C) は、符号が見込んだ分布 qCq_C と実際の分布 pp のずれである。−ln⁡K(C)-\ln K(C) は、符号の木に使われていない枝があるぶんの無駄で、完全な符号なら 00 になる。後の2つはどちらも 00 以上なので、次の下界が出る。

定理 1.5.7(圧縮の下界 ★★★)

一意に復号できる任意の符号 CC について

ℓˉ(C) ≥ H(p)ln⁡2ビット(1.5.6)\bar\ell(C)\ \ge\ \frac{H(p)}{\ln2}\quad\text{ビット}\tag{1.5.6}

が成り立つ。等号はすべての xx で p(x)=2−ℓ(x)p(x)=2^{-\ell(x)} のときに限る。

証明

McMillan の不等式(定理 1.5.5)から K(C)≤1K(C)\le1 なので −ln⁡K(C)≥0-\ln K(C)\ge0。D(p ∥ qC)≥0D(p\,\|\,q_C)\ge0 とあわせて (1.5.5) から (1.5.6) を得る。等号には K(C)=1K(C)=1 と D(p ∥ qC)=0D(p\,\|\,q_C)=0、すなわち p=qC=2−ℓp=q_C=2^{-\ell} が必要で、そのとき実際に等号が成り立つ。

等号が成り立つのは p(x)p(x) がすべて 22 の負べき(12\tfrac12、14\tfrac14、18\tfrac18、…)のときだけである。そうでない分布では、符号語の長さが整数であるため qCq_C を pp にぴったり合わせられず、わずかに HH を上回る。どれだけ上回るかを抑えるために、pp に合わせて長さを決めた符号を作る。

Shannon 符号と、分布を取り違えた代価

qCq_C を pp に近づけたいので、ℓ(x)=−log⁡2p(x)\ell(x)=-\log_2p(x) と選びたいが、これは一般に整数でない。そこで切り上げる。

定理 1.5.8(Shannon 符号 ★★★)

分布 qq に対して ℓ(x)=⌈−log⁡2q(x)⌉\ell(x)=\lceil-\log_2q(x)\rceil と長さを選ぶと、Kraft の不等式を満たすので語頭符号が作れる(qq に合わせた Shannon 符号)。この符号を、実際には分布 pp に従う情報源に使うと

H(p)+D(p ∥ q)ln⁡2 ≤ ℓˉ < H(p)+D(p ∥ q)ln⁡2+1(1.5.7)\frac{H(p)+D(p\,\|\,q)}{\ln2}\ \le\ \bar\ell\ <\ \frac{H(p)+D(p\,\|\,q)}{\ln2}+1\tag{1.5.7}

となる。とくに q=pq=p に合わせれば H(p)/ln⁡2≤ℓˉ<H(p)/ln⁡2+1H(p)/\ln2\le\bar\ell<H(p)/\ln2+1 である。

証明

ℓ(x)≥−log⁡2q(x)\ell(x)\ge-\log_2q(x) から 2−ℓ(x)≤q(x)2^{-\ell(x)}\le q(x) で、和をとれば K≤∑xq(x)=1K\le\sum_xq(x)=1。よって定理 1.5.4 から語頭符号を作ることができる。次に、−log⁡2q(x)≤ℓ(x)<−log⁡2q(x)+1-\log_2q(x)\le\ell(x)<-\log_2q(x)+1 に p(x)p(x) を掛けて和をとると

−∑xp(x)log⁡2q(x) ≤ ℓˉ < −∑xp(x)log⁡2q(x)+1.-\sum_xp(x)\log_2q(x)\ \le\ \bar\ell\ <\ -\sum_xp(x)\log_2q(x)+1 .

−∑xpln⁡q=−∑xpln⁡p+∑xpln⁡(p/q)=H(p)+D(p ∥ q)-\sum_xp\ln q=-\sum_xp\ln p+\sum_xp\ln(p/q)=H(p)+D(p\,\|\,q) を ln⁡2\ln2 で割ったものが −∑xplog⁡2q-\sum_xp\log_2q なので、(1.5.7) が出る。

(1.5.7) の読み方はこうである。情報源の分布を qq だと思い込んで符号を作ると、実際の分布 pp に合わせて作った場合に比べて、平均符号長がおよそ D(p ∥ q)/ln⁡2D(p\,\|\,q)/\ln2 ビット長くなる(整数に切り上げる1ビット未満の差を除いて)。第1部第3章では D(p ∥ q)D(p\,\|\,q) を2つの分布の「隔たり」として定義したが、ここでそれに操作的な意味が付いた。D(p ∥ q)/ln⁡2D(p\,\|\,q)/\ln2 は、pp に従うデータを qq 用の符号で保存したときに1記号あたり余分にかかるビット数である。DD が対称でない(D(p ∥ q)≠D(q ∥ p)D(p\,\|\,q)\neq D(q\,\|\,p))ことも、この読み方では自然で、「実際は pp なのに qq と思った」と「実際は qq なのに pp と思った」では、無駄になる符号語が違う。

この節の要点

  • 平均符号長の分解 (ln⁡2)ℓˉ=H(p)+D(p ∥ qC)−ln⁡K(\ln2)\bar\ell=H(p)+D(p\,\|\,q_C)-\ln K(式 (1.5.5))。
  • D≥0D\ge0 と K≤1K\le1 から、圧縮の下界 ℓˉ≥H(p)/ln⁡2\bar\ell\ge H(p)/\ln2 ビット。
  • 分布を qq と取り違えた代価は1記号あたり D(p ∥ q)/ln⁡2D(p\,\|\,q)/\ln2 ビット。

例題 1.5.3 取り違えの代価をビットで数える ★★★

オリジナル4つの記号 a,b,c,da,b,c,d が確率 p=(12,14,18,18)p=(\tfrac12,\tfrac14,\tfrac18,\tfrac18) で出る情報源を考える。

  1. H(p)/ln⁡2H(p)/\ln2 を求め、符号 (1.5.2)(長さ 1,2,3,31,2,3,3)の平均符号長と比べよ。
  2. 4つの記号に長さ 22 の符号語を1つずつ割り当てる固定長符号の平均符号長を求め、下界との差が D(p ∥ u)/ln⁡2D(p\,\|\,u)/\ln2(uu は一様分布)に等しいことを確かめよ。
  3. 長さを逆順の (3,3,2,1)(3,3,2,1) にした符号の平均符号長を求め、下界との差を相対エントロピーで表せ。
解答

(1) H(p)/ln⁡2=12⋅1+14⋅2+18⋅3+18⋅3=1.75H(p)/\ln2=\tfrac12\cdot1+\tfrac14\cdot2+\tfrac18\cdot3+\tfrac18\cdot3=1.75 ビット。符号 (1.5.2) の平均符号長も 12⋅1+14⋅2+18⋅3⋅2=1.75\tfrac12\cdot1+\tfrac14\cdot2+\tfrac18\cdot3\cdot2=1.75 ビットで、下界に等しい。p(x)=2−ℓ(x)p(x)=2^{-\ell(x)} がすべての記号で成り立つので、定理 1.5.7 の等号の場合にあたる。

(2) 固定長符号の平均符号長は 22 ビットで、下界との差は 0.250.25 ビット。固定長符号は qC=u=(14,14,14,14)q_C=u=(\tfrac14,\tfrac14,\tfrac14,\tfrac14) を見込んでいて、完全な符号(K=1K=1)なので、(1.5.5) から差はちょうど D(p ∥ u)/ln⁡2D(p\,\|\,u)/\ln2 である。実際 D(p ∥ u)/ln⁡2=12log⁡22+14log⁡21+18log⁡212⋅2=12−14=0.25D(p\,\|\,u)/\ln2=\tfrac12\log_2 2+\tfrac14\log_21+\tfrac18\log_2\tfrac12\cdot2=\tfrac12-\tfrac14=0.25 ビットとなり一致する。

(3) 平均符号長は 12⋅3+14⋅3+18⋅2+18⋅1=2.625\tfrac12\cdot3+\tfrac14\cdot3+\tfrac18\cdot2+\tfrac18\cdot1=2.625 ビットで、下界との差は 0.8750.875 ビット。この符号は qC=(18,18,14,12)q_C=(\tfrac18,\tfrac18,\tfrac14,\tfrac12) を見込んだ完全な符号なので、差は D(p ∥ qC)/ln⁡2=12log⁡24+14log⁡22+18log⁡212+18log⁡214=1+14−18−14=0.875D(p\,\|\,q_C)/\ln2=\tfrac12\log_24+\tfrac14\log_22+\tfrac18\log_2\tfrac12+\tfrac18\log_2\tfrac14=1+\tfrac14-\tfrac18-\tfrac14=0.875 ビットに等しい。最も出やすい記号に最も長い符号語を当てたので、一様分布を見込んだ (2) よりも代価が大きい。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ