这篇解释的特别清楚可以看一下:https://www.zhihu.com/question/41252833/answer/195901726
介绍
信息熵: 根据真实分布,我们能够找到一个最优策略,以最小的代价消除系统的不确定性,而这个代价大小就是信息熵,记住,信息熵衡量了系统的不确定性,而我们要消除这个不确定性,所要付出的【最小努力】(猜题次数、编码长度等)的大小就是信息熵。
信息熵代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大
交叉熵: 其用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。
相对熵(KL散度):其用来衡量两个取值为正的函数或概率分布之间的差异,即:
现在,假设我们想知道某个策略和最优策略之间的差异,我们就可以用相对熵来衡量这两者之间的差异。即,相对熵 = 某个策略的交叉熵 - 信息熵(根据系统真实分布计算而得的信息熵,为最优策略),公式如下:
交叉熵与机器学习
交叉熵在信息论的定义是:
在p、q均是离散(discrete)分布时,上式等价为:
其中, 是
分布、
分布共同的样本空间中的同一个样本点, 样本空间的大小
。
机器学习所使用的交叉熵损失函数与信息论里的交叉熵略有不同:
- 在机器学习看来,信息论里的交叉熵仅仅是针对一个样本的交叉熵,在机器学习进行优化时,会把所有样本的交叉熵值做一个平均,即机器学习的交叉熵损失函数定义为:假设有N个样本,
- 因为交叉熵常用于解决分类问题,而分类问题(我们一般说分类问题,是指单标签多分类问题)的概率本质是计算类别变量的广义的伯努利分布,所以机器学习采用的是交叉熵的离散形式:
。
其中,是期望的类别标签,
是模型对第
个类别计算得到的
,通常在计算损失之前,我们会用激活函数(
)对
加以转换,即我们会用
替代上式的
。
综合以上两点,得到机器学习的交叉熵损失函数: