---
# System prepended metadata

title: Information theory and data compression

---

# Information theory and data compression
## Information measurement
### The definition of entropy：
\begin{aligned}H(X) =  - \sum_{x \in X} p(x) \log p(x)\end{aligned}

Entropy可以看成是一個機率分佈的資訊量，而如果entropy越大，代表資訊量越大。反之如果entropty越小，代表資訊量越小。

舉例來說，一個投擲出去的硬幣，是正面或反面的機率為1，不是正面也不是反面的機率為0，顯然這句話是廢話。  
於是我們將上述的機率分佈代入entropy，算出$-( 0 \log 0+ 1 \log 1 ) = 0$，廢話的entropy還真的是0。  

而透過微分找極值，顯然當二項分布$p=0.5$時，entropy最大，因為這個機率分佈不會暗示說哪個事件發生的可能比較大。

### The derivation of entropy:
通過上述簡單的介紹entropy，接著推導entropy的公式如何求得。  

假如有三個事件$A_{1},A_{2},A_{3}$，其對應的機率分別為$p_{1},p_{2},p_{3}$。  
我們將其中兩個事件$A_{2},A_{3}$組成一組，使得另外有兩個事件，$B_{1} = \{ A_{1} \}$ $,$ $B_{2} = \{ A_{2} , A_{3} \}$，其對應的機率為$q_{1}=p_{1},q_{2}=p_{2}+p_{3}$。

而我們希望，從$A_{1},A_{2},A_{3}$算出來的entropy，要與先算$B_{1},B_{2}$的entropy，再按機率比例算$B_{1},B_{2}$集合內的entropy的總和相等。也就是  
$\tag{1.1.1}\label{eq_1.1.1}H(p_{1},p_{2},p_{3})=H(q_{1},q_{2})+q_{1}H(p_{1}/q_{1})+q_{2}H(p_{2}/q_{2},p_{3}/q_{2})$

得到了關係式後，我們繼續推導entropy的公式。  
先令$H(1/n,1/n,1/n...)=A(n)$。  

舉例來說：  
$H(1/2,1/2)=A(2),H(1/8,1/8,1/8,1/8,1/8,1/8,1/8,1/8)=A(8)$  
而從$\eqref{eq_1.1.1}$我們可以得出：  
$A(8)=H(1/2,1/2)+1/2(H(1/2,1/2)+1/2H(1/2,1/2)+1/2H(1/2,1/2))=3A(2)$

從上面的例子可以觀察出下式，證明方法可以從畫顆樹下手
$\tag{1.1.2}\label{eq_1.1.2}A(j^l)=lA(j)$

而對於足夠大的$l$,可以找到一組$(k,m)$使得$A(k^m) \le A(j^l)<A(k^{m+1})$  
因此$\eqref{eq_1.1.2}$可以將其化簡為$m/l \le A(j)/A(k) < m/l + 1/l$，也就是
$\tag{1.1.3}\label{eq_1.1.3}|m/l - A(j)/A(k)| < \epsilon$

而因為$k^m \le j^l<k^{m+1}$，且$\log{j^l} = l \log j$，所以透過類似$\eqref{eq_1.1.3}$的過程，
可以得到$\tag{1.1.4}\label{eq_1.1.4}|m/l - \log (j)/ \log(k)| < \epsilon$

最後將$\eqref{eq_1.1.3}$和$\eqref{eq_1.1.4}$合併，得到$|A(j)/A(k) - \log (j)/ \log(k)| <2 \epsilon$，也代表著  
$\tag{1.1.5}\label{eq_1.1.5} H=K \log (n)$

其中$K$為常數。

而上面我們只探討了所有事件機率相等的情況，接下來繼續討論事件的機率不相等的情況。

這次假設我們有$\sum_{i \in I} n_{i}$種機率相等的事件。  
根據$\eqref{eq_1.1.1}$和$\eqref{eq_1.1.5}$，可以得出下列結論。  

\begin{aligned}H&=H(p_{1},p{2}...,p_{i})+\sum_{i \in I}p_{i}H(1/n_{i},...,1/n_{i})
\\&=H(p_{1},p{2}...,p_{i})+ K\sum_{i \in I} p_{i} \log(n_{i})\end{aligned}

左右移位後，可以得到:
\begin{aligned}H(p_{1},p_{2}...,p_{i})
&=K \log (\sum_{i \in I} n_{i}) - K\sum_{i \in I} p_{i} \log(n_{i})
\\&=-K[\sum_{i \in I} p_{i} \log(n_{i})-\log (\sum_{j \in J} n_{j})]
\\&=-K[\sum_{i=1}^{n} p_{i} \log(n_{i})-\log (\sum_{j=1}^{n} n_{j}) \sum_{i=1}^{n}p_{i}]
\\&=-K \sum_{i=1}^{n}p_{i}\log [n_{i}-(\sum_{j=1}^{n} n_{j})]
\\&=-K \sum_{i=1}^{n}p_{i}\log[\frac{n_{i}}{(\sum_{j=1}^{n} n_{j})}]
\\&=-K \sum_{i=1}^{n}p_{i}\log p_{i}
\end{aligned}  
為了方便，將$K$帶入$1$，最後得到entropy的式子  
$\tag{1.1}\label{eq_1.1}H=-\sum_{i \in I}p_{i}\log p_{i}$

## Reference
1. Elements of Information Theory, 2nd edition
2. Introduction to data compression, 3rd edition


