6.7 一般の通信路の容量

本章はここまで,通信路に記憶がないことを仮定してきた.定義 6.1.1 の積の形がそれで,各時刻の雑音がそれ以前の入出力に一切依存しない,という仮定である.この仮定は強い.実際の伝送路では雑音が固まって起きることがある.つまり,ある時刻に誤りが起きると,次の時刻でも起きやすい.第3章で情報源に記憶を許したのと同じことを,こんどは通信路の側で許したい.

最小のモデルを一つ見ておく.とし,雑音の列上のマルコフ情報源(定義 3.1.3)にとる.遷移確率を

Pr[𝑍𝑖+1=1𝑍𝑖=0]=0.05,Pr[𝑍𝑖+1=1𝑍𝑖=1]=0.55

とし,初期分布はその定常分布にとる.入力とは独立にこの列を走らせ,出力を(排他的論理和)で定める.の時刻が誤りの起きる時刻である.

各時刻だけを切り出して見ると,誤りの確率はで入力によらないから,これは反転確率の二元対称通信路(例 6.1.8)と区別がつかない.違いはブロックで見たときに出る.ある時刻に誤りが起きたと分かると,次の時刻に誤りが起きる確率はからへ跳ね上がる.誤りは 1 個ずつばらばらに現れるのではなく,続けて何個か固まって現れる.定義 6.1.1 の積の形は,まさにこの跳ね上がりを禁じている.

記憶を許すと,容量の定義そのものが立ち行かなくなる.定義 6.1.4 は通信路を 1 回使ったときの相互情報量を最大化していたが,記憶のある通信路では「1 回使う」という操作がそれ単独では定まらない.時刻の振る舞いが過去に依存するのだから,1 文字だけ切り出して測っても,その通信路が何を運べるかは分からない.

出口は素直である.1 文字で測れないなら,長さのブロックでまとめて測る.ブロック全体を1 つの大きな通信路(入力アルファベットが,出力アルファベットがの通信路)と見れば,定義 6.1.4 がそのまま当たって容量が定まる.あとはこれをで割って 1 文字あたりに直し,の極限をとればよい.本節ではこの定義を置き,それが記憶のない場合にはもとのに戻ることを確かめる.

ブロック通信路

定義 6.7.1(ブロック通信路). ブロック通信路 とは,各ブロック長に対して,入力語ごとに上の分布を与える対応のことをいう.定義 6.1.1 の通信路に対し

𝑊(𝑛)(𝑦𝑛𝑥𝑛):=𝑛1𝑖=0𝑊(𝑦𝑖𝑥𝑖)

と定めたブロック通信路を,積による延長 と呼ぶ.

形式化: ブロック通信路 BlockwiseChannel,積による延長 Channel.toBlockBlockwiseChannel.ofMemoryless (ソース)

定義 6.7.1定義 6.1.1 から落としたものは,ただ一つ,積の形である.各ごとにからへの条件付き分布が与えられるだけで,それらが 1 文字分の通信路から組み上がっているとは仮定しない.だから時刻をまたいで雑音が相関していてよいし,ブロック長ごとにまったく別の振る舞いをしていてもよい.記憶のない通信路は,積による延長という特別な場合として,この枠の中に入る.

極限としての容量

定義 6.7.2(ブロック通信路の容量). をブロック通信路とする.ブロック長ブロック容量 を,上の分布全体にわたる上限

𝐶𝑛(𝕎):=sup𝑝(𝑛)𝐼(𝑝(𝑛);𝑊(𝑛))

で定める(定義 6.1.2 を入力アルファベット,出力アルファベットに対して読んだもの).1 文字あたりに直した容量レート と呼ぶ.でこの列が収束するとき,その極限を

𝐶(𝕎):=lim𝑛1𝑛𝐶𝑛(𝕎)

と書く.

形式化: ブロック容量 BlockwiseChannel.capacityN (ソース),容量レート capacityRate と極限 capacity_lim (ソース)

で割るのは,が「回の使用で運べる量」だからである.定義 6.2.1 のレートがだったのと同じ割り算で,比べたいものを 1 回の使用あたりにそろえている.極限をとるのは,記憶のある通信路では短いブロックが不利になりうるからである.過去に依存する分だけ,ブロックの先頭では使える情報が少ない.を大きくすればその端の効果は薄まるので,長いブロックほど 1 文字あたりの取り分は良くなる見込みがある.どこまで良くなるかを聞いているのが極限である.

形式化上の注記. 極限が存在するかどうかは,一般のブロック通信路については自明でない.本書はその存在を証明しないので,定義 6.7.2 は収束する場合にだけを定めている.形式化のほうは極限をとる操作を無条件に定義していて,収束しないブロック通信路に対しては意味のない値を返す.以下で扱う積による延長の場合には,命題 6.7.3 が容量レートの列を決定するので,この食い違いは起きない.

記憶がない場合に戻ること

命題 6.7.3. を通信路(定義 6.1.1),をその積による延長(定義 6.7.1)とする.このときすべてのについて

1𝑛𝐶𝑛(𝕎)=𝐶(𝑊)

が成り立つ.とくに容量レートの列は定数で,に収束する.

証明. を固定し,を別々に示す.

上界を示す.上の分布を任意にとり,を結合分布に従う対とする.定義 6.7.1 よりは積の形だから,補題 6.4.6 よりを与えたとき出力は条件付き独立であり,各の条件付き分布はである.これは定理 1.8.5 が記憶のなさとして要求する二つの条件そのものだから,

𝐼(𝑋𝑛;𝑌𝑛)𝑛1𝑖=0𝐼(𝑋𝑖;𝑌𝑖)

である.補題 6.4.6 からはさらに,の第周辺分布をと書けば対の同時分布がであることも出る.よって命題 6.1.3 よりであり,定義 6.1.4 よりこれは以下である.したがってとなる.は任意だったから,は値の集合の上界であり,上限はそれ以下である.

下界に移る.定理 6.1.5 よりとなる入力分布をとり,と定める.このときは互いに独立でどれもに従い,積の形から,対は互いに独立でどれも同じ同時分布に従う.よって定理 1.5.3 より

𝐼(𝑋𝑛;𝑌𝑛)=𝑛𝐼(𝑋0;𝑌0)=𝑛𝐼(𝑝;𝑊)=𝑛𝐶(𝑊)

である.上限はこの値以上だからとなる.

二つを合わせてであり,で割れば主張を得る.定数列は自身の値に収束する.

形式化: ブロック容量の各の値 capacityN_ofMemoryless_eq (ソース)

形式化上の注記. 形式化は容量レートの側でも定数性を述べているが,そちらは「十分大きいで定数」という形の capacityRate_ofMemoryless_eventually_const (InformationTheory/Shannon/GeneralDMC/Basic.lean) で,閾値を主張に含めない.命題 6.7.3 の「すべてのについて」にそのまま対応するのは,ブロック容量の側の宣言である.

定理 6.7.4. を通信路(定義 6.1.1),をその積による延長(定義 6.7.1)とする.このときは定まり,

𝐶(𝕎)=𝐶(𝑊)

である.

証明. 命題 6.7.3 より容量レートの列は定数で,に収束する.よって定義 6.7.2 の極限は存在し,その値はである.

形式化: capacity_lim_eq_capacity_of_memoryless,容量レートの列がに収束することcapacity_lim_tendsto_of_memoryless (ソース)

一般化したら,もとの場所で値を確かめる. 定理 6.7.4 は驚きのない主張である.それでも確かめなければならない.定義を広げたとき,新しい定義がもとの場合にもとの値を返すことは保証されていないからである.もしが記憶のない通信路でと違う値を出したら,どちらかの定義が悪いということになり,6.1 節から 6.6 節までに積み上げたの操作的な意味(定理 6.3.7系 6.6.12 が両側から挟んだ意味)は新しい定義には引き継がれない.定理 6.7.4 は,その引き継ぎが起きていることの確認である.一般化の作法として,この確認は省けない.

証明の中身を見ると,二つの向きで効いた道具が違うことに気づく.上からの評価では定理 1.8.5 が,入力に相関を許しても 1 文字あたりの取り分は増えないと言っていた.下からの評価では定理 1.5.3 が,入力を独立にとれば取り分がちょうど倍になると言っていた.記憶のない通信路では,入力を相関させても得はしないし,独立にとれば損もしない.だからに正比例し,容量レートはによらない.記憶のある通信路でこの二つが崩れることが,極限を定義に持ち込まざるをえない理由である.

本章では三つの顔を見せた.定義 6.1.4 の最大化問題の値,定理 6.3.7系 6.6.12 が両側から挟んだ「誤りなく運べるレートの限界」,そして命題 6.6.2系 6.6.3 が描いた「どの入力記号からも等しく遠い出力分布までの隔たり」である.三つ目は最大化子を見分ける道具になり,それがそのまま強逆定理を動かした.フィードバックを許しても値が変わらず(系 6.5.5),ブロックで測り直しても値が変わらない(定理 6.7.4)ことまで確かめたので,は通信路そのものに属する量だと言ってよい.

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