6.3 ランダム符号化と達成可能性

前節までに,送るとはどういう操作かの定義(定義 6.2.1)と,辻褄の合う入出力の対を数える道具(定理 6.2.5定理 6.2.7)がそろった.残るのは符号を実際に作ることである.のとき,誤り確率がいくらでも小さい符号がある.これを示すには,そういう符号を一つ見つければよい.

ところが,良い符号を名指しで書き下すのは今でも難しい.Shannon が使ったのは,その難しさを迂回する手である.符号語をでたらめに選び,そうして作った符号の全体について誤り確率を平均する.平均が小さければ,平均以下の符号が少なくとも一つはある.それがどれかは分からないが,あることは分かる.存在だけが要るので,それで足りる.本節はこの筋を,2 歩に分けてたどる.1 歩目で平均誤り確率の小さい符号を作り,2 歩目で誤りの大きいメッセージを捨てて最大誤り確率に直す.

本節も 6.2 節の設定と仮定を引き継ぐ.ただし補題 6.3.5定理 6.3.7 では入力分布を動かすので,そこでは仮定を主張の中に書き込む.

ランダム符号帳

定義 6.3.1(符号帳と結合典型復号器). 𝑀 1𝑛 1とする.符号帳 とは,定義 6.2.1 の符号化写像のことである(復号器を伴わない符号語の並び,という意味でこう呼ぶ).符号帳に対する 結合典型復号器 を,受け取ったに対し

𝑑(𝑦𝑛):={𝑚(𝑐(𝑚),𝑦𝑛)𝐴(𝑛)𝜀 となる 𝑚 がただ一つのとき1それ以外のとき

で定める.符号帳とこの復号器を組にすれば,定義 6.2.1 のブロック通信路符号がひとつできる.

ランダム符号帳 とは,個の記号をすべて独立に入力分布から引いて作った符号帳のことをいう.すなわち符号帳が選ばれる確率はである.

復号規則は素朴である.受け取ったと辻褄の合う符号語をひとつ探し,ちょうど一つならそれを答える.見つからないときも二つ以上あるときも,あきらめてを返す(何を返しても誤りには変わりないので,返す値に意味はない).届いた出力にいちばん近い符号語を探すような,より賢い復号器も考えられるが,ここでは要らない.典型性という道具がすでに手元にあるので,それだけで足りる.

ランダム符号帳のほうが本節の要点である.符号語をでたらめに選ぶのは,良い符号の作り方としては乱暴に見える.しかしが大きければ,独立に引いた本の符号語はの中でたがいに遠く散らばり,辻褄がぶつかることがめったにない.定理 6.2.7 が測っていたのは,まさにそのぶつかりの確率だった.

形式化: 符号帳 Codebook,結合典型復号器 jointTypicalDecoder,両者を符号に束ねるcodebookToCode (ソース)

1 歩目:平均誤り確率の小さい符号を作る

補題 6.3.2. 𝑀 1𝑛 1とし,符号帳と結合典型復号器(定義 6.3.1)からできるブロック通信路符号を考える.任意のメッセージについて,を送ったときの出力の分布をと書けば

𝑃𝑒(𝑚)Pr𝑚[(𝑐(𝑚),𝑌𝑛)𝐴(𝑛)𝜀]+𝑚𝑚Pr𝑚[(𝑐(𝑚),𝑌𝑛)𝐴(𝑛)𝜀].

証明. を受け取ったときに誤りが起きる,すなわちだとする.もしであって,かつのどれについてもならば,定義 6.3.1 の条件を満たす添字はただ一つなのでとなり,誤りは起きない.したがって誤りが起きるは,であるか,またはとなるが存在するかのいずれかを満たす.前者の集合と,後者のごとの集合との合併に誤りの事象が含まれるので,確率の劣加法性から主張の右辺で押さえられる.

形式化: errorProbAt_le_E1_plus_E2 (ソース)

不等式の二つの項は,それぞれ定理 6.2.6定理 6.2.7 が待ち構えている形をしている.第 1 項は「送ったものと受け取ったものの辻褄が合わない」確率,第 2 項は「無関係な符号語が偶然辻褄を合わせてしまう」確率である.符号帳を固定したままではどちらも評価できない.が具体的にどの系列かに依るからである.そこで符号帳について平均する.

以下,無作為なものは,符号帳をどう引くかと通信路の雑音の二つである.は符号帳についてだけとる平均,は符号帳を固定したもとで雑音についてとる確率であり,6.2 節から引き継いだについてのは,入力をから引く段と雑音の段の両方を含む.

補題 6.3.3. 𝑀 1𝑛 1とする.ランダム符号帳について平均すると

𝔼𝑐[¯𝑃𝑒(𝑐)]Pr[(𝑋𝑛,𝑌𝑛)𝐴(𝑛)𝜀]+(𝑀1)2𝑛(𝐼(𝑝;𝑊)3𝜀).

証明. 補題 6.3.2 を各について使い,について平均し,さらに符号帳について平均する.和の順序を入れ替えれば,右辺の二種類の項をそれぞれ符号帳について平均したものの和になる.

第 1 項を見る.ランダム符号帳のもとでは入力分布から引いた i.i.d. 系列であり,はそれを通信路に通した出力である.つまり対の分布はの分布そのもので,にも依らない.よってこの項の平均はに等しい.

第 2 項に移る.とする.符号語は互いに独立に引かれているから,とも,したがってとも独立である.しかもの分布はの分布に等しい.よって対定理 6.2.7そのものであり,この項の平均は以下である.の個数は個だから,和は以下である.

形式化: random_codebook_average_le (ソース)

形式化上の注記. 「符号帳について平均する」一行は,形式化では符号帳の空間の上の積測度に対する和の入れ替えになる.本文がと符号帳の二重の平均を一度に入れ替えているところが,あちらでは二つの補題に分かれている.

補題 6.3.4. を実数とする.ランダム符号帳の平均がを満たすなら,を満たす符号帳が少なくとも一つ存在する.

証明. そのような符号帳がないとすると,すべての符号帳である.符号帳の選ばれる確率は非負で,全体にわたる総和は 1 だから,それを重みとする平均は

𝔼𝑐[¯𝑃𝑒(𝑐)]=𝑐Pr[𝑐]¯𝑃𝑒(𝑐)>𝑐Pr[𝑐]𝐵=𝐵

となって仮定に反する.

形式化: exists_codebook_le_avg (ソース)

補題 6.3.4 が確率的手法の全体である.平均を計算しただけで,名指しできない符号の存在が出てくる.実際に良い符号を手に入れたわけではない.というのも,どの符号帳が当たりかは,この議論からは何も分からないからである.

以下,レートは正とする.,すなわちメッセージが1 通りしかない符号にあたり,運べる情報がないので考える意味がない.

補題 6.3.5. 上の分布が全点で正であり,通信路もすべてのを満たすとする.に対し,あるがあって,ならばメッセージ数の長さのブロック通信路符号で,平均誤り確率がを満たすものが存在する.

証明. とおき,としてランダム符号帳を考える.補題 6.3.3補題 6.3.4 より,

¯𝑃𝑒(𝑐)Pr[(𝑋𝑛,𝑌𝑛)𝐴(𝑛)𝜀]+(𝑀1)2𝑛(𝐼(𝑝;𝑊)3𝜀)

を満たす符号帳がとれる.右辺の二項がどちらも 0 に収束することを見ればよい.

第 1 項は定理 6.2.6 より 0 に収束する.第 2 項は,天井関数の定義からなので

(𝑀1)2𝑛(𝐼(𝑝;𝑊)3𝜀)<2𝑛(𝐼(𝑝;𝑊)3𝜀𝑅)

であり,の取り方からだから,これも 0 に収束する.よってを十分大きくとれば二項の和は未満にできる.

形式化: channel_coding_achievability (ソース)

2 歩目:平均から最大へ

補題 6.3.5 が与えるのは平均誤り確率の評価で,定義 6.2.2 が要求する最大誤り確率ではない.平均が小さくても,特定のメッセージだけがひどく誤っている可能性が残っている.これを直す手は乱暴だが確実である.誤りの大きいメッセージを,使うのをやめてしまうのである.

補題 6.3.6. 長さ,メッセージ数のブロック通信路符号がを満たすとする.このときとなるメッセージは個未満である.とくにとなるメッセージを個選んで残せば,メッセージ数,最大誤り確率未満の符号が得られる.

証明. とおく.誤り確率は非負だから

𝑀¯𝑃𝑒=𝑀𝑚=1𝑃𝑒(𝑚)𝑚𝑆𝑃𝑒(𝑚)|𝑆|2𝜁

であり,と合わせてを得る.よって補集合の要素数はより大きく,整数だから以上である.

そこから個のメッセージを選び,その符号語だけを残して番号をに付け替える.復号器は元のものをそのまま使い,捨てたメッセージを指したときはを返すことにする.新しい番号(元の番号)に対する誤りの事象は,なら元の誤りの事象と同じ集合であり,ならその部分集合である.符号語も通信路も変えていないので出力の分布は元のままで,したがって新しい符号の誤り確率は元の以下であり,選び方から未満である.

形式化: 捨てるメッセージの個数を数える段 errorProbAt_filter_card_bound,部分符号の構成Code.subcode と,その誤り確率が元を超えないこと Code.subcode_errorProbAt_le (ソース)

形式化上の注記. 補題 6.3.6 の全体に対応する単独の宣言はない.形式化はレートの帳尻合わせまで一緒にしたexists_subcode_maxError_lt_two_mul の形で持っていて,メッセージ数の下界と二つのレートの比較を仮定に置き,結論のメッセージ数も本文のではなく目標レートの側で書いている.本文の補題 6.3.6 は,errorProbAt_filter_card_boundCode.subcode_errorProbAt_le の合成で得られる.

証明の要点は一つだけである.平均が小さいなら,平均の何倍もある項は少ない.これはMarkov の不等式そのもので,第3章 3.5 節でも同じ形が使われている.ここでは確率変数のかわりにメッセージごとの誤り確率を,確率のかわりに個数を数えているだけである.半分捨てるのでメッセージ数は半減するが,をとってで割ればレートの目減りはビットにすぎず,で消える.捨てる操作の代償がこれだけで済む,というのがこの 2 歩目の勘所である.

通信路符号化定理(達成可能性)

1 歩目と 2 歩目がそろったので,主定理を述べる.主張は通信路に何の仮定も置かないが,本文が証明を付けるのはが全点で正の場合までである.仮定を外す段は証明の最後に道筋だけを示す.形式化のほうは仮定を置かない形に到達しているので,主張そのものは無条件の機械検証済みである.

定理 6.3.7(通信路符号化定理の達成可能性). 通信路をとる.このとき,あるがあって,ならばメッセージ数の長さのブロック通信路符号で,最大誤り確率がを満たすものが存在する.

証明. まずがすべてのを満たす場合を示す.

入力分布を全点で正にとる. 定理 6.1.5 よりとなるがある.上の一様分布をとし,に対しとおくと,は全点で正である.定理 6.1.5 よりは入力分布について連続だから,のときよりであり,を十分小さくとればにできる.が全点で正なので,結合分布も全点で正である.

レートに余裕をとって 2 歩を踏む. となるをとる.補題 6.3.5 を入力分布,レート,目標に対して使うと,あるがあって,ならばメッセージ数を満たす符号がとれる.これに補題 6.3.6 を当てると,メッセージ数,最大誤り確率未満の符号が得られる.あとはメッセージ数が足りることを見ればよい.ならば

𝑀2𝑀22𝑛𝑅2=2𝑛(𝑅𝑅)12𝑛𝑅2𝑛𝑅

であり,左辺は整数だから以上である.よってとしては,の大きいほうをとればよい.

「全点で正」の仮定を外す段は本書では証明しない. 一般のに対しては,をとって通信路をと摂動して全点で正にしてから上の議論を当て,の誤り確率の差を評価して戻す,という道筋をとる.差の評価は長さのブロックでの程度になるので,とともに小さくしなければならず,そのためには補題 6.3.5に依らずにとれることを確かめる必要がある.本節の評価をについて一様に取り直す作業になるので,本書ではここまでとする.

形式化: shannon_noisy_channel_coding_theorem_general (ソース)

形式化上の注記. 本文の証明と形式化の到達点は,最後の段だけ食い違う.形式化のshannon_noisy_channel_coding_theorem_general は通信路への仮定を持たない無条件の主張で,本文が証明を付けなかった摂動の段まで含んでいる.「全点で正」の仮定を残した中間段はshannon_noisy_channel_coding_theorem (InformationTheory/Shannon/ChannelCoding/ShannonTheorem.lean) にあり,本文の証明が到達したのはこちらである.

証明が使ったのは前節の三つだけである. 定理 6.2.6 が第 1 項を,定理 6.2.7 が第 2 項を消し,定理 6.2.5定理 6.2.7 の中で個数を数えていた.それ以外に効いたのは,平均から存在を取り出す補題 6.3.4 と,平均から最大へ渡す補題 6.3.6 という二つの初等的な議論だけである.という条件が入ったのは 1 か所,補題 6.3.5 の第 2 項が 0 に収束するところで,そこでレートと相互情報量の差が指数の肩に現れた.

定理 6.3.7 が言っているのは,雑音のある通信路でも,レートを未満に抑えるかぎり誤り確率はいくらでも小さくできる,ということである.誤りを減らそうとすればレートが 0 に落ちるという,6.1 節に書いた素朴な予想は外れている.繰り返しによる冗長さは1 記号ずつの多数決という形をとっていたが,ランダム符号化が入れる冗長さは長さのブロック全体に散らばっていて,を大きくするほど効率がよくなる.

数で見る. 例 6.1.8 の二元対称通信路を反転確率でとると,容量は約ビットだった.ここでとすれば,符号語は本(およそ本)で,どれも長さ 100 ビットである.符号帳を表として書き下すとビット,すなわち約 14 ペタバイトになる.定理 6.3.7 が主張しているのはこの規模の表がひとつ存在するということであって,それを見つける手順ではない.補題 6.3.4 が「平均以下のものが少なくとも一つある」としか言っていないことが,そのまま効いている.

達成レートに言い換える

定理 6.3.7 は「どの目標値についても,十分長いところに目標を満たす符号がある」という形をしている.いっぽう定義 6.2.2 の達成レートは,1 本の符号族について述べられている.両者を突き合わせるには,定理 6.3.7 が長さごとに与える符号を 1 本の族に組み立て,そのレートの列をそろえておく必要がある.

系 6.3.8. を通信路(定義 6.1.1)とし,とする.このときは達成レートである.すなわち

証明. 長さごとの符号を 1 本の族に貼り合わせる.について定理 6.3.7 を目標値に対して使い,得られると書く.とおけば,は広義単調増加でだからである.よってのときは空でない有限集合で,その最大値をと書ける.だから,長さについて定理 6.3.7 の符号がとれる.その符号はメッセージ数が以上で,最大誤り確率が未満である.の有限個については,メッセージ数 1 の符号(復号器はつねにを返す)をとる.このとき誤りの事象は空なので,最大誤り確率は 0 である.

メッセージ数をちょうどに削る. でとった符号のメッセージ数は以上でしかないので,レートの列をそろえるために削る.メッセージを個だけ選んで残し,番号をに付け替える.符号語はそのまま,復号器は元のものを使い,捨てたメッセージを指したときはを返すことにする.新しい番号(元の番号)に対する誤りの事象は,なら元の誤りの事象と同じ集合であり,ならその部分集合である.符号語も通信路も変えていないので出力の分布は元のままで,したがって最大誤り確率は増えない.以下,𝑀𝑛 :=2𝑛𝑅𝑛 𝑁1),𝑀𝑛 :=1𝑛 <𝑁1)とする.

誤り確率とレートの極限をとる. 最大誤り確率を見る.をとり,となるを選ぶと,ではだから最大誤り確率は未満であり,未満である.よってである.次にレートを見る.よりだから

2𝑛𝑅2𝑛𝑅<2𝑛𝑅+122𝑛𝑅

であり,をとってで割るとについてを得る.とくにレートの列は上に有界で,に収束する.残りのは有限個でだから,上に有界であることも下極限の値も変わらない.よってこの族は定義 6.2.2 の意味で達成可能で,その達成レートはである.

形式化上の注記. 系 6.3.8 に対応する宣言は形式化されていない.系 6.3.8 に付した証明が,この主張の保証のすべてである.

逆向きの主張,つまりを超えるレートでは誤り確率を 0 にできないことについては,まだ何も言えていない.系 6.3.8未満の正のレートをすべて含むことを示しただけで,の上限がちょうどであるためには,どんな符号を設計してもを超えられないという全称の主張が要る.それは 6.4 節で与える.第2章で達成可能性と逆定理が別の道具を要したのと同じ構図で,その道具はふたたびファノの不等式(定理 1.10.1)である.

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