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,𝜀 >0とする.符号帳 とは,定義 6.2.1 の符号化写像𝑐 :{1,…,𝑀} →X𝑛のことである(復号器を伴わない符号語の並び,という意味でこう呼ぶ).符号帳𝑐に対する 結合典型復号器 を,受け取った𝑦𝑛に対し
𝑑(𝑦𝑛):={𝑚(𝑐(𝑚),𝑦𝑛)∈𝐴(𝑛)𝜀 となる 𝑚 がただ一つのとき1それ以外のときで定める.符号帳とこの復号器を組にすれば,定義 6.2.1 のブロック通信路符号がひとつできる.
ランダム符号帳 とは,𝑀 ×𝑛個の記号𝑐(𝑚)𝑖をすべて独立に入力分布𝑝から引いて作った符号帳のことをいう.すなわち符号帳𝑐が選ばれる確率は∏𝑀𝑚=1∏𝑛−1𝑖=0𝑝(𝑐(𝑚)𝑖)である.
復号規則は素朴である.受け取った𝑦𝑛と辻褄の合う符号語をひとつ探し,ちょうど一つならそれを答える.見つからないときも二つ以上あるときも,あきらめて1を返す(何を返しても誤りには変わりないので,返す値に意味はない).届いた出力にいちばん近い符号語を探すような,より賢い復号器も考えられるが,ここでは要らない.典型性という道具がすでに手元にあるので,それだけで足りる.
ランダム符号帳のほうが本節の要点である.符号語をでたらめに選ぶのは,良い符号の作り方としては乱暴に見える.しかし𝑛が大きければ,独立に引いた2𝑛𝑅本の符号語はX𝑛の中でたがいに遠く散らばり,辻褄がぶつかることがめったにない.定理 6.2.7 が測っていたのは,まさにそのぶつかりの確率だった.
1 歩目:平均誤り確率の小さい符号を作る
補題 6.3.2. 𝑀 ≥1,𝑛 ≥1,𝜀 >0とし,符号帳𝑐と結合典型復号器(定義 6.3.1)からできるブロック通信路符号を考える.任意のメッセージ𝑚 ∈{1,…,𝑀}について,𝑚を送ったときの出力の分布をPr𝑚と書けば
𝑃𝑒(𝑚)≤Pr𝑚[(𝑐(𝑚),𝑌𝑛)∉𝐴(𝑛)𝜀]+∑𝑚′≠𝑚Pr𝑚[(𝑐(𝑚′),𝑌𝑛)∈𝐴(𝑛)𝜀].
証明. 𝑦𝑛を受け取ったときに誤りが起きる,すなわち𝑑(𝑦𝑛) ≠𝑚だとする.もし(𝑐(𝑚),𝑦𝑛) ∈𝐴(𝑛)𝜀であって,かつ𝑚′ ≠𝑚のどれについても(𝑐(𝑚′),𝑦𝑛) ∉𝐴(𝑛)𝜀ならば,定義 6.3.1 の条件を満たす添字は𝑚ただ一つなので𝑑(𝑦𝑛) =𝑚となり,誤りは起きない.したがって誤りが起きる𝑦𝑛は,(𝑐(𝑚),𝑦𝑛) ∉𝐴(𝑛)𝜀であるか,または(𝑐(𝑚′),𝑦𝑛) ∈𝐴(𝑛)𝜀となる𝑚′ ≠𝑚が存在するかのいずれかを満たす.前者の集合と,後者の𝑚′ごとの集合との合併に誤りの事象が含まれるので,確率の劣加法性から主張の右辺で押さえられる.◻
不等式の二つの項は,それぞれ定理 6.2.6 と定理 6.2.7 が待ち構えている形をしている.第 1 項は「送ったものと受け取ったものの辻褄が合わない」確率,第 2 項は「無関係な符号語が偶然辻褄を合わせてしまう」確率である.符号帳を固定したままではどちらも評価できない.𝑐(𝑚)が具体的にどの系列かに依るからである.そこで符号帳について平均する.
以下,無作為なものは,符号帳をどう引くかと通信路の雑音の二つである.𝔼𝑐は符号帳についてだけとる平均,Pr𝑚は符号帳を固定したもとで雑音についてとる確率であり,6.2 節から引き継いだ(𝑋𝑛,𝑌𝑛)についてのPrは,入力を𝑝から引く段と雑音の段の両方を含む.
補題 6.3.3. 𝑀 ≥1,𝑛 ≥1,𝜀 >0とする.ランダム符号帳について平均すると
𝔼𝑐[¯𝑃𝑒(𝑐)]≤Pr[(𝑋𝑛,𝑌𝑛)∉𝐴(𝑛)𝜀]+(𝑀−1)2−𝑛(𝐼(𝑝;𝑊)−3𝜀).
証明. 補題 6.3.2 を各𝑚について使い,𝑚について平均し,さらに符号帳について平均する.和の順序を入れ替えれば,右辺の二種類の項をそれぞれ符号帳について平均したものの和になる.
第 1 項を見る.ランダム符号帳のもとで𝑐(𝑚)は入力分布𝑝から引いた i.i.d. 系列であり,𝑌𝑛はそれを通信路に通した出力である.つまり対(𝑐(𝑚),𝑌𝑛)の分布は(𝑋𝑛,𝑌𝑛)の分布そのもので,𝑚にも依らない.よってこの項の平均はPr[(𝑋𝑛,𝑌𝑛) ∉𝐴(𝑛)𝜀]に等しい.
第 2 項に移る.𝑚′ ≠𝑚とする.符号語は互いに独立に引かれているから,𝑐(𝑚′)は𝑐(𝑚)とも,したがって𝑌𝑛とも独立である.しかも𝑐(𝑚′)の分布は𝑋𝑛の分布に等しい.よって対(𝑐(𝑚′),𝑌𝑛)は定理 6.2.7 の(˜𝑋𝑛,𝑌𝑛)そのものであり,この項の平均は2−𝑛(𝐼(𝑝;𝑊)−3𝜀)以下である.𝑚′ ≠𝑚の個数は𝑀 −1個だから,和は(𝑀 −1) 2−𝑛(𝐼(𝑝;𝑊)−3𝜀)以下である.◻
補題 6.3.4. 𝐵を実数とする.ランダム符号帳の平均が𝔼𝑐[¯𝑃𝑒(𝑐)] ≤𝐵を満たすなら,¯𝑃𝑒(𝑐) ≤𝐵を満たす符号帳𝑐が少なくとも一つ存在する.
証明. そのような符号帳がないとすると,すべての符号帳𝑐で¯𝑃𝑒(𝑐) >𝐵である.符号帳の選ばれる確率は非負で,全体にわたる総和は 1 だから,それを重みとする平均は
𝔼𝑐[¯𝑃𝑒(𝑐)]=∑𝑐Pr[𝑐]¯𝑃𝑒(𝑐)>∑𝑐Pr[𝑐]⋅𝐵=𝐵となって仮定に反する.◻
補題 6.3.4 が確率的手法の全体である.平均を計算しただけで,名指しできない符号の存在が出てくる.実際に良い符号を手に入れたわけではない.というのも,どの符号帳が当たりかは,この議論からは何も分からないからである.
以下,レートは正とする.𝑅 ≤0は⌈2𝑛𝑅⌉ =1,すなわちメッセージが1 通りしかない符号にあたり,運べる情報がないので考える意味がない.
補題 6.3.5. X上の分布𝑝が全点で正であり,通信路𝑊もすべての(𝑥,𝑦)で𝑊(𝑦 ∣𝑥) >0を満たすとする.0 <𝑅 <𝐼(𝑝;𝑊)と𝜁 >0に対し,ある𝑁があって,𝑛 ≥𝑁ならばメッセージ数𝑀 ≥⌈2𝑛𝑅⌉の長さ𝑛のブロック通信路符号で,平均誤り確率が¯𝑃𝑒 <𝜁を満たすものが存在する.
証明. 𝜀 :=(𝐼(𝑝;𝑊) −𝑅)/6 >0とおき,𝑀 :=⌈2𝑛𝑅⌉としてランダム符号帳を考える.補題 6.3.3 と補題 6.3.4 より,
¯𝑃𝑒(𝑐)≤Pr[(𝑋𝑛,𝑌𝑛)∉𝐴(𝑛)𝜀]+(𝑀−1)2−𝑛(𝐼(𝑝;𝑊)−3𝜀)を満たす符号帳𝑐がとれる.右辺の二項がどちらも 0 に収束することを見ればよい.
第 1 項は定理 6.2.6 より 0 に収束する.第 2 項は,天井関数の定義から𝑀 −1 <2𝑛𝑅なので
(𝑀−1)2−𝑛(𝐼(𝑝;𝑊)−3𝜀)<2−𝑛(𝐼(𝑝;𝑊)−3𝜀−𝑅)であり,𝜀の取り方から𝐼(𝑝;𝑊) −3𝜀 −𝑅 =(𝐼(𝑝;𝑊) −𝑅)/2 >0だから,これも 0 に収束する.よって𝑛を十分大きくとれば二項の和は𝜁未満にできる.◻
2 歩目:平均から最大へ
補題 6.3.5 が与えるのは平均誤り確率の評価で,定義 6.2.2 が要求する最大誤り確率ではない.平均が小さくても,特定のメッセージだけがひどく誤っている可能性が残っている.これを直す手は乱暴だが確実である.誤りの大きいメッセージを,使うのをやめてしまうのである.
補題 6.3.6. 長さ𝑛,メッセージ数𝑀′のブロック通信路符号が¯𝑃𝑒 <𝜁を満たすとする.このとき𝑃𝑒(𝑚) ≥2𝜁となるメッセージは𝑀′/2個未満である.とくに𝑃𝑒(𝑚) <2𝜁となるメッセージを⌈𝑀′/2⌉個選んで残せば,メッセージ数⌈𝑀′/2⌉,最大誤り確率2𝜁未満の符号が得られる.
証明. 𝑆 :={ 𝑚 :𝑃𝑒(𝑚) ≥2𝜁 }とおく.誤り確率は非負だから
𝑀′¯𝑃𝑒=𝑀′∑𝑚=1𝑃𝑒(𝑚)≥∑𝑚∈𝑆𝑃𝑒(𝑚)≥|𝑆|⋅2𝜁であり,¯𝑃𝑒 <𝜁と合わせて|𝑆| <𝑀′/2を得る.よって補集合の要素数は𝑀′/2より大きく,整数だから⌈𝑀′/2⌉以上である.
そこから⌈𝑀′/2⌉個のメッセージを選び,その符号語だけを残して番号を1,…,⌈𝑀′/2⌉に付け替える.復号器は元のものをそのまま使い,捨てたメッセージを指したときは1を返すことにする.新しい番号𝑗(元の番号𝑚𝑗)に対する誤りの事象は,𝑗 ≠1なら元の誤りの事象と同じ集合であり,𝑗 =1ならその部分集合である.符号語も通信路も変えていないので出力の分布は元のままで,したがって新しい符号の誤り確率は元の𝑃𝑒(𝑚𝑗)以下であり,選び方から2𝜁未満である.◻
証明の要点は一つだけである.平均が小さいなら,平均の何倍もある項は少ない.これはMarkov の不等式そのもので,第3章 3.5 節でも同じ形が使われている.ここでは確率変数のかわりにメッセージごとの誤り確率を,確率のかわりに個数を数えているだけである.半分捨てるのでメッセージ数は半減するが,logをとって𝑛で割ればレートの目減りは1/𝑛ビットにすぎず,𝑛 →∞で消える.捨てる操作の代償がこれだけで済む,というのがこの 2 歩目の勘所である.
通信路符号化定理(達成可能性)
1 歩目と 2 歩目がそろったので,主定理を述べる.主張は通信路に何の仮定も置かないが,本文が証明を付けるのは𝑊が全点で正の場合までである.仮定を外す段は証明の最後に道筋だけを示す.形式化のほうは仮定を置かない形に到達しているので,主張そのものは無条件の機械検証済みである.
定理 6.3.7(通信路符号化定理の達成可能性). 通信路𝑊と0 <𝑅 <𝐶(𝑊),𝜁 >0をとる.このとき,ある𝑁があって,𝑛 ≥𝑁ならばメッセージ数𝑀 ≥⌈2𝑛𝑅⌉の長さ𝑛のブロック通信路符号で,最大誤り確率が𝑃𝑒,max <𝜁を満たすものが存在する.
証明. まず𝑊がすべての(𝑥,𝑦)で𝑊(𝑦 ∣𝑥) >0を満たす場合を示す.
入力分布を全点で正にとる. 定理 6.1.5 より𝐼(𝑝∗;𝑊) =𝐶(𝑊)となる𝑝∗がある.X上の一様分布を𝑢とし,𝛿 ∈(0,1)に対し𝑝𝛿 :=(1 −𝛿)𝑝∗ +𝛿𝑢とおくと,𝑝𝛿は全点で正である.定理 6.1.5 より𝐼( ⋅ ;𝑊)は入力分布について連続だから,𝛿 →0のとき𝑝𝛿 →𝑝∗より𝐼(𝑝𝛿;𝑊) →𝐶(𝑊) >𝑅であり,𝛿を十分小さくとれば𝑅 <𝐼(𝑝𝛿;𝑊)にできる.𝑊が全点で正なので,結合分布𝑝𝛿(𝑥)𝑊(𝑦 ∣𝑥)も全点で正である.
レートに余裕をとって 2 歩を踏む. 𝑅 <𝑅′ <𝐼(𝑝𝛿;𝑊)となる𝑅′をとる.補題 6.3.5 を入力分布𝑝𝛿,レート𝑅′,目標𝜁/2に対して使うと,ある𝑁1があって,𝑛 ≥𝑁1ならばメッセージ数𝑀′ ≥⌈2𝑛𝑅′⌉で¯𝑃𝑒 <𝜁/2を満たす符号がとれる.これに補題 6.3.6 を当てると,メッセージ数⌈𝑀′/2⌉,最大誤り確率𝜁未満の符号が得られる.あとはメッセージ数が足りることを見ればよい.𝑛(𝑅′ −𝑅) ≥1ならば
⌈𝑀′2⌉≥𝑀′2≥2𝑛𝑅′2=2𝑛(𝑅′−𝑅)−1⋅2𝑛𝑅≥2𝑛𝑅であり,左辺は整数だから⌈2𝑛𝑅⌉以上である.よって𝑁としては,𝑁1と⌈1/(𝑅′ −𝑅)⌉の大きいほうをとればよい.
「全点で正」の仮定を外す段は本書では証明しない. 一般の𝑊に対しては,𝜉 ∈(0,1)をとって通信路を𝑊𝜉(𝑦 ∣𝑥) :=(1 −𝜉)𝑊(𝑦 ∣𝑥) +𝜉/|Y|と摂動して全点で正にしてから上の議論を当て,𝑊と𝑊𝜉の誤り確率の差を評価して戻す,という道筋をとる.差の評価は長さ𝑛のブロックで𝑛𝜉の程度になるので,𝜉を𝑛とともに小さくしなければならず,そのためには補題 6.3.5 の𝑁が𝜉に依らずにとれることを確かめる必要がある.本節の評価を𝜉について一様に取り直す作業になるので,本書ではここまでとする.◼
証明が使ったのは前節の三つだけである. 定理 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 の二元対称通信路を反転確率0.1でとると,容量は約0.531ビットだった.ここで𝑅 =0.5,𝑛 =100とすれば,符号語は250本(およそ1.1 ×1015本)で,どれも長さ 100 ビットである.符号帳を表として書き下すと250 ×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)とし,0 <𝑅 <𝐶(𝑊)とする.このとき𝑅は達成レートである.すなわち𝑅 ∈R(𝑊).
証明. 長さごとの符号を 1 本の族に貼り合わせる. 各𝑘 ≥1について定理 6.3.7 を目標値1/𝑘に対して使い,得られる𝑁を𝑁𝑘と書く.𝑁′𝑘 :=max(𝑁1,…,𝑁𝑘,𝑘)とおけば,(𝑁′𝑘)は広義単調増加で𝑁′𝑘 ≥𝑘だから𝑁′𝑘 →∞である.よって𝑛 ≥𝑁′1のとき{ 𝑘 :𝑁′𝑘 ≤𝑛 }は空でない有限集合で,その最大値を𝑘(𝑛)と書ける.𝑛 ≥𝑁′𝑘(𝑛) ≥𝑁𝑘(𝑛)だから,長さ𝑛について定理 6.3.7 の符号がとれる.その符号はメッセージ数が⌈2𝑛𝑅⌉以上で,最大誤り確率が1/𝑘(𝑛)未満である.𝑛 <𝑁′1の有限個については,メッセージ数 1 の符号(復号器はつねに1を返す)をとる.このとき誤りの事象は空なので,最大誤り確率は 0 である.
メッセージ数をちょうどに削る. 𝑛 ≥𝑁′1でとった符号のメッセージ数は⌈2𝑛𝑅⌉以上でしかないので,レートの列をそろえるために削る.メッセージを⌈2𝑛𝑅⌉個だけ選んで残し,番号を1,…,⌈2𝑛𝑅⌉に付け替える.符号語はそのまま,復号器は元のものを使い,捨てたメッセージを指したときは1を返すことにする.新しい番号𝑗(元の番号𝑚𝑗)に対する誤りの事象は,𝑗 ≠1なら元の誤りの事象と同じ集合であり,𝑗 =1ならその部分集合である.符号語も通信路も変えていないので出力の分布は元のままで,したがって最大誤り確率は増えない.以下,𝑀𝑛 :=⌈2𝑛𝑅⌉(𝑛 ≥𝑁′1),𝑀𝑛 :=1(𝑛 <𝑁′1)とする.
誤り確率とレートの極限をとる. 最大誤り確率を見る.𝜁 >0をとり,1/𝑘 <𝜁となる𝑘を選ぶと,𝑛 ≥𝑁′𝑘では𝑘(𝑛) ≥𝑘だから最大誤り確率は1/𝑘(𝑛) ≤1/𝑘未満であり,𝜁未満である.よって𝑃(𝑛)𝑒,max →0である.次にレートを見る.𝑅 >0と𝑛 ≥1より2𝑛𝑅 ≥1だから
2𝑛𝑅≤⌈2𝑛𝑅⌉<2𝑛𝑅+1≤2⋅2𝑛𝑅であり,logをとって𝑛で割ると𝑛 ≥𝑁′1について𝑅 ≤𝑅𝑛 <𝑅 +1/𝑛を得る.とくにレートの列は上に有界で,𝑛 →∞で𝑅に収束する.残りの𝑛は有限個で𝑅𝑛 =0だから,上に有界であることも下極限の値も変わらない.よってこの族は定義 6.2.2 の意味で達成可能で,その達成レートはlim inf𝑛𝑅𝑛 =𝑅である.◼
逆向きの主張,つまり𝐶(𝑊)を超えるレートでは誤り確率を 0 にできないことについては,まだ何も言えていない.系 6.3.8 はR(𝑊)が𝐶(𝑊)未満の正のレートをすべて含むことを示しただけで,R(𝑊)の上限がちょうど𝐶(𝑊)であるためには,どんな符号を設計しても𝐶(𝑊)を超えられないという全称の主張が要る.それは 6.4 節で与える.第2章で達成可能性と逆定理が別の道具を要したのと同じ構図で,その道具はふたたびファノの不等式(定理 1.10.1)である.
InformationTheory — 形式化検証つき情報理論教科書(レビュー版).数式は MathJax + AMS Euler で事前レンダリング.