シャノンの情報源符号化定理
情報理論において、シャノンの情報源符号化定理(シャノンのじょうほうげんふごうかていり、Shannon's source coding theorem, noiseless coding theorem)は、データ圧縮の可能な限界と情報量(シャノンエントロピー)の操作上の意味を確立する定理である。1948年のクロード・シャノンの論文『通信の数学的理論』で発表された。シャノンの第二基本定理(通信路符号化定理)に対してシャノンの第一基本定理とも言う。
情報源符号化定理によれば、(独立同分布(iid)の確率変数のデータの列の長さが無限大に近づくにつれて)、符号化率(記号1つ当たりの平均符号長)が情報源のシャノンエントロピーよりも小さいデータを、情報が失われることが事実上確実ではないように圧縮することは不可能である。しかし、損失の可能性が無視できる場合、符号化率を任意にシャノンエントロピーに近づけることは可能である。
シンボルコードの情報源符号化定理は、入力語(確率変数と見なされる)のエントロピーとターゲットアルファベットの大きさの関数として、符号語の可能な期待される長さに上限と下限を設定する。
情報源符号化とは、情報源の記号(の列)からアルファベット記号(通常はビット)の列への写像である。情報源の記号は二進数ビットから正確に復元できる(可逆圧縮)か、何らかの歪みを伴って復元される(非可逆圧縮)。これが、データ圧縮の背後にあるコンセプトである。
情報源符号化定理(Shannon 1948)は以下のように非形式的に提示されている(MacKay 2003, pg. 81, Cover:Chapter 5)。
情報量 H(X) を持つ N 個の独立同分布の確率変数は、N → ∞のとき、無視できるほどの情報損失のリスクをもって N H(X) ビット以上に圧縮できる。しかし、N H(X) ビット以下に圧縮されたとき、情報が失われることは事実上確実である。
Σ1, Σ2 を2つの有限のアルファベットとし、Σ1 と Σ2 をそれぞれのアルファベットからの全ての有限語の集合とする。
X を Σ1 の値をとる確率変数とし、 f  を Σ1 から Σ2 への一意復号可能な符号とする(ここで、!Σ2!  a)。S を単語長  f (X) で与えられる確率変数とする。
f  が X の最小単語長さという意味で最適であるとき、
\frac{H(X)}{\log_2 a} \leq \mathbb{E}S < \frac{H(X)}{\log_2 a} +1
である。(Shannon 1948)
X が独立同分布(iid)な情報源であるとき、その時系列 X1, ..., Xn は、離散値の場合はエントロピー H(X) 、連続値の場合は差分エントロピーで独立同分布となる。情報源符号化定理によれば、情報源のエントロピーより大きい任意のレートの任意の ε > 0 に対して、十分に大きい n と、情報源 X1:n の独立同分布な n 個の複写をとり、これを n(H(X) + ε) この二進数ビットに写像するエンコーダがあり、それは、少なくとも 1 − ε の確率で、情報源記号 X1:n が二進数ビットから復元できる。
達成可能性の証明。 いくつかの ε > 0 を修正し、
p(x_1, \ldots, x_n) = \Pr \left[X_1 = x_1, \cdots, X_n = x_n \right].
とする。典型集合 An は、以下のように定義される。
A_n^\varepsilon =\left\{(x_1, \cdots, x_n) \ : \ \left|-\frac{1}{n} \log p(x_1, \cdots, x_n) - H_n(X)\right| < \varepsilon \right\}
漸近的等分配性(AEP)が示すところによると、十分に大きい n に対して、情報源によって生成された列が典型集合 An に含まれる確率は 1 に近づく。特に、十分に大きい n に対しては、P((X_1,X_2,\cdots,X_n) \in A_n^\varepsilon) は任意に 1 に近く、具体的には 1-\varepsilon より大きくすることができる。
典型集合の定義は、典型集合にある列が以下を満足することを意味する。
2^{-n(H(X)+\varepsilon)} \leq p \left (x_1, \cdots, x_n \right ) \leq 2^{-n(H(X)-\varepsilon)}
注意:
Anから導かれる列 (X_1,X_2,\cdots X_n) の確率は 1 − ε より大きい。
p(x_1,x_2,\cdots x_n) の左側(下限)からは \left| A_n^\varepsilon \right| \leq 2^{n(H(X)+\varepsilon)} となる。
p(x_1,x_2,\cdots x_n) の右側(上限)および全体集合 An の全確率に対する下限からは \left| A_n^\varepsilon \right| \geq (1-\varepsilon) 2^{n(H(X)-\varepsilon)} となる。
よって、\left| A_n^\varepsilon \right| \leq 2^{n(H(X)+\varepsilon)}, n.(H(X)+\varepsilon) ビットはこの集合の任意の文字列を指すのに十分である。
エンコードアルゴリズム : エンコーダは、入力列が典型集合内にあるかどうかをチェックする。そうであれば、典型集合内の入力列のインデックスを出力する。そうでなければ、エンコーダは任意の n(H(X) + ε) 桁の数を出力する。入力列が典型集合内にある限り(少なくとも 1 − ε の確率で)、エンコーダは何の誤りも生じない。従って、エンコーダの誤りの確率の上限は ε である。
逆の証明。その逆は、An より小さいサイズの集合が 1 から離れる確率の集合をカバーすることを示すことで証明できる。
1 ≤ i ≤ n について、si をそれぞれ可能な xi の語長とする。q_i = a^{-s_i}/C と定義する。ここで、 C は q1 + ... + qn  1 となるように選択される。
\begin{align}
H(X) &=    -\sum_{i=1}^n p_i \log_2 p_i \\
&\leq -\sum_{i=1}^n p_i \log_2 q_i \\
&=    -\sum_{i=1}^n p_i \log_2 a^{-s_i} + \sum_{i=1}^n p_i \log_2 C \\
&=    -\sum_{i=1}^n p_i \log_2 a^{-s_i} + \log_2 C \\
&\leq -\sum_{i=1}^n - s_i p_i \log_2 a \\
&\leq  \mathbb{E} S \log_2 a \\
\end{align}
ここで、2行目はギブスの不等式に、5行目はクラフトの不等式による。
C = \sum_{i=1}^n a^{-s_i} \leq 1
よって log C ≤ 0 である。
2行目の不等式について、
s_i = \lceil - \log_a p_i \rceil
とすると、
- \log_a p_i \leq s_i < -\log_a p_i + 1
a^{-s_i} \leq p_i
\sum  a^{-s_i} \leq \sum p_i = 1
よって、クラフトの不等式には、これらの語長を持つ接頭辞のない符号が存在する。従って、最小の S は以下を満たす。
\begin{align}
\mathbb{E} S & = \sum p_i s_i \\
& < \sum p_i \left( -\log_a p_i +1 \right) \\
& = \sum - p_i \frac{\log_2 p_i}{\log_2 a} +1 \\
& = \frac{H(X)}{\log_2 a} +1 \\
\end{align}
典型集合 An を
A_n^\varepsilon = \left \{x_1^n \ : \ \left|-\frac{1}{n} \log p \left (X_1, \cdots, X_n \right ) - \overline{H_n}(X)\right| < \varepsilon \right \}
と定義する。
次に、与えられた δ > 0 に対して、 n が十分に大きい場合、 Pr(An) > 1 − δ である。あとは、典型集合の列をエンコードするだけであり。情報源符号化の通常の方法は、この集合の濃度が 2^{n(\overline{H_n}(X)+\varepsilon)} であることを示す。
従って、1 − δ より大きい確率で符号化するには、平均して Hn(X) + ε ビットで十分である。ここで、n を大きくすることによって、ε と δ を任意に小さくすることができる。