前几天朋友问我决策树中的香农熵公式来源的理解,我很早以前看过,但是发现现在又什么都回答不出了,所以决定补一下信息论的基础。这里记录下自己的理解
设有二维离散随机变量(X,Y),它的概率密度为: P ( X = x i , Y = y i ) = p i j i = 1 , 2 , . . . n , j = 1 , 2 , . . . m P(X=x_i,Y=y_i)=p_{ij}\quad\quad\quad i=1,2,...n,\quad j=1,2,...m P(X=xi,Y=yi)=piji=1,2,...n,j=1,2,...m 条件熵H(Y|X)表示在已知随机变量X的条件下,随机变量Y的不确定性,公式如下: H ( Y ∣ X ) = − ∑ i = 1 n ∑ j = 1 m p ( X = x i , Y = y i ) l o g p ( Y = y j ∣ X = x i ) H(Y|X)=-\sum_{i=1}^n \sum_{j=1}^mp(X=x_i,Y=y_i)log^{p(Y=y_j|X=x_i)} H(Y∣X)=−i=1∑nj=1∑mp(X=xi,Y=yi)logp(Y=yj∣X=xi) 条件熵H(Y|X)和信息熵H(Y)的关系满足: H ( Y ∣ X ) ≤ H ( Y ) H(Y|X)\leq H(Y) H(Y∣X)≤H(Y) 先撇开公式,思考下,如果A与B有关系,那我们知道B以后是不是对A的把握就大一些?此时,在B发生下的A的信息量是不是自然就比起直接给一个A的信息量小了.当然,如果两个都是独立分布,那么这时候就满足等于号
信息增益是描述两个随机变量之间的相关程度、即确定一个随机变量X后另一个随机变量Y不确定性的削弱程度。如下公式: I ( X , Y ) = H ( Y ) − H ( Y ∣ X ) I(X,Y)=H(Y)-H(Y|X) I(X,Y)=H(Y)−H(Y∣X)
在决策树中,信息增益就被选取为特征选取的一种度量指标,给定训练集D每个数据集都有n个特征,构建决策树的核心是用哪个变量来划分数据集,这时候一种合理的方式就是计算所有的 I ( D , X i ) I(D,X_i) I(D,Xi)即计算第i维特征的信息增益,若信息增益越大,则说明与数据集D越相关,此时我们就认为这个维度包含的信息量最大,可以以他为依据划分。
KL散度有个致命的问题,那就是当两个分布差距过于大的时候,此时KL散度没有意义了,因为太大了。 下面描述一种情形,假设真实的分布为0-1分布,p(x=1)逼近0,p(x=0)逼近1,而我们生成的分布为q,q(x=1)逼近1,q(x=0)逼近0。这时候再看我们的KL散度 K L ( p ( x ) ∣ ∣ q ( x ) ) = p ( x 1 ) l o g p ( x 1 ) q ( x 1 ) + p ( x 0 ) l o g p ( x 0 ) q ( x 0 ) 我 们 知 道 p ( x 0 ) 是 逼 近 1 的 , q ( x 0 ) 是 逼 近 0 的 , 那 么 lim p ( x 0 ) → 1 q ( x 0 ) → 0 p ( x 0 ) l o g p ( x 0 ) q ( x 0 ) = + ∞ 而 p ( x 1 ) → 0 , q ( x 1 ) → 1 即 有 lim p ( x 1 ) → 0 q ( x 1 ) → 1 p ( x 1 ) l o g p ( x 1 ) q ( x 1 ) = 0 最 终 有 公 式 : K L ( p ( x ) ∣ ∣ q ( x ) ) = + ∞ , 此 时 K L 散 度 无 意 义 KL(p(x)||q(x))=p(x_1)log \frac{p(x_1)}{q(x_1)}+p(x_0)log \frac{p(x_0)}{q(x_0)}\\ 我们知道p(x_0)是逼近1的,q(x_0)是逼近0的,那么\\ {\lim_{p(x_0) \to 1\atop q(x_0) \to 0}}p(x_0)log \frac{p(x_0)}{q(x_0)}=+ \infty \\ 而p(x_1) \to 0 ,q(x_1) \to 1 \\ 即有{\lim_{p(x_1) \to 0\atop q(x_1) \to 1}}p(x_1)log \frac{p(x_1)}{q(x_1)}=0\\ 最终有公式:KL(p(x)||q(x))=+\infty,此时KL散度无意义 KL(p(x)∣∣q(x))=p(x1)logq(x1)p(x1)+p(x0)logq(x0)p(x0)我们知道p(x0)是逼近1的,q(x0)是逼近0的,那么q(x0)→0p(x0)→1limp(x0)logq(x0)p(x0)=+∞而p(x1)→0,q(x1)→1即有q(x1)→1p(x1)→0limp(x1)logq(x1)p(x1)=0最终有公式:KL(p(x)∣∣q(x))=+∞,此时KL散度无意义 KL散度的升级版本包括JS、Wasserstein距离,WGAN可以看下面的内容
更多关于JS\KL\Wassersterin距离在下面链接 https://zhuanlan.zhihu.com/p/74075915
交叉熵-cross entropy,定义如下 H ( p ( x ) , q ( x ) ) = H ( X ) + K L ( p ( x ) ∣ ∣ q ( x ) ) H(p(x),q(x))=H(X)+KL(p(x)||q(x)) H(p(x),q(x))=H(X)+KL(p(x)∣∣q(x)) H(X)不用说了把,就是我们随机变量X的信息熵,是个固定值 H ( X ) = − ∑ x ∈ X p ( x ) × l o g p ( x ) 展 开 公 式 得 H ( x ) = − ∑ x ∈ X p ( x ) × l o g p ( x ) + ∑ x ∈ X p ( x ) × l o g p ( x ) q ( x ) 由 等 价 变 换 l o g p ( x ) q ( x ) = l o g p ( x ) − l o g q ( x ) 可 知 H ( x ) = − ∑ x ∈ X p ( x ) × l o g p ( x ) + ∑ x ∈ X p ( x ) × ( l o g p ( x ) − l o g q ( x ) ) = − ∑ x ∈ X p ( x ) × l o g q ( x ) ( 1 ) H(X)=-\sum_{x \in X} p(x) \times logp(x) 展开公式得\\ H(x)=-\sum_{x \in X} p(x) \times logp(x)+\sum_{x \in X}p(x)\times log\frac{p(x)}{q(x)}\\ 由等价变换 log\frac{p(x)}{q(x)}=log p(x)-logq(x)可知\\ H(x)=-\sum_{x \in X} p(x) \times logp(x)+\sum_{x \in X}p(x)\times (log p(x)-logq(x))\\ =-\sum_{x \in X}p(x)\times logq(x)\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad(1)\\ H(X)=−x∈X∑p(x)×logp(x)展开公式得H(x)=−x∈X∑p(x)×logp(x)+x∈X∑p(x)×logq(x)p(x)由等价变换logq(x)p(x)=logp(x)−logq(x)可知H(x)=−x∈X∑p(x)×logp(x)+x∈X∑p(x)×(logp(x)−logq(x))=−x∈X∑p(x)×logq(x)(1) 公式(1)就是我们在深度学习中常用得目标损失函数,交叉熵是由KL散度加上原始的信息熵得到的,很符合我们的观念嘛,信息熵为负、KL散度为正,一正一负抵消,剩下的就是差距,也就是损失函数。
到这里,基本的信息论知识都over了,以后还会更新概率论方向的知识 求各位看官点赞,敲公式不易,我想涨粉