12.4 算術符号

補題 12.3.2 は,符号長の組を一つ決めると上の分布が定まり,冗長度がそのと真の分布との隔たりで書けることを述べていた.本節は逆をたどる.上の分布を先に決め,そこから符号長の組を作って,その冗長度をで上から抑える.を決めるのに真の分布は要らないから,これは万能符号の作り方の一つになる.得られる評価は,補題 12.3.2 が冗長度を下から抑えたのと同じ相対エントロピーの形をしている.定理 12.3.4 の下界と並べれば,ミニマックス冗長度が上下から挟める.

作り方そのものは 定義 4.4.1 の Shannon 符号語長とほとんど同じで,を切り上げ,そこにビットを足す.足したビットは,符号語を累積分布から作るときに効く.本節が定義と主張として述べるのはこの符号語長のほうで,区間を細分して符号語そのものを作る手続きは,地の文で述べるにとどめる.順序立てるため,まず文字ごとの符号として調べ,そのあとでアルファベットをにとる.

1 文字ごとの符号語長

定義 12.4.1(Shannon–Fano–Elias 符号語長). を空でない有限アルファベット,上の分布ですべてのを満たすものとする.定義 4.4.1 の Shannon 符号語長(𝐷 =2,分布)として

FE(𝑎):=S(𝑎)+1=log21𝑝(𝑎)+1

と定め,Shannon–Fano–Elias 符号語長 と呼ぶ.

との違いはビットだけで,そのビットは符号語を次のように作ることを見込んで足してある.の文字に順序を入れ,各文字までの確率を足し上げた値(累積分布)を目盛りとして並べると,区間が文字ごとに幅の区間に分かれる.文字には,その区間の中点を二進小数に展開し,先頭桁で打ち切ったものを割り当てる.打ち切りで落ちる量は未満であり,4.4 節が既知とした天井関数の性質よりだからで,打ち切った値は中点から区間の幅の半分より近いところにあっての区間から出ない.同じ勘定で,打ち切った値にを足してもの区間の右端を越えない.打ち切った値を語頭にもつ二進小数は,打ち切った値以上で,それにを足した値より小さいものに限るから,どれもの区間に落ちる.別の文字の符号語は,二進小数として読むとその文字の区間に落ちていて,文字ごとの区間は互いに交わらないから,の符号語を語頭にもつことはない.これが語頭条件である.桁で打ち切ると同じ見積もりがまでしか効かず,区間から出ないことがこの勘定からは出てこない.足したビットはその差である.符号語を区間の中の数として扱うこの見方が,算術符号という名前の由来である.12.2 節で述べた方針のとおり,この構成も長さの由来を説明したもので,本節が使う符号の存在は 系 12.4.4定理 4.2.2 から与える.足したビットと引き換えに何が得られるかは,アルファベットをにとったところで見る.

形式化: sfeLength (ソース)

形式化上の注記. 形式化は符号語長の組だけを通していて,累積分布を二進小数に展開して符号語を作る構成は避けてある.上に述べた区間による構成に対応する宣言は無い.

命題 12.4.2. を空でない有限アルファベット,上の分布ですべてのを満たすものとする.定義 12.4.1 の Shannon–Fano–Elias 符号語長とすると

𝑎X2FE(𝑎)1

である.

証明. だからであり,

𝑎X2FE(𝑎)=12𝑎X2S(𝑎)

となる.右辺の和は,命題 4.4.2𝐷 =2,分布に当てて以下だから,全体は以下で,とくに以下である.

形式化: sfeLength_kraft_le_one (ソース)

の Kraft 和は,命題 12.4.2 の証明で見たとおりのときのちょうど半分である.4.2 節の木の言葉でいえば,ビット足すことで符号語に使える場所が半分になり,残りは少なくとも半分が空いたまま残る.次の定理は,その代わりに平均符号長がどうなるかを,エントロピーとの比較で述べる.

定理 12.4.3. を空でない有限アルファベット,上に分布をもつ確率変数で,すべてのを満たすものとする.定義 12.4.1 の Shannon–Fano–Elias 符号語長とすると

𝐻(𝑋)𝑎X𝑝(𝑎)FE(𝑎)𝐻(𝑋)+2

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

証明. 左側を示す.以上の整数値をとるからもそうであり,命題 12.4.2 よりについて Kraft の不等式を満たす.よって 定理 4.3.2𝐷 =2,確率変数に当ててを得る.本章は底をにとっているのでである.

右側に移る.だから

𝑎X𝑝(𝑎)FE(𝑎)=𝑎X𝑝(𝑎)S(𝑎)+1

である.右辺の和に 定理 4.4.4 を同じ設定に当てると未満だから,全体は未満であり,とくに以下である.

形式化: arithmeticCode_expected_length_bounds (ソース)

幅を 定理 4.4.4 と比べておく.あちらは Shannon 符号語長について以上未満という幅の評価だった.定理 12.4.3 の幅はで,ビット広い.広がったぶんは 定義 12.4.1 で足したビットそのもので,定理 12.4.3 の証明が見たとおり,平均符号長はのときよりつねにちょうどビット大きい.文字ごとに符号語を作るかぎり,このビットは毎回払うことになる.

系 12.4.4. を空でない有限アルファベット,上の分布ですべてのを満たすものとする.このとき上の二元語頭符号で,各の符号語長が 定義 12.4.1に等しいものが存在する.

証明. よりだからであり,以上の整数である.命題 12.4.2 と合わせて,定理 4.2.2𝐷 =2,長さの組に当てればよい.

形式化: arithmeticCode_prefix_free (ソース)

足したビットのおかげで符号語長がどれも以上になるので,系 4.4.3 が Shannon 符号語長について同じことを述べるのに文字以上であることを要したのに対し,系 12.4.4 はそれを要さない.

系 12.4.5. を空でない有限アルファベット,上の分布ですべてのを満たすものとする.このとき上の一意復号可能な二元符号で,各の符号語長が 定義 12.4.1に等しいものが存在する.

証明. 系 12.4.4 がその長さの二元語頭符号を与える.よりだからであり,定義 4.1.1 よりはどのについても空でない.よって 命題 4.1.3 よりは一意復号可能である.

形式化上の注記. 系 12.4.5 に対応する単独の宣言は無い.その長さの語頭符号が存在することは arithmeticCode_prefix_free,語頭で符号語が空でない写像が一意復号可能であることは arithmeticCode_unique_decodable (InformationTheory/Shannon/ArithmeticCoding.lean) が述べていて,前者が与える符号は符号語長がに等しく,それは以上だから後者の仮定を満たす.二つを合わせれば 系 12.4.5 が得られる.

読む側に要るのは,符号語をつないだ本の列から元の文字の列が一つに定まることであって(4.1 節),読みながらその場で区切れることはそれより強い.12.1 節が長さの組だけを見て済ませられる根拠に挙げたのは,その弱いほうの条件まで許しても長さの組は Kraft の不等式を満たすこと(定理 4.5.1)で,系 12.4.5 はその逆向きにあたり,が弱いほうの条件だけで見ても実現されることを言っている.

系列に当てる

ここまでは文字ごとの話だった.定義 12.4.1 はアルファベットを何にとってもよいので,を一つのアルファベットと見て,その上の分布に当てれば,系列の全体に一つの符号語が付く.区間の見方でいえば,を最初の文字で分け,その中をさらに次の文字で分け,と回細分して得た区間がに対応し,その区間を指す二進小数が符号語になる.こうすると 定理 12.4.3ビットは系列本あたりの量になり,文字あたりに直せばである.文字ごとに符号語を作れば毎回払っていたビットも,系列をまとめれば文字あたりビットになる.

区間の見方がここで効く.符号語を得る道は二つある.一つは 系 12.4.4に当てることで,定理 4.2.2 の証明が与える手続きは,アルファベットの文字を符号語長の順に並べ,より前にあるものすべての寄与を足し上げての符号語を決める.アルファベットがのとき,この並べ上げは本の系列にわたる.もう一つが区間による構成で,こちらは回細分するだけでの区間を決める.各段で要るのは,そこまでに読んだ文字で条件づけた次の文字の確率だけだから,文字ずつの条件付き確率の積の形で与えられていれば,を先頭から読みながら区間を狭めていける.各段の目盛りを作るのに足し合わせるのはの文字についての和で,段を通しても個の値で済む.定義 12.4.1 で足したビットは,この細分で得た区間の中に符号語を収めるための代金であり,文字あたりに直せば上に見たである.

形式化上の注記(本節共通). 定義 12.4.1命題 12.4.2定理 12.4.3系 12.4.4 は,どれも空でない有限アルファベットについて述べてあり,形式化の側も同じ一般性で書かれているので,アルファベットをにとった場合もその宣言が覆っている.系 12.4.5 の合成に使う二つの宣言も同じ一般性で書かれている.いっぽう区間による構成に対応する宣言は,アルファベットをにとった場合にも無い.

ただし 定理 12.4.3 が測っているのは,符号を作るのに使った分布そのもので平均した符号長である.万能符号で問題になるのは真の分布で平均した符号長のほうで,と違うと,二つが一致するとはかぎらない.次の定理は,その食い違いのぶんが相対エントロピーで抑えられることを述べる.

定理 12.4.6(信じた分布で符号化したときの冗長度). 定義 12.1.1 の設定でとし,上の分布ですべてのを満たすものとする.

𝑛(𝑥):=log21𝑞𝑛(𝑥)+1(𝑥X𝑛)

と定めると,定義 12.1.1 の意味で長さの符号長の組であり,どのについても

Δ𝑛(𝑛,𝜃)1𝑛𝐷(𝑃𝑛𝜃𝑞𝑛)+2𝑛

である(定義 12.1.2 の冗長度,1.6 節の相対エントロピー).

証明. は空でないからも空でなく,は全点で正だから,はアルファベットと分布について 定義 12.4.1 が定める Shannon–Fano–Elias 符号語長にほかならない.よりだから切り上げも以上で,以上の整数である.Kraft の不等式は 命題 12.4.2に当てて得られる.よっては長さの符号長の組である.

冗長度を評価する.4.4 節が既知とした天井関数の性質より

𝑛(𝑥)<log21𝑞𝑛(𝑥)+2

である.をとり,両辺にを掛けてについて足すと,より

𝑥X𝑛𝑃𝑛𝜃({𝑥})𝑛(𝑥)<𝑥X𝑛𝑃𝑛𝜃({𝑥})log21𝑞𝑛(𝑥)+2

となる.両辺からを引き,右辺の二つの和をまとめる.は全点で正だからも全点で正であり,も全点で正だから,対数の中身はつねに正で

𝑥X𝑛𝑃𝑛𝜃({𝑥})𝑛(𝑥)𝐻(𝑃𝑛𝜃)<𝑥X𝑛𝑃𝑛𝜃({𝑥})log2𝑃𝑛𝜃({𝑥})𝑞𝑛(𝑥)+2

である.右辺の和は 1.6 節の定義そのものでに等しい.両辺をで割ると,定義 12.1.2 より左辺はであり,主張の不等式が従う.

形式化上の注記. 定理 12.4.6 に対応する単独の宣言は無い.が長さの符号長の組であるという前半は,sfeLength_kraft_le_one (InformationTheory/Shannon/ArithmeticCoding.lean) をアルファベットと分布に当てたものである.後半の冗長度の評価に対応する宣言は無い.expectedLength_shannon_lt_entropyD_add_one は符号長を作る分布と平均をとる分布が同じ場合の上界であり,entropyD_le_expectedLength_of_kraft (InformationTheory/Shannon/ShannonCode/Basic.lean) は任意の長さの組についての下界で,どちらも結論に相対エントロピーを含まないからである.

定理 12.4.6補題 12.3.2 の裏返しである.補題 12.3.2 は符号長の組から分布を作り,冗長度を下からで抑えた.定理 12.4.6 は分布から符号長の組を作り,冗長度を上からで抑える.行き来する向きが逆で,上乗せのは,切り上げのビットと 定義 12.4.1 で足したビットをで割ったものである.

系 12.4.7. 定義 12.1.1 の設定でとすると

𝐶(𝑊𝑛)𝑛Δ𝑛1𝑛inf𝑞𝑛 max𝜃Θ 𝐷(𝑃𝑛𝜃𝑞𝑛)+2𝑛

である.下限は上の全点で正の分布の全体,最大は有限集合の上でとる(定義 12.1.5 のミニマックス冗長度,定義 12.3.1 の通信路).

証明. 左側は 定理 12.3.4 そのものである.

右側を示す.上の全点で正の分布とし,定理 12.4.6 の符号長の組をとる.は長さの符号長の組だから 定義 12.1.5 の下限をとる範囲に入り,は有限だから

Δ𝑛max𝜃ΘΔ𝑛(𝑛,𝜃)1𝑛max𝜃Θ𝐷(𝑃𝑛𝜃𝑞𝑛)+2𝑛

である(第の不等号は,定理 12.4.6 の評価を各に当てて最大をとったものである).すなわち,どのについてもが成り立つ.

下限に移る.右辺の値の集合は空でなく(上の一様分布が一つの元を与える),定理 1.6.1 より各元は以上だから下に有界であり,下限は実数として定まる.左辺はに依らない定数で,その集合の下界だから,下限はそれ以上である.よってであり,移項してで割れば主張を得る.

上下の差は,の差にを足してで割ったものである.のほうは 定義 12.4.1 で足したビットと切り上げのビットから来ていて,で割ればを大きくとるにつれて消える.残るのは前の二つの量の差で,どちらも族の分布どうしの離れ具合を測っている.前者は上の分布を一つ選んで族の全体を代表させたときの最悪の隔たりであり,後者は 定理 12.3.4 の証明がその隔たりから取り出した量である.12.3 節で借りた冗長度–容量定理を認めれば,この二つの量は一致する.そのとき 系 12.4.7 の左右の端はどちらもから以内にあり,ミニマックス冗長度は通信路容量で上下から挟まれる.

残るのはをどう選ぶかである.真のが分からない以上,族のどれか一つを選ぶわけにはいかない.次の例は,族の分布を等しい重みで混ぜたものをにとる.これは 補題 12.3.3 の混合を,上の一様分布である場合にとったものにあたる.

例 12.4.8(二つの偏ったコインの混合で作った分布). 例 12.1.7 の族(X ={0,1}Θ ={1,2})でとし,

𝑞𝑛(𝑥):=12(𝑃𝑛1({𝑥})+𝑃𝑛2({𝑥}))(𝑥X𝑛)

とおく.上の全点で正の分布であり,定理 12.4.6から定める符号長の組とすると,どちらのについても

𝐷(𝑃𝑛𝜃𝑞𝑛)1,Δ𝑛(𝑛,𝜃)3𝑛

である(どちらもビットで測った値である).この上界は,どのでも 定理 12.2.4 が同じ族に与える上界より小さく,ではビットである.

証明. 上の全点で正の分布だから,の値は正で,総和はである.よって上の全点で正の分布であり,定理 12.4.6 が当たる.

相対エントロピーを抑える.をとると,の定義の右辺にはの項が含まれ,もう一方の項は非負だからである.したがってであり,両辺の対数をとってを得る.重みは非負で総和がだから,1.6 節の定義よりである.これを 定理 12.4.6 に入れるととなる.

上界どうしを比べる.この族ではだから,定理 12.2.4 の右辺はである.よりだから,分子は以上であり,より真に大きい.よってのほうが小さい.最後にではである.

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

同じ作り方は,族が二つでなくてもそのまま通る.の元をすべて等しい重みで混ぜればよい.

系 12.4.9. 定義 12.1.1 の設定でとし,

𝑞𝑛(𝑥):=1|Θ|𝜃Θ𝑃𝑛𝜃({𝑥})(𝑥X𝑛)

とおく.定理 12.4.6から定める符号長の組とすると,どのについても

Δ𝑛(𝑛,𝜃)log2|Θ|+2𝑛

であり,したがってである.さらに,各にこのを対応させた列は,族に対する万能符号である(定義 12.1.6).

証明. は空でない有限集合で,各上の全点で正の分布だから,の値は正で,総和はである.よって上の全点で正の分布であり,定理 12.4.6 が当たる.

相対エントロピーを抑える.をとると,の定義の右辺にはの項が含まれ,残りの項は非負だからである.したがってであり,両辺の対数をとってを得る.重みは非負で総和がだから,1.6 節の定義よりである.これを 定理 12.4.6 に入れると,主張の第の不等式を得る.

は長さの符号長の組だから 定義 12.1.5 の下限をとる範囲に入り,は有限だからであり,右辺はいま示した値以下である.

最後の主張に移る.に依らない有限の数だからであり,命題 12.1.3 よりである.はさみうちによりとなり,定義 12.1.6 の条件が満たされる.

形式化上の注記. 系 12.4.9 に対応する宣言は無い.定理 12.4.6 と同じ理由で,冗長度そのものが形式化されていないからである.

ととれば 例 12.4.8が戻る.系 12.4.9 の右辺は族の中身によらずだけで書けていて,に反比例してに向かう.系 12.2.5 が型による符号に与えた上界と比べると,族を固定してを大きくしていったときにの因子ぶん小さい(族の大きさがに比べて大きいところでは逆になる.|X| =2|Θ| =21000なら,系 12.4.9 の右辺はで,系 12.2.5 の右辺のより大きい).12.3 節は,この因子ぶんの隔たりが型による符号の緩みなのか下界の緩みなのかは決まらない,と書いた.本節の評価を足すと決まる.下界は 系 12.3.5 よりを超えず,ミニマックス冗長度そのものも 系 12.4.9 よりを超えないから,隔たりは上界の側にある.有限の族に対しては,族を見て混合を作れば文字あたりの損がの水準まで下がるのだから,系 12.2.5 の上界にあるの因子は,族の中身を見ないことの代金である.いっぽうという量はが有限であることに頼っていて,12.1 節が本章では扱わないと断った,偏りが連続に動く族には当てられない.型による符号の上界のほうは族の大きさを見ずに書けているので,がどれだけ大きくても同じ式のままである.

このを作るには族の分布がすべて要る.知らないのはだけで族そのものは分かっている,という 定義 12.1.1 の枠組みには収まっている.この文字ずつの積の形をしていないが,区間による構成に要る条件付き確率は文字ずつ出せる.そこまでに読んだ列で条件づけた次の文字の確率は,族の各分布がその文字に与える確率を,そこまでの列に族の各分布が与える値に比例する重みで平均したものだから,個の重みを文字ごとに更新していけばよく,族の側から要るのは,各と各文字についてのの値,すなわち個の値だけである.

ここまでに作った符号は,型によるものも混合によるものも,定義 12.1.1 の枠組みの中で測ってきた.そこに現れる文字ずつの積だから,前に出た文字が次の文字の出方に効く情報源は,族の中に初めから入っていない.第3章が扱った定常情報源には,そういう記憶のあるものが入っていて,そこで文字あたりの不確かさを測るのはエントロピーではなくエントロピーレートだった(定義 3.2.1).記憶のある情報源に対して,しかも族を用意せずに,文字あたりの符号長をエントロピーレートまで下げる符号はあるだろうか.次節は 定義 12.1.1 の枠組みそのものを離れ,分布を持ち出さずに符号を作る方法に移る.

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