关于信息论的概念和独立主成分分析(ICA)的学习
一直搞不清ICA里面的独立性和信息论里面两个分布相关性之间的关系,在这里重新学习一下
参考:《Machine Learning:A Probabilistic Perspective》 by Kevin P. Murphy
一、关于信息论
“Information theory is concerned with representing data in a compact fashion (a task known as data compression or source coding), as well as with transmitting and sorting it in a way that is robust to errors (a task known as error correction or channel coding). ”
1、熵(Entropy)
随机变量 X X X具有分布 p p p,则它的熵写作: H ( X ) \mathbb H(X) H(X),或者, H ( p ) \mathbb H(p) H(p),用于衡量不确定性。
更具体地,对于离散变量 X X X,其有 K K K个可能的状态,则它的熵定义为:
H ( X ) = △ − ∑ k = 1 K p ( X = k ) log 2 p ( X = k ) \mathbb H(X) \overset{\underset{\mathrm{\triangle}}{}}{=}-\sum_{k=1}^K p(X=k)\log_2p(X=k) H(X)=△−k=1∑Kp(X=k)log2p(X=k)
其中, log 2 \log_2 log2可以认为是二进制编码,上式求和过程可认为是求取平均二进制编码位数
例: X = { 1 , … , 5 } X=\{1,\dots,5\} X={
1,…,5},其对应的分布为 p = [ 0.25 , 0.25 , 0.2 , 0.15 , 0.15 ] p=[0.25,0.25,0.2,0.15,0.15] p=[0.25,0.25,0.2,0.15,0.15],则可求得 H = 2.2855 H=2.2855 H=2.2855。
可证明当 X X X满足均匀分布时,熵得到最大化,即 p ( x = k ) = 1 / K p(x=k)=1/K p(x=k)=1/K,此时熵值为 H ( X ) = log 2 K \mathbb H(X)=\log_2K H(X)=log2K。反之,若 X X X的分布为delta-function,此时熵最小,熵值为0。
- 对于二元随机变量,即 X ∈ { 0 , 1 } X\in\{0,1\} X∈{
0,1},其概率分布可写作 p ( X = 1 ) = θ p(X=1)=\theta p(X=1)=θ、 p ( X = 0 ) = 1 − θ p(X=0)=1-\theta p(X=0)=1−θ,则熵写作:
H ( X ) \mathbb H(X) H(X)
= − [ p ( X = 1 ) log 2 p ( X = 1 ) + p ( X = 0 ) log 2 p ( X = 0 ) ] =-[p(X=1)\log_2p(X=1)+p(X=0)\log_2p(X=0)] =−[p(X=1)log2p(X=1)+p(X=0)log2p(X=0)]
= − [ θ log 2 θ + ( 1 − θ ) log 2 ( 1 − θ ) ] =-[\theta\log_2\theta+(1-\theta)\log_2(1-\theta)] =−[θlog2θ+(1−θ)log2(1−θ)]
该熵值随 θ \theta θ变化的曲线图如下:
可见,当两个状态概率相同的时候(均匀分布),熵值最大
2、KL 散度(Kullback-Leibler divergence)
KL散度用于度量两个分布之间的不相似性,对于分布 p p p、 q q q,KL散度定义为:
K L ( p ∣ ∣ q ) = △ ∑ k = 1 K p k log p k q k \mathbb K\mathbb L(p||q) \overset{\underset{\mathrm{\triangle}}{}}{=}\sum_{k=1}^K p_k \log \frac{p_k}{q_k} KL(p∣∣q)=△k=1∑Kpklogqkpk
也可写作:
K L ( p ∣ ∣ q ) = ∑ k p k log p k − ∑ k p k log q k = − H ( p ) + H ( p , q ) \mathbb K\mathbb L(p||q) = \sum_k p_k \log p_k-\sum_k p_k \log q_k=-\mathbb H(p)+\mathbb H(p,q) KL(p∣∣q)=k∑pklogpk−k∑pklogqk=−H(p)+H(p,q)
其中, H ( p , q ) \mathbb H(p,q) H(p,q)被称为交叉熵(cross entropy):
H ( p , q ) = △ − ∑ k p k log q k \mathbb H(p,q) \overset{\underset{\mathrm{\triangle}}{}}{=} -\sum_k p_k \log q_k H(p,q)=△−k∑pklogqk
可以理解为将码本 q q q按照概率分布 p p p编码所需要的平均编码位数。
而KL散度则可以理解为采用真实分布 p p p作为码本和采用另一个分布 q q q作为码本之间的差距。
- Information inequality: K L ( p ∣ ∣ q ) ≥ 0 \mathbb K\mathbb L(p||q)\geq0