12.2 型による万能符号

12.1 節は,族のどれが真かを知らずに符号を作る問題を,冗長度という一つの量に落とした.残っているのは,その量を族によらず小さくする符号長の組を実際に作ることである.手がかりは第11章にある.系列の型定義 11.1.1)はの中で各文字が何回出たかだけから決まり,真の分布を持ち出さずに計算できる.しかも 定理 11.1.8 が,型類の要素数を型のエントロピーで測っている.そこで,まず型を送り,次に型類の中で何番目かを送る,という二段構えの符号を考える.受け取る側は,前半で型を知り,後半でその型類の中の位置を知るので,二つを合わせれば系列が復元できる.

この構成のどこにもが現れないことが要点である.符号を作る側が見るのは送る系列だけで,族についての知識は使わない.それでいて,前半の長さは型の個数で決まり(型は多項式個しかない),後半の長さは型類の要素数で決まる(要素数は型のエントロピーで抑えられる)ので,符号長は自動的にその系列の型のエントロピーに近くなる.この節はその見積もりを最後まで書き下す.

第11章の道具を引く前に,底の違いを一度そろえておく.第11章の底を自然対数にとっているので,定理 11.1.8 の上界は,そこで測ったエントロピーをの肩に乗せた形をしている.自然対数で測ったエントロピーは,本章の底で測った倍だから

e𝑛𝐻(𝑃)loge2=2𝑛𝐻(𝑃)

であり,本章の底では 定理 11.1.8 の上界はと読める(は本章の底で測ったエントロピーである).底を取り替えても対数の値は正の定数倍しか変わらないので,第11章のほかの評価も同じように読み替えてよい.以下ではこの読み替えを断らずに使う.

二段符号の符号長

定義 12.2.1(型による二段符号の符号長). を空でない有限アルファベット,とする.の型を,長さの型の型類を(どちらも 定義 11.1.1)と書き,

T𝑛(𝑥):=|X|log2(𝑛+1)+log2T𝑛(ˆ𝑃𝑥)

と定める.型による二段符号の符号長 と呼ぶ.

項は型そのものを指すための長さである.長さの型は個以下しかない(命題 11.1.3)ので,型に通し番号を振ればビットあまりで書ける.第項は,型が決まったあとに型類の中の位置を指すための長さである.どちらも切り上げてあるのは,符号語長が整数でなければならないからで,天井関数とその性質4.4 節で既知としたとおりに本節でも使う.第項がに依らないのは,型を書くための場所を,どの系列についても同じだけ確保しているからである.

形式化上の注記. 型による二段符号の符号長に対応する宣言は無い.型と型類は 定義 11.1.1 の形式化がそのまま使えるが,それを符号長に組み上げた宣言は無い.

命題 12.2.2. を空でない有限アルファベット,とする.T𝑛定義 12.2.1)は 定義 12.1.1 の意味で長さの符号長の組であり,すべてのである.したがって 定理 4.2.2 より,上の二元語頭符号で,各の符号語長がに等しいものが存在する.

証明. と置く.よりであり,は空でないからで,である.天井関数の性質よりであり,第項は以上だからである.値が整数であることも天井関数の定義から従う.

Kraft の不等式に移る.どのもただ一つの型をもつ(定義 11.1.1)から,長さの型の型類はを重なりなく覆う.ならばなので,その上では一定である.よってが長さの型の全体をわたる和として

𝑥X𝑛2T𝑛(𝑥)=2𝐴𝑃T𝑛(𝑃)2log2|T𝑛(𝑃)|

と書ける.長さの型の型類は空でないからであり,天井関数の性質よりだから,和の各項は

T𝑛(𝑃)2log2|T𝑛(𝑃)|T𝑛(𝑃)2log2|T𝑛(𝑃)|=1

を満たす.項の個数は 命題 11.1.3 より以下である.またよりである.三つを合わせると和は以下になる.

最後に 定理 4.2.2 を,アルファベット𝐷 =2,長さの組に当てる.値が以上の整数であることと Kraft の不等式は上で見たとおりである.

項のが,型の個数を数えた 命題 11.1.3 の指数をそのまま切り上げた形になっているのが,Kraft の不等式が閉じる仕組みである.型ごとにという同じ大きさの場所を割り当て,その中を型類の要素で分け合う.型の個数が以下だから,全部足してもを超えない.なお,節のはじめに述べた二段の手続きそのものが語頭符号を与えることは,本書では確かめない.本章が扱うのは符号語長の組であり,その長さをもつ符号が存在することは 定理 4.2.2 に任せる(12.1 節で見たとおり,符号を作る問題は長さの組を選ぶ問題に置き換わっている).この方針は本章を通じてとるもので,各節で述べる構成は,符号そのものではなく長さの由来を説明したものである.命題 12.2.2 が与えるのも,この長さをもつ二元語頭符号が存在することである.

型のエントロピーの平均

補題 12.2.3. を空でない有限アルファベット,とし,上の分布,をその重の積分布とする.の型を定義 11.1.1)と書くと

𝑥X𝑛𝑃𝑛({𝑥})𝐻(ˆ𝑃𝑥)𝐻(𝑃)

である(定義 1.1.1 のエントロピー).

証明. 𝜑(𝑡) = 𝑡log2𝑡𝑡 0𝜑(0) :=0)と置くと,定義 1.1.1 よりである.も有限だから和の順序を入れ替えてよく

𝑥X𝑛𝑃𝑛({𝑥})𝐻(ˆ𝑃𝑥)=𝑎X 𝑥X𝑛𝑃𝑛({𝑥})𝜑(ˆ𝑃𝑥(𝑎))

となる.文字を固定して内側の和を評価する.上の分布だから重みは非負で総和がであり,点の定義域に入る.1.1 節で認めたの凹性のもと 補題 1.1.9 を当てると

𝑥X𝑛𝑃𝑛({𝑥})𝜑(ˆ𝑃𝑥(𝑎))𝜑(𝑥X𝑛𝑃𝑛({𝑥})ˆ𝑃𝑥(𝑎))

である.

内側の重心を求める.定義 11.1.1 よりで,となる位置の個数だから,位置ごとに数えると

𝑥X𝑛𝑃𝑛({𝑥})𝑁(𝑎𝑥)=𝑛1𝑖=0 𝑥:𝑥𝑖=𝑎𝑃𝑛({𝑥})=𝑛1𝑖=0𝑃(𝑎)=𝑛𝑃(𝑎)

である(の第成分の周辺分布はだから,内側の和はに等しい).よって重心はであり,上の不等式の右辺はになる.について足すと,右辺の和はであり,主張を得る.

補題 12.2.3 が言っているのは,型のエントロピーは平均すると真の分布のエントロピーを超えない,ということである.長さの系列を見て作った型は,真の分布のまわりで揺れている.揺れているぶんだけエントロピーは上にも下にも動きうるが,が凹であるために,平均をとると下側に寄る.二段符号の後半の長さは型類の要素数で決まり,それが型のエントロピーで抑えられているので,平均符号長を真の分布のエントロピーと比べるときに,この補題がちょうど必要な向きの不等式を与える.

冗長度の評価

定理 12.2.4(型による二段符号の冗長度). 定義 12.1.1 の設定でとすると,どのについても

Δ𝑛(T𝑛,𝜃)|X|log2(𝑛+1)+2𝑛

である(定義 12.2.1 の符号長の組,定義 12.1.2 の冗長度).

証明. 天井関数の性質定義 12.2.1 の二つの項に当てると

T𝑛(𝑥)<|X|log2(𝑛+1)+2+log2T𝑛(ˆ𝑃𝑥)

である.

型類の要素数を抑える.本章の底で読むと 定理 11.1.8 の上界はである.両辺のをとるとであり,ととって上の評価に入れると

T𝑛(𝑥)<|X|log2(𝑛+1)+2+𝑛𝐻(ˆ𝑃𝑥)

となる.

をとり,両辺にを掛けてについて足す.と,補題 12.2.3に当てた不等式から

𝑥X𝑛𝑃𝑛𝜃({𝑥})T𝑛(𝑥)<|X|log2(𝑛+1)+2+𝑛𝐻(𝑃𝜃)

である.いっぽうは分布の i.i.d. 情報源の長さのブロックの分布だから,補題 2.3.3 よりである.これを引いてで割ると,定義 12.1.2 より

Δ𝑛(T𝑛,𝜃)<|X|log2(𝑛+1)+2𝑛

となり,主張の不等式が従う.

形式化上の注記. 定理 12.2.4 に対応する宣言は無い.使う道具のうち,命題 11.1.3numTypes_le (InformationTheory/Shannon/Sanov/MultinomialLowerBound.lean) と,定理 11.1.8 の上界を与える typeClassByCount_card_le (InformationTheory/Shannon/Sanov/MultinomialLowerBound.lean),およびその量をに書き換える pow_div_prod_pow_eq_exp_n_entropyByCount (InformationTheory/Shannon/TypeClassLowerBound.lean) は在庫にあるが,そこから符号長の期待値を評価した宣言は無い.

系 12.2.5. 定義 12.1.1 の設定とする.どのについても

Δ𝑛|X|log2(𝑛+1)+2𝑛

である(定義 12.1.5 のミニマックス冗長度).右辺はにもにも依らず,に収束する.さらに,各定義 12.2.1)を対応させた列は,この族に対する万能符号である(定義 12.1.6).

証明. 命題 12.2.2 よりは長さの符号長の組だから,定義 12.1.5 の下限をとる範囲に入る.よってであり,は有限で,どのでも 定理 12.2.4 の評価が成り立つから,最大も同じ値以下である.

右辺がにもにも依らないことは式の形から見てとれる.収束は 補題 11.2.2 から出る.本章の底で読むとであり,に依らない有限の数だから第項はに収束する.第に収束する.

最後の主張に移る.いま見たとおりは右辺以下であり,命題 12.1.3 より以上である.右辺はに収束するから,はさみうちによりであり,定義 12.1.6 の条件が満たされる.

万能符号があること(定義 12.1.6)は,三つの主張が合わさって出ている.命題 12.2.2 が,が長さの符号長の組であること,すなわちこの長さをもつ二元語頭符号があることを与える.定理 12.2.4 が,その冗長度を族のどのについても同じ値で抑える.そして 系 12.2.5 が,その値がに収束することを述べ,三つを合わせて 定義 12.1.6 の条件を確かめている.族をどう与えてもという一つの符号長の組でこれが言え,しかもその上界は族の中身を見ずに書けている.型による二段符号が代償として払っているのは,例 12.1.7 の決めつけのような定数ではない.分布を知っている場合の冗長度は未満(例 12.1.4)だったから,払っているのはそのの因子を掛けたぶんであり,文字あたりで見ればとともに消える量である.

上界がに向かうのはが大きいところでの話で,短い系列では逆になる.両端を見ておく.

例 12.2.6(短い系列に当てる). X ={0,1}𝑛 =4とするとである(定義 12.2.1 の符号長).

証明.項はである.だからであり,切り上げはである.第項に移る.定義 11.1.1 よりの型はであり,その型類はがそれぞれ回現れる長さの二値系列の全体だから,要素数はの位置の選び方の数である(00110101011010011010の六つ).よりである.合わせてを得る.

形式化上の注記. 例 12.2.6 は形式化されていない.例 12.2.6 に付した計算が,この主張の保証のすべてである.

同じをそのまま書き写せばビットで済む(例 12.1.7).では,型を指すためのビットが系列そのものより長い.型による二段符号が得をするのは,この固定費に対して小さくなってからで,定理 12.2.4 の右辺がで割った形をしているのはそのためである.反対の端を見る.

例 12.2.7(二つの偏ったコイン(型による符号)). 例 12.1.7 の族でとすると,系 12.2.5 の右辺は

2log21001+21000=0.02193

ビットである.

証明. である.だから,右辺はである.

形式化上の注記. 例 12.2.7 は形式化されていない.例 12.2.7 に付した計算が,この主張の保証のすべてである.

数を並べると差がはっきりする.同じ族で,と決めつけたときの冗長度はビット以上であり(例 12.1.7),系列をそのまま書き写したときはビットだった.型による二段符号は,でそのどちらより小さいビット以下に収まる.どのが真かを知らないまま,知っている場合との差をビットを下回るところまで詰めたことになる.

上からの評価はこれで得られた.残るのは下からで,冗長度をこれ以上小さくできない理由がどこにあるかである.次節はそれを,族の中の分布どうしの隔たりを測る量として取り出す.

InformationTheory — 形式化検証つき情報理論教科書(レビュー版).数式は MathJax + AMS Euler で事前レンダリング.