情報理論における符号化と復号化情報理論における符号化と復号化
定義
アルファベットの集合をΣとする。以下のように定義されるfnを圧縮率compression rateが0<α≤1の符号化関数encoding scheme, 符号化という。
fn:Σn→{0,1}⌊αn⌋
下のようなgnを圧縮率がαの復号化関数decoding scheme, 復号化という。
gn:{0,1}⌊αn⌋→Σn
説明
簡単に言うと、圧縮率はアルファベットを2進数にマッピングする時、0と1の数をアルファベットの数で割ったものである。例えば、LESSERAFIM↦101(2)のようなマッピングなら、圧縮率は次のようになる。
0.3=103=∣{L,E,S,S,E,R,A,F,I,M}∣∣{1,0,1}∣
データ量が多ければ、それを効率的に保存して送信するのが難しくなる。だから、情報理論ではメッセージm∈Σnがどれだけ効率的に圧縮できるかに興味を持つ。効率的と言う言葉は圧縮だけでなく、復元にも含まれている。m↦1のようにマッピングすると非常に効率的に圧縮されるが、この1を元のメッセージmに復元するのは不可能である。そのため、m=gn(fn(m))を満たすfn,gnが存在する最小のαを見つけることが、メッセージを効率的に圧縮することに等しい。これは情報理論の父、クロード・シャノンによって数学的に整理された。
- ノイズのないコーディング定理
- ノイズのあるチャンネルのコーディング定理
この記事では、メッセージの効率的な圧縮についてもっとナイーブに説明する。0と1で構成された長さがnのメッセージを送りたい状況を考えよう。メッセージ内で0が現れる確率がpならば、1が出る確率は1−pだ。
大数の法則
{Xi}i=1nを互いに独立な確率変数とする。Xiの平均がμであれば、任意のϵ>0に対して次のことが成立する。
n→∞limP(n1i=1∑nXi−μ≥ϵ)=0
大数の法則は、試行回数nが十分に大きければ、標本平均n1i=1∑nXiが母平均μに十分近くなることを意味する。これにより、nが十分に大きい時、メッセージ内の0の数はnpであり、1の数はn(1−p)=(n−np)である。0と1で作ることができるメッセージの場合の数は、nの場所からnpの場所に0が入る場合を順番に関係なく選ぶことであり、したがって次のようになる。
(np)!(n−np)!n!
これらのメッセージに二進法で番号を付けるために必要なビットの数は次のようになる。
log2(np)!(n−np)!n!
スターリングの近似
log2n!≈nlog2n−nlog2e
(1)をスターリングの公式で近似すると次のようになる。
log2n!−log2(np)!−log2(n−np)!≈(nlog2n−nlog2e)−(nplog2(np)−nplog2e)−((n−np)log2(n−np)−(n−np)log2e)=nlog2n−nlog2e−nplog2(np)+nplog2e−(n−np)log2(n−np)+(n−np)log2e=nlog2n−nplog2n−nplog2p−nlog2n(1−p)+nplog2n(1−p)=nlog2n−nplog2n−nplog2p−nlog2n−nlog2(1−p)+nplog2n+nplog2(1−p)=−nplog2p−nlog2(1−p)+nplog2(1−p)=−nplog2p−n(1−p)log2(1−p)=n(−plog2p−(1−p)log2(1−p))
括弧内の式はエントロピーである。したがって、次を得る。
log2(np)!(n−np)!n!≈nH(p)
したがって、nが十分に大きい時、nH(p)ビットでコーディングするのが効率的であり、効率的な圧縮率はH(p)=nnH(p)である。この結果は、確率変数Xのエントロピーが、つまりXの独立試行によって作られたメッセージの圧縮効率であることを意味する。
一般的に話すと、あるアルファベットxiが現れる確率がp(xi)であれば、メッセージ内でアルファベットxiが現れる回数は平均的にnp(xi)である。アルファベットをk≥2個使って作った長さがnのメッセージの数は次のようになる。
1≤i≤k∏(np(xi))!n!
これらのメッセージに二進法で番号をつけると、
log21≤i≤k∏(np(xi))!n!=log2n!−1≤i≤k∑log2(np(xi))!≈(nlog2n−nlog2e)−1≤i≤k∑(np(xi)log2(np(xi))−nplog2e)=−n1≤i≤k∑p(xi)log2p(xi)=−nH