相対エントロピーから情報と物理を組み立てる 第1部 第5章 §1.5.3 ★★★ 平均符号長を H(p)+D(p∥qC)−lnK と分ける恒等式1本から、下界・Shannon 符号・分布を取り違えた代価が全部出る
平均符号長の分解
第1部第3章(第1部第3章)で相対エントロピー
D(p∥q)=x∑p(x)lnq(x)p(x) ≥0(等号は p=q のときに限る)
を定義し、非負性を Jensen の不等式から示した。これを平均符号長に当てる。
定理 1.5.6(平均符号長の分解 ★★★)
任意の符号 C と情報源の分布 p について
(ln2)ℓˉ(C)=H(p)+D(p∥qC)−lnK(C)(1.5.5)
が成り立つ。H(p)=−∑xp(x)lnp(x) は情報源のエントロピー(nat)、qC と K(C) は定義 1.5.3 のものである。
証明
(1.5.3) から 2−ℓ(x)=K(C)qC(x) なので、(ln2)ℓ(x)=−ln(K(C)qC(x))=−lnK(C)−lnqC(x) である。p(x) を掛けて和をとると
(ln2)ℓˉ(C)=−lnK(C)−x∑p(x)lnqC(x)=−lnK(C)−x∑p(x)lnp(x)+x∑p(x)lnqC(x)p(x).
右辺の第2項が H(p)、第3項が D(p∥qC) である。
右辺の3つの項はそれぞれ別の量を測っている。H(p) は情報源だけで決まり、符号をどう作っても変わらない。D(p∥qC) は、符号が見込んだ分布 qC と実際の分布 p のずれである。−lnK(C) は、符号の木に使われていない枝があるぶんの無駄で、完全な符号なら 0 になる。後の2つはどちらも 0 以上なので、次の下界が出る。
定理 1.5.7(圧縮の下界 ★★★)
一意に復号できる任意の符号 C について
ℓˉ(C) ≥ ln2H(p)ビット(1.5.6)
が成り立つ。等号はすべての x で p(x)=2−ℓ(x) のときに限る。
証明
McMillan の不等式(定理 1.5.5)から K(C)≤1 なので −lnK(C)≥0。D(p∥qC)≥0 とあわせて (1.5.5) から (1.5.6) を得る。等号には K(C)=1 と D(p∥qC)=0、すなわち p=qC=2−ℓ が必要で、そのとき実際に等号が成り立つ。
等号が成り立つのは p(x) がすべて 2 の負べき(21、41、81、…)のときだけである。そうでない分布では、符号語の長さが整数であるため qC を p にぴったり合わせられず、わずかに H を上回る。どれだけ上回るかを抑えるために、p に合わせて長さを決めた符号を作る。
Shannon 符号と、分布を取り違えた代価
qC を p に近づけたいので、ℓ(x)=−log2p(x) と選びたいが、これは一般に整数でない。そこで切り上げる。
定理 1.5.8(Shannon 符号 ★★★)
分布 q に対して ℓ(x)=⌈−log2q(x)⌉ と長さを選ぶと、Kraft の不等式を満たすので語頭符号が作れる(q に合わせた Shannon 符号)。この符号を、実際には分布 p に従う情報源に使うと
ln2H(p)+D(p∥q) ≤ ℓˉ < ln2H(p)+D(p∥q)+1(1.5.7)
となる。とくに q=p に合わせれば H(p)/ln2≤ℓˉ<H(p)/ln2+1 である。
証明
ℓ(x)≥−log2q(x) から 2−ℓ(x)≤q(x) で、和をとれば K≤∑xq(x)=1。よって定理 1.5.4 から語頭符号を作ることができる。次に、−log2q(x)≤ℓ(x)<−log2q(x)+1 に p(x) を掛けて和をとると
−x∑p(x)log2q(x) ≤ ℓˉ < −x∑p(x)log2q(x)+1.
−∑xplnq=−∑xplnp+∑xpln(p/q)=H(p)+D(p∥q) を ln2 で割ったものが −∑xplog2q なので、(1.5.7) が出る。
(1.5.7) の読み方はこうである。情報源の分布を q だと思い込んで符号を作ると、実際の分布 p に合わせて作った場合に比べて、平均符号長がおよそ D(p∥q)/ln2 ビット長くなる(整数に切り上げる1ビット未満の差を除いて)。第1部第3章では D(p∥q) を2つの分布の「隔たり」として定義したが、ここでそれに操作的な意味が付いた。D(p∥q)/ln2 は、p に従うデータを q 用の符号で保存したときに1記号あたり余分にかかるビット数である。D が対称でない(D(p∥q)=D(q∥p))ことも、この読み方では自然で、「実際は p なのに q と思った」と「実際は q なのに p と思った」では、無駄になる符号語が違う。
この節の要点
- 平均符号長の分解 (ln2)ℓˉ=H(p)+D(p∥qC)−lnK(式 (1.5.5))。
- D≥0 と K≤1 から、圧縮の下界 ℓˉ≥H(p)/ln2 ビット。
- 分布を q と取り違えた代価は1記号あたり D(p∥q)/ln2 ビット。
例題 1.5.3 取り違えの代価をビットで数える ★★★
オリジナル4つの記号 a,b,c,d が確率 p=(21,41,81,81) で出る情報源を考える。
- H(p)/ln2 を求め、符号 (1.5.2)(長さ 1,2,3,3)の平均符号長と比べよ。
- 4つの記号に長さ 2 の符号語を1つずつ割り当てる固定長符号の平均符号長を求め、下界との差が D(p∥u)/ln2(u は一様分布)に等しいことを確かめよ。
- 長さを逆順の (3,3,2,1) にした符号の平均符号長を求め、下界との差を相対エントロピーで表せ。
解答
(1) H(p)/ln2=21⋅1+41⋅2+81⋅3+81⋅3=1.75 ビット。符号 (1.5.2) の平均符号長も 21⋅1+41⋅2+81⋅3⋅2=1.75 ビットで、下界に等しい。p(x)=2−ℓ(x) がすべての記号で成り立つので、定理 1.5.7 の等号の場合にあたる。
(2) 固定長符号の平均符号長は 2 ビットで、下界との差は 0.25 ビット。固定長符号は qC=u=(41,41,41,41) を見込んでいて、完全な符号(K=1)なので、(1.5.5) から差はちょうど D(p∥u)/ln2 である。実際 D(p∥u)/ln2=21log22+41log21+81log221⋅2=21−41=0.25 ビットとなり一致する。
(3) 平均符号長は 21⋅3+41⋅3+81⋅2+81⋅1=2.625 ビットで、下界との差は 0.875 ビット。この符号は qC=(81,81,41,21) を見込んだ完全な符号なので、差は D(p∥qC)/ln2=21log24+41log22+81log221+81log241=1+41−81−41=0.875 ビットに等しい。最も出やすい記号に最も長い符号語を当てたので、一様分布を見込んだ (2) よりも代価が大きい。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com