信息熵和交叉熵的细节理解
先陈述我这里说了半天的信息熵是个什么东西?
这里说的信息熵是什么东西?
信息熵主要是应用在集成学习作为评价指标,判定我们某次的分类是不是效果足够好。
这里说的交叉熵是什么东西?
虽然之前还有其他应用,但是这个东西目前最主要的应用还是深度学习当中作为损失函数来支撑反向传播的优化。
1.什么是信息量?从信号量理解信息熵
先看百度百科怎么说:信息量是指信息多少的量度。1928年R.V.L.哈特莱首先提出信息定量化的初步设想,他将消息数的对数定义为信息量。若信源有m种消息,且每个消息是以相等可能产生的,则该信源的信息量可表示为I=log2m。
自己理解一下这个事情:这个东西的就是反映一个信号具有多少信息的问题。
那么接下来我们要思考我们平时生活当中的一句话到底怎么对应一个信号个数,例如我们中国乒乓男团获得了冠军,这个获得冠军到底包含了多少信息?(也就是其信息量应该定义为多少?)
刚好看《数学之美》中有一个非常直观的例子:
假设我们没有看世界杯的比赛,但是想知道哪支球队会是冠军,只能去问已经看过比赛的观众,但是我们只能猜测某支球队是或不是冠军,然后观众用对或不对来回答,我们想要猜测次数尽可能少,所用的方法就是二分法。假如有 16 支球队,分别编号,先问是否在 1-8 之间,如果是就继续问是否在 1-4 之间,以此类推,直到最后判断出冠军球队是哪只。如果球队数量是 16,我们需要问 4 次来得到最后的答案。那么世界冠军这条消息的信息量就是 4。在计算机中,这条信息的信息量就是 4 比特,如果一共是 32 支球队参赛,那么世界冠军的信息量就是 5 比特,可以看到信息量跟可能情况的对数 log (以 2 为底)有关(这里大概有点知道为什么求熵的公式里会有一个 log 了)。
这里我们细致的理解一下为什么选择log2?这个问题其实可以转化成了:为什么使用二分法?这个问题。为什么使用二分法?其实就很好回答了,这是我们最有效的直接获得最终结果的方法。
其他的方法:
- 1.平均效果不理想,例如我们直接询问是不是3队获得了冠军,可能直接就猜中了,也有可能我们猜了半天都是巧妙的躲避了正确答案。
- 2.需要特殊的前提,例如由于某次比赛的分组具有特殊性,对4同余的队伍不可能同时获得冠军,这里我们可能就有更好的方式了,但是这就引入了特殊的条件。
但是以往经验表示,如果世界杯有 32 支球队参赛,有些球队实力很强,拿到冠军的可能性更大,而有些队伍拿冠军的概率就很小。我们在之前用二分法计算的时候其实是看做每个球队夺冠的概率都相等,因此我们从最可能夺冠的几支球队中猜测冠军球队,实际需要的信息量是小于我们之前方法计算的信息量的。
这里我们就得思考:某个球队的概率发生变化的时候,这个球队夺冠的信息量是怎么变化的?
这里例如某个球队夺冠的概率为八分之一,其实就相当于在八种可能性当中选择了这个队伍的可能性,所以我们得到这个队伍赢得冠军的局部信息量其实就是log2(1/p)(其中的p是这个队伍获得冠军的概率)所以想要得到总体的信息量均值,其实就是把每个局部的信息量的值,都加上相应的权重就完事了。
将负号提出来某个队伍夺得冠军的信号量就是下面的表达式了:
这样也就出现了 信息量的均值是(Σp[log2(1/p)])/n
其实这就是我们平常获得所说的信息熵,只是我们信息熵将这个1/p提取了一个负号出来,也就得到了下面的内容:
然后这里我们理解一下。为什么这个东西越接近0越说明这是同一个类别,信息量(获得这些种类的需要的信息的个数)为0的时候我们其实获得的分类数就是2的0次方个分类,也就是1个分类。
也就是说信息熵越接近0那么这里的内容的种类也就越统一,也就是我们集成学习的分类效果越好,这也是集成学习的一个依据。
2.想要顺利理解交叉熵我们得从KL散度开始理解
KL散度
如果对于同一个随机变量X有两个单独的概率分布P ( x ) 和Q ( x ) ,则我们可以使用KL散度来衡量这两个概率分布之间的差异。
这个是Kullback-Leible提出来的,我并不能理解为什么这个可以反映两个分布的相似程度,我只能笼统的理解一下这个东西是:每个概率计算相似度,计算某个位置的相似度的方式是:
大约我们理解其为,比例为1,也就是完全相同的时候恰好为0也就是最像的时候就是0,所以可以大致表示一个两者的相似度。
信息熵和交叉熵的细节理解
先陈述我这里说了半天的信息熵是个什么东西?
这里说的信息熵是什么东西?
信息熵主要是应用在集成学习作为评价指标,判定我们某次的分类是不是效果足够好。
这里说的交叉熵是什么东西?
虽然之前还有其他应用,但是这个东西目前最主要的应用还是深度学习当中作为损失函数来支撑反向传播的优化。
1.什么是信息量?从信号量理解信息熵
先看百度百科怎么说:信息量是指信息多少的量度。1928年R.V.L.哈特莱首先提出信息定量化的初步设想,他将消息数的对数定义为信息量。若信源有m种消息,且每个消息是以相等可能产生的,则该信源的信息量可表示为I=log2m。
自己理解一下这个事情:这个东西的就是反映一个信号具有多少信息的问题。
那么接下来我们要思考我们平时生活当中的一句话到底怎么对应一个信号个数,例如我们中国乒乓男团获得了冠军,这个获得冠军到底包含了多少信息?(也就是其信息量应该定义为多少?)
刚好看《数学之美》中有一个非常直观的例子:
假设我们没有看世界杯的比赛,但是想知道哪支球队会是冠军,只能去问已经看过比赛的观众,但是我们只能猜测某支球队是或不是冠军,然后观众用对或不对来回答,我们想要猜测次数尽可能少,所用的方法就是二分法。假如有 16 支球队,分别编号,先问是否在 1-8 之间,如果是就继续问是否在 1-4 之间,以此类推,直到最后判断出冠军球队是哪只。如果球队数量是 16,我们需要问 4 次来得到最后的答案。那么世界冠军这条消息的信息量就是 4。在计算机中,这条信息的信息量就是 4 比特,如果一共是 32 支球队参赛,那么世界冠军的信息量就是 5 比特,可以看到信息量跟可能情况的对数 log (以 2 为底)有关(这里大概有点知道为什么求熵的公式里会有一个 log 了)。
这里我们细致的理解一下为什么选择log2?这个问题其实可以转化成了:为什么使用二分法?这个问题。为什么使用二分法?其实就很好回答了,这是我们最有效的直接获得最终结果的方法。
其他的方法:
- 1.平均效果不理想,例如我们直接询问是不是3队获得了冠军,可能直接就猜中了,也有可能我们猜了半天都是巧妙的躲避了正确答案。
- 2.需要特殊的前提,例如由于某次比赛的分组具有特殊性,对4同余的队伍不可能同时获得冠军,这里我们可能就有更好的方式了,但是这就引入了特殊的条件。
但是以往经验表示,如果世界杯有 32 支球队参赛,有些球队实力很强,拿到冠军的可能性更大,而有些队伍拿冠军的概率就很小。我们在之前用二分法计算的时候其实是看做每个球队夺冠的概率都相等,因此我们从最可能夺冠的几支球队中猜测冠军球队,实际需要的信息量是小于我们之前方法计算的信息量的。
这里我们就得思考:某个球队的概率发生变化的时候,这个球队夺冠的信息量是怎么变化的?
这里例如某个球队夺冠的概率为八分之一,其实就相当于在八种可能性当中选择了这个队伍的可能性,所以我们得到这个队伍赢得冠军的局部信息量其实就是log2(1/p)(其中的p是这个队伍获得冠军的概率)所以想要得到总体的信息量均值,其实就是把每个局部的信息量的值,都加上相应的权重就完事了。
将负号提出来某个队伍夺得冠军的信号量就是下面的表达式了:
这样也就出现了 信息量的均值是(Σp[log2(1/p)])/n
其实这就是我们平常获得所说的信息熵,只是我们信息熵将这个1/p提取了一个负号出来,也就得到了下面的内容:
然后这里我们理解一下。为什么这个东西越接近0越说明这是同一个类别,信息量(获得这些种类的需要的信息的个数)为0的时候我们其实获得的分类数就是2的0次方个分类,也就是1个分类。
也就是说信息熵越接近0那么这里的内容的种类也就越统一,也就是我们集成学习的分类效果越好,这也是集成学习的一个依据。
2.想要顺利理解交叉熵我们得从KL散度开始理解
KL散度
如果对于同一个随机变量X有两个单独的概率分布P ( x ) 和Q ( x ) ,则我们可以使用KL散度来衡量这两个概率分布之间的差异。
这个是Kullback-Leible提出来的,我并不能理解为什么这个可以反映两个分布的相似程度,我只能笼统的理解一下这个东西是:每个概率计算相似度,计算某个位置的相似度的方式是:
大约我们理解其为,比例为1,也就是完全相同的时候恰好为0也就是最像的时候就是0,所以可以大致表示一个两者的相似度。