出てくるもの (1):Huffman 符号
AI 生成・木下が未勉強
相対エントロピーから情報と物理を組み立てる 第1部 第5章 §1.5.4 ★★★ 平均符号長を最小にする符号の作り方。完全な符号の中で を最小にする を選ぶ手続きとして読める
Huffman の手続き
Shannon 符号は ビット未満を保証するが、最小とは限らない。平均符号長を本当に最小にする符号は、Huffman が与えた次の手続きで作れる1D. A. Huffman (1952), Proceedings of the IRE 40, 1098–1101.下の脚注へ。
定義 1.5.9(Huffman の手続き)
記号が 個あるとき、次を繰り返して符号の木を下から作る。
- 確率の最も小さい2つの記号(または節点)を選び、それらを子に持つ新しい節点を1つ作る。新しい節点の確率は2つの和とする。
- 選んだ2つを取り除き、新しい節点を加える。残りが1つ(根)になるまで 1 に戻る。
最後に、各節点から出る2本の枝に と を付ける。根から葉までの枝のラベルが符号語である。最小の確率が同じ値で並ぶときは、どれを選んでもよい。
例として、5つの記号が確率 で出る情報源を考える(図 1.5.2)。まず最小の と をまとめて の節点を作る。次に最小の2つは (記号 )と (今作った節点)で、まとめて 。残る 、、 のうち小さい と をまとめて 。最後に と をまとめて根になる。符号語は 、、、、 で、平均符号長は
である。下界は ビットで、差は ビットにすぎない。比べて、 に合わせた Shannon 符号の長さは で、平均符号長は ビットになる。
図 1.5.2 確率 の Huffman 符号の木。丸は手続きの途中で作った節点で、数字はその下の葉の確率の和。平均符号長は ビット、下界 は ビット。
Huffman 符号が最適である理由
補題 1.5.10(最適な符号の形)
記号を確率の大きい順に と並べる。平均符号長が最小の語頭符号のうちに、次の3つを満たすものがある。
- (i) なら (出やすい記号ほど符号語が短い)。
- (ii) 最も長い符号語は2つ以上あり、同じ長さである。
- (iii) 確率の最も小さい2つの記号 、 の符号語は、最後の1桁だけが違う(符号の木で兄弟の葉になる)。
証明
記号は有限個で、長さを 以下に限っても最小値は変わらない(それより長い符号語は木に分かれ道のない節点を含み、縮められる)ので、最小の平均符号長を実現する符号はある。その1つを とする。
(i) で なら、2つの符号語を入れ替えると平均符号長は だけ変わって減り、最小性に反する。
(ii) 最も長い符号語の葉に兄弟の葉が無いと、その親の節点からは枝が1本しか出ていない。最後の1桁を消しても語頭符号のままなので、平均符号長が減って最小性に反する。よって最も長い符号語の葉には兄弟の葉があり、兄弟は同じ長さである。
(iii) (i) から、最も長い深さの葉には確率の最も小さい記号を置ける(確率が同じものどうしの入れ替えは平均符号長を変えない)。(ii) から最も深い葉は兄弟の組で現れるので、兄弟の2枚に記号 、 を置き直せば、平均符号長を変えずに (iii) を満たす。
定理 1.5.11(Huffman 符号の最適性 ★★★)
Huffman の手続きで作った符号の平均符号長は、一意に復号できるすべての符号の平均符号長の最小値に等しい。
証明
記号の数 についての帰納法で示す。 では長さ が明らかに最小で、Huffman の手続きもこの長さを出す。 個の記号の分布 について、最小の2つ 、 を1つの記号にまとめた 個の分布 を考える。 の任意の語頭符号 から、まとめた記号の符号語の後ろに と を付けて の符号 を作ると、
となる。逆に、補題 1.5.10 の (iii) を満たす の符号は、兄弟の2枚の葉を親の節点にまとめれば の符号になり、同じ関係 (1.5.8) が成り立つ。 は符号によらない定数なので、(iii) を満たす の符号の中で を最小にすることは、 の符号の中で を最小にすることと同じである。補題から の最適な符号は (iii) を満たすものの中にあり、Huffman の手続きは最初の一手で を に縮め、残りは の Huffman 符号を作る。帰納法の仮定から の Huffman 符号は最適なので、 の Huffman 符号も最適である。McMillan の不等式により、一意に復号できる符号まで広げても最小値は変わらない。
Huffman 符号を で読む
最適な符号は完全である(補題の (ii) の議論で、枝が1本しか出ていない節点があれば縮められる)。したがって最適な符号では で、分解 (1.5.5) は になる。 は符号によらないので、平均符号長を最小にすることは、 の形の分布(各確率が の負べきで、和が )の中で、 を最小にするものを選ぶことと同じである。Huffman の手続きは、この離散的な最小化問題を、最小の2つをまとめる貪欲な操作の繰り返しで正確に解く。
この読み方では、Huffman 符号の平均符号長と下界の差(冗長度と呼ぶ)は、 と「最も近い の負べきの分布」との相対エントロピーそのものになる。図 1.5.2 の例では、 で、 ビットが差 に一致する。
冗長度は ビット未満だが、 そのものが小さい情報源では無視することはできない。 と が確率 、 で出る情報源では ビットなのに、記号が2つしかないので、どんな符号も長さ の符号語を2つ使うしかなく、平均符号長は ビットで、下界の2倍を超える。 は に固定されてしまい、 に近づける余地がない。記号を1つずつ符号にする限りこの差は縮まらず、縮めるには記号をまとめてから符号にする必要がある(1.5.5節)。
例題 1.5.4 3つの等確率の記号と、2つずつまとめた符号 ★★
オリジナル3つの記号が等確率 で出る無記憶情報源を考える。
- Huffman 符号を作り、平均符号長と下界 の差を求めよ。その差が に等しいことを確かめよ。
- 記号を2つずつまとめた 個の記号(確率はどれも )に Huffman 符号を作り、元の記号1つあたりの平均符号長と下界の差を求めよ。
解答
(1) 最小の2つ( と )をまとめて 、残りの と をまとめて根になる。長さは で、平均符号長は ビット。下界は ビットで、差は ビット。 なので
となり、差と一致する。
(2) 等確率の 個では、Huffman の手続きは確率 の組を に4回まとめ、残った と を にまとめる、と進む。最後にできる木は、深さ の葉が 枚、深さ の葉が 枚の完全な木になる(Kraft 和 )。等確率なので、どの記号をどの葉に置いても平均符号長は変わらず、 ビット。元の記号1つあたりは ビットで、下界との差は ビットに縮まる。2つずつまとめると、 の候補となる の負べきの分布が細かくなり、一様分布 に近いもの( と の組合せ)を選べるようになったので、差が小さくなった。
1 D. A. Huffman (1952), Proceedings of the IRE 40, 1098–1101.
木下の勉強ステータス
木下はまだこの記事を勉強していません。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com
← AI生成教科書『虎の巻』の記事一覧へ