【机器学习】交叉熵损失函数

参考:

交叉熵损失函数

1、信息熵

1.1、信息论中的熵

信息论中,熵的定义:无损编码事件信息的最小平均编码长度。

假设一个信息事件有 8 种可能的状态,且各状态等可能性,即可能性都是 12.5%=18

P=1n

我们需要多少位来编码 8 个值呢?

我们可以直接用二进制编码来解决整个问题:分别用二进制的 0,1,2,···7 对应一种可能的状态。img

8 个状态的二进制编码中,少于长度 3 的编码会出现歧义,大于 3 是没有必要的,也就是保证了这是最小的值。

由此,我们很容易得到,编码一个有 n 种可能状态的信息,所需的最小编码长度为:

log2n=log21n=log2P

那么平均最小编码长度,也就是熵的公式为:

Entropy=iP(i)log2P(i)

1.2、广义熵的理解

在信息学之外,熵被解释为:混乱程度,不确定性,惊奇程度,不可预测性,信息量等。

如果熵比较大,表示整个状态越难以预测,愈加的混乱。

如果理解呢?

来看公式中的这一部分 log2P(i) ,我们知道 log 函数的值越接近 0 ,越向 靠拢。那么 log 就是越向 靠拢。

也就是说,P(i) 的概率越小,log2P(i) 的值越大。

如果一个事件有非常多的状态,且每一个状态发生的概率都很小,那么熵的值就会非常大,这就是上面提到的混乱程度,不确定性。

2、交叉熵

2.1、信息论中的交叉熵

交叉熵(Cross Entropy)是 Shannon 信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。

信息论中,交叉熵是表示两个概率分布 p,q,其中 p 表示真实分布,q 表示非真实分布,在相同的一组事件中,其中,用非真实分布 q 来表示某个事件发生所需要的平均比特数。从这个定义中,我们很难理解交叉熵的定义。下面举个例子来描述一下:

假设现在有一个样本集中两个概率分布 p,q,其中 p 为真实分布, q 为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:

H(p)=p(i)log2p(i)

但是,如果采用错误的分布 q 来表示来自真实分布 p 的平均编码长度,则应该是:

H(p)=p(i)log2q(i)

此时就将 H(p,q) 称之为交叉熵。

2.2、交叉熵作为损失函数

交叉熵损失函数具有以下几个优点:

  1. 非负性:交叉熵损失函数的值总是非负的,这符合损失函数的基本要求。
  2. 凸函数:交叉熵损失函数是一个凸函数,这意味着在优化过程中可以避免陷入局部最小值,从而更容易找到全局最优解。
  3. 梯度明显:交叉熵损失函数的梯度在模型预测错误时较大,在预测正确时较小。这使得模型在训练过程中能够更快地调整参数,提高训练效率。

__EOF__

本文作者Hoppz
本文链接https://www.cnblogs.com/hoppz/p/18130717.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Hoppz  阅读(288)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示