12.2 型による万能符号
12.1 節は,族のどれが真かを知らずに符号を作る問題を,冗長度という一つの量に落とした.残っているのは,その量を族によらず小さくする符号長の組を実際に作ることである.手がかりは第11章にある.系列𝑥の型ˆ𝑃𝑥(定義 11.1.1)は𝑥の中で各文字が何回出たかだけから決まり,真の分布を持ち出さずに計算できる.しかも 定理 11.1.8 が,型類の要素数を型のエントロピーで測っている.そこで,まず型を送り,次に型類の中で何番目かを送る,という二段構えの符号を考える.受け取る側は,前半で型を知り,後半でその型類の中の位置を知るので,二つを合わせれば系列が復元できる.
この構成のどこにも𝑃𝜃が現れないことが要点である.符号を作る側が見るのは送る系列だけで,族についての知識は使わない.それでいて,前半の長さは型の個数で決まり(型は多項式個しかない),後半の長さは型類の要素数で決まる(要素数は型のエントロピーで抑えられる)ので,符号長は自動的にその系列の型のエントロピーに近くなる.この節はその見積もりを最後まで書き下す.
第11章の道具を引く前に,底の違いを一度そろえておく.第11章はlogの底を自然対数にとっているので,定理 11.1.8 の上界は,そこで測ったエントロピーをeの肩に乗せた形をしている.自然対数で測ったエントロピーは,本章の底で測った𝐻(𝑃)のloge2倍だから
e𝑛𝐻(𝑃)loge2=2𝑛𝐻(𝑃)であり,本章の底では 定理 11.1.8 の上界は|T𝑛(𝑃)| ≤2𝑛𝐻(𝑃)と読める(𝐻は本章の底で測ったエントロピーである).底を取り替えても対数の値は正の定数倍しか変わらないので,第11章のほかの評価も同じように読み替えてよい.以下ではこの読み替えを断らずに使う.
二段符号の符号長
定義 12.2.1(型による二段符号の符号長). Xを空でない有限アルファベット,𝑛 ≥1とする.𝑥 ∈X𝑛の型をˆ𝑃𝑥,長さ𝑛の型𝑃の型類をT𝑛(𝑃)(どちらも 定義 11.1.1)と書き,
ℓT𝑛(𝑥):=⌈|X|log2(𝑛+1)⌉+⌈log2∣T𝑛(ˆ𝑃𝑥)∣⌉と定める.ℓT𝑛を 型による二段符号の符号長 と呼ぶ.
第1項は型そのものを指すための長さである.長さ𝑛の型は(𝑛 +1)|X|個以下しかない(命題 11.1.3)ので,型に通し番号を振れば|X|log2(𝑛 +1)ビットあまりで書ける.第2項は,型が決まったあとに型類の中の位置を指すための長さである.どちらも切り上げてあるのは,符号語長が整数でなければならないからで,天井関数とその性質𝑡 ≤⌈𝑡⌉ <𝑡 +1は 4.4 節で既知としたとおりに本節でも使う.第1項が𝑥に依らないのは,型を書くための場所を,どの系列についても同じだけ確保しているからである.
命題 12.2.2. Xを空でない有限アルファベット,𝑛 ≥1とする.ℓT𝑛(定義 12.2.1)は 定義 12.1.1 の意味で長さ𝑛の符号長の組であり,すべての𝑥 ∈X𝑛でℓT𝑛(𝑥) ≥1である.したがって 定理 4.2.2 より,X𝑛上の二元語頭符号で,各𝑥の符号語長がℓT𝑛(𝑥)に等しいものが存在する.
証明. 𝐴 :=⌈|X|log2(𝑛 +1)⌉と置く.𝑛 ≥1よりlog2(𝑛 +1) ≥1であり,Xは空でないから|X| ≥1で,|X|log2(𝑛 +1) ≥1である.天井関数の性質より𝐴 ≥1であり,第2項は0以上だからℓT𝑛(𝑥) ≥1である.値が整数であることも天井関数の定義から従う.
Kraft の不等式に移る.どの𝑥もただ一つの型をもつ(定義 11.1.1)から,長さ𝑛の型の型類はX𝑛を重なりなく覆う.𝑥 ∈T𝑛(𝑃)ならばˆ𝑃𝑥 =𝑃なので,その上でℓT𝑛(𝑥) =𝐴 +⌈log2|T𝑛(𝑃)|⌉は一定である.よって𝑃が長さ𝑛の型の全体をわたる和として
∑𝑥∈X𝑛2−ℓT𝑛(𝑥)=2−𝐴∑𝑃∣T𝑛(𝑃)∣2−⌈log2|T𝑛(𝑃)|⌉と書ける.長さ𝑛の型の型類は空でないから|T𝑛(𝑃)| ≥1であり,天井関数の性質より⌈log2|T𝑛(𝑃)|⌉ ≥log2|T𝑛(𝑃)|だから,和の各項は
∣T𝑛(𝑃)∣2−⌈log2|T𝑛(𝑃)|⌉≤∣T𝑛(𝑃)∣2−log2|T𝑛(𝑃)|=1を満たす.項の個数は 命題 11.1.3 より(𝑛 +1)|X|以下である.また𝐴 ≥|X|log2(𝑛 +1)より2−𝐴 ≤(𝑛 +1)−|X|である.三つを合わせると和は1以下になる.
最後に 定理 4.2.2 を,アルファベットX𝑛,𝐷 =2,長さの組ℓT𝑛に当てる.値が1以上の整数であることと Kraft の不等式は上で見たとおりである.◼
第1項の𝐴が,型の個数を数えた 命題 11.1.3 の指数をそのまま切り上げた形になっているのが,Kraft の不等式が閉じる仕組みである.型ごとに2−𝐴という同じ大きさの場所を割り当て,その中を型類の要素で分け合う.型の個数が2𝐴以下だから,全部足しても1を超えない.なお,節のはじめに述べた二段の手続きそのものが語頭符号を与えることは,本書では確かめない.本章が扱うのは符号語長の組であり,その長さをもつ符号が存在することは 定理 4.2.2 に任せる(12.1 節で見たとおり,符号を作る問題は長さの組を選ぶ問題に置き換わっている).この方針は本章を通じてとるもので,各節で述べる構成は,符号そのものではなく長さの由来を説明したものである.命題 12.2.2 が与えるのも,この長さをもつ二元語頭符号が存在することである.
型のエントロピーの平均
補題 12.2.3. Xを空でない有限アルファベット,𝑛 ≥1とし,𝑃をX上の分布,𝑃𝑛をその𝑛重の積分布とする.𝑥 ∈X𝑛の型をˆ𝑃𝑥(定義 11.1.1)と書くと
∑𝑥∈X𝑛𝑃𝑛({𝑥})𝐻(ˆ𝑃𝑥)≤𝐻(𝑃)である(𝐻は 定義 1.1.1 のエントロピー).
証明. 𝜑(𝑡) = −𝑡log2𝑡(𝑡 ≥0,𝜑(0) :=0)と置くと,定義 1.1.1 より𝐻(ˆ𝑃𝑥) =∑𝑎∈X𝜑(ˆ𝑃𝑥(𝑎))である.XもX𝑛も有限だから和の順序を入れ替えてよく
∑𝑥∈X𝑛𝑃𝑛({𝑥})𝐻(ˆ𝑃𝑥)=∑𝑎∈X ∑𝑥∈X𝑛𝑃𝑛({𝑥})𝜑(ˆ𝑃𝑥(𝑎))となる.文字𝑎 ∈Xを固定して内側の和を評価する.𝑃𝑛はX𝑛上の分布だから重み𝑃𝑛({𝑥})は非負で総和が1であり,点ˆ𝑃𝑥(𝑎)は𝜑の定義域[0,∞)に入る.1.1 節で認めた𝜑の凹性のもと 補題 1.1.9 を当てると
∑𝑥∈X𝑛𝑃𝑛({𝑥})𝜑(ˆ𝑃𝑥(𝑎))≤𝜑(∑𝑥∈X𝑛𝑃𝑛({𝑥})ˆ𝑃𝑥(𝑎))である.
内側の重心を求める.定義 11.1.1 よりˆ𝑃𝑥(𝑎) =𝑁(𝑎 ∣𝑥)/𝑛で,𝑁(𝑎 ∣𝑥)は𝑥𝑖 =𝑎となる位置𝑖の個数だから,位置ごとに数えると
∑𝑥∈X𝑛𝑃𝑛({𝑥})𝑁(𝑎∣𝑥)=𝑛−1∑𝑖=0 ∑𝑥:𝑥𝑖=𝑎𝑃𝑛({𝑥})=𝑛−1∑𝑖=0𝑃(𝑎)=𝑛𝑃(𝑎)である(𝑃𝑛の第𝑖成分の周辺分布は𝑃だから,内側の和は𝑃(𝑎)に等しい).よって重心は𝑃(𝑎)であり,上の不等式の右辺は𝜑(𝑃(𝑎))になる.𝑎について足すと,右辺の和は∑𝑎𝜑(𝑃(𝑎)) =𝐻(𝑃)であり,主張を得る.◻
補題 12.2.3 が言っているのは,型のエントロピーは平均すると真の分布のエントロピーを超えない,ということである.長さ𝑛の系列を見て作った型は,真の分布のまわりで揺れている.揺れているぶんだけエントロピーは上にも下にも動きうるが,𝜑が凹であるために,平均をとると下側に寄る.二段符号の後半の長さは型類の要素数で決まり,それが型のエントロピーで抑えられているので,平均符号長を真の分布のエントロピーと比べるときに,この補題がちょうど必要な向きの不等式を与える.
冗長度の評価
証明. 天井関数の性質⌈𝑡⌉ <𝑡 +1を 定義 12.2.1 の二つの項に当てると
ℓT𝑛(𝑥)<|X|log2(𝑛+1)+2+log2∣T𝑛(ˆ𝑃𝑥)∣である.
型類の要素数を抑える.本章の底で読むと 定理 11.1.8 の上界は|T𝑛(𝑃)| ≤2𝑛𝐻(𝑃)である.両辺のlog2をとるとlog2|T𝑛(𝑃)| ≤𝑛 𝐻(𝑃)であり,𝑃 :=ˆ𝑃𝑥ととって上の評価に入れると
ℓT𝑛(𝑥)<|X|log2(𝑛+1)+2+𝑛𝐻(ˆ𝑃𝑥)となる.
𝜃 ∈Θをとり,両辺に𝑃𝑛𝜃({𝑥})を掛けて𝑥について足す.∑𝑥𝑃𝑛𝜃({𝑥}) =1と,補題 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.2 よりℓT𝑛は長さ𝑛の符号長の組だから,定義 12.1.5 の下限をとる範囲に入る.よってΔ∗𝑛 ≤max𝜃Δ𝑛(ℓT𝑛,𝜃)であり,Θは有限で,どの𝜃でも 定理 12.2.4 の評価が成り立つから,最大も同じ値以下である.
右辺がΘにも𝑃𝜃にも依らないことは式の形から見てとれる.収束は 補題 11.2.2 から出る.本章の底で読むとlog2(𝑛 +1)/𝑛 →0であり,|X|は𝑛に依らない有限の数だから第1項は0に収束する.第2項2/𝑛も0に収束する.
最後の主張に移る.いま見たとおりmax𝜃Δ𝑛(ℓT𝑛,𝜃)は右辺以下であり,命題 12.1.3 より0以上である.右辺は0に収束するから,はさみうちによりmax𝜃Δ𝑛(ℓT𝑛,𝜃) →0であり,定義 12.1.6 の条件が満たされる.◼
万能符号があること(定義 12.1.6)は,三つの主張が合わさって出ている.命題 12.2.2 が,ℓT𝑛が長さ𝑛の符号長の組であること,すなわちこの長さをもつ二元語頭符号があることを与える.定理 12.2.4 が,その冗長度を族のどの𝜃についても同じ値で抑える.そして 系 12.2.5 が,その値が𝑛 →∞で0に収束することを述べ,三つを合わせて 定義 12.1.6 の条件を確かめている.族をどう与えてもℓT𝑛という一つの符号長の組でこれが言え,しかもその上界は族の中身を見ずに書けている.型による二段符号が代償として払っているのは,例 12.1.7 の決めつけのような定数ではない.分布を知っている場合の冗長度は1/𝑛未満(例 12.1.4)だったから,払っているのはその1/𝑛にlog2𝑛の因子を掛けたぶんであり,1文字あたりで見れば𝑛とともに消える量である.
上界が0に向かうのは𝑛が大きいところでの話で,短い系列では逆になる.両端を見ておく.
例 12.2.6(短い系列に当てる). X ={0,1},𝑛 =4,𝑥 =0110とするとℓT4(𝑥) =8である(ℓT4は 定義 12.2.1 の符号長).
証明. 第1項は⌈2log25⌉である.24 =16 <25 =52 <32 =25だから4 <2log25 <5であり,切り上げは5である.第2項に移る.定義 11.1.1 より𝑥の型はˆ𝑃𝑥(0) =ˆ𝑃𝑥(1) =1/2であり,その型類は0と1がそれぞれ2回現れる長さ4の二値系列の全体だから,要素数は1の位置の選び方の数6である(0011,0101,0110,1001,1010,1100の六つ).22 =4 <6 ≤8 =23より⌈log26⌉ =3である.合わせて5 +3 =8を得る.◼
同じ𝑥をそのまま書き写せば4ビットで済む(例 12.1.7 のℓ′𝑛).𝑛 =4では,型を指すための5ビットが系列そのものより長い.型による二段符号が得をするのは,この固定費⌈|X|log2(𝑛 +1)⌉が𝑛に対して小さくなってからで,定理 12.2.4 の右辺が𝑛で割った形をしているのはそのためである.反対の端を見る.
例 12.2.7(二つの偏ったコイン(型による符号)). 例 12.1.7 の族で𝑛 =1000とすると,系 12.2.5 の右辺は
2log21001+21000=0.02193…ビットである.
証明. |X| =2である.log21001 =9.9672…だから,右辺は(2 ×9.9672… +2)/1000 =21.934…/1000である.◼
数を並べると差がはっきりする.同じ族で,𝜃 =1と決めつけたときの冗長度は2.535…ビット以上であり(例 12.1.7),系列をそのまま書き写したときは0.531…ビットだった.型による二段符号は,𝑛 =1000でそのどちらより小さい0.0219…ビット以下に収まる.どの𝜃が真かを知らないまま,知っている場合との差を0.022ビットを下回るところまで詰めたことになる.
上からの評価はこれで得られた.残るのは下からで,冗長度をこれ以上小さくできない理由がどこにあるかである.次節はそれを,族の中の分布どうしの隔たりを測る量として取り出す.
InformationTheory — 形式化検証つき情報理論教科書(レビュー版).数式は MathJax + AMS Euler で事前レンダリング.