机器学习之熵的理解
熵在信息论中代表随机变量不确定度的度量。一个离散型随机变量X的熵H(X)定义为:
明确定义的科学名词且与内容无关,而且不随信息的具体表达式的变化而变化。是独立于形式,反映了信息表达式中统计方面的性质。是统计学上的抽象概念。信息熵的一种解释是,它表示的是最短的平均编码长度。同样的,不确定性越大,熵就越大。信息熵的单位是比特(bit)。我们举两个简单的例子: 第一个例子: 32支球队,在无任何先验信息的前提下,用二分法猜冠军队伍,最多猜5次,即:
第二个例子:赌马比赛里,有4匹马A,B,C,D,获胜概率分别为
1.如果 X=A ,那么需要问1次(问题1:是不是A?),概率为
2.如果 X=B ,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为
3.如果 X=C ,那么需要问3次(问题1,问题2,问题3),概率为
4.如果 X=D ,那么同样需要问3次(问题1,问题2,问题3),概率为
通过熵的定义得到
在二进制计算机中,一个比特为0或1(代表二元问题)。在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。其定义为:
为了尽可能减少码长,我们要给发生概率p(x)较大的事件,分配较短的码长l(x)。所以那么
A,B,C,D
四个实践,可以分别由
0,10,110,111
表示. (1)信息熵只反映内容的随机性,与内容本身无关。不管是什么样内容的文件,只要服从同样的概率分布,就会计算得到同样的信息熵。 (2)信息熵越大,表示占用的二进制位越长,因此就可以表达更多的符号。所以,人们有时也说,信息熵越大,表示信息量越大。不过,由于第一点的原因,这种说法很容易产生误导。较大的信息熵,只表示可能出现的符号较多,并不意味着你可以从中得到更多的信息。 (3)信息熵与热力学的熵,基本无关。
相对熵(KL离散度)
相对熵又叫做KL离散度,其定义为:
KL 散度是两个概率分布f(x)和g(x)差别的非对称性的度量。KL散度是用来度量使用基于f(x)的编码来编码来自g(x)的样本平均所需的额外的位元数。 很容易证明,有三个结论: (1) 两函数完全相同时,KL=0 (2) KL越大,差异越大 (3) 对概率分布或者概率密度函数(>0), KL可用来衡量两个随机变量分布的差异性。
交叉熵
对一随机事件,其真实概率分布为p(i),从数据中得到的概率分布为q(i),则我们定义,交叉熵为:
核心理解: * 用p来衡量识别一个样本的信息量即最小编码长度(信息熵)。
q来估计真实分布为p的样本的信息量.
则估算多出来的冗余信息量
在机器学习中,p通常设定为真实标记的分布,q设定为训练后模型预测标记的分布:
即:交叉熵=信息熵+KL散度(相对熵) 由于信息熵H(p)H(p)是固定不变的,因此我们在机器学习中就用交叉熵作为损失函数。常见的做法是先用Softmax函数将神经网络的结果转换为概率分布,然后用交叉熵刻画估算的概率分布与真实的概率分布的”距离”。
- 点赞
- 收藏
- 关注作者
评论(0)