交叉熵

鸣谢:https://blog.csdn.net/tsyccnh/article/details/79163834


交叉熵_第1张图片
图片.png

什么是熵?

X是一个离散型随机变量,其取值集合为X,可以理解为,一个事件发生的概率越大,则它所携带的信息量就越小,而当p(x0)=1时,熵将等于0,也就是说该事件的发生不会导致任何信息量的增加。


熵的定义:

X的熵定义为:

例:HA(x)=−[p(xA)log(p(xA))+(1−p(xA))log(1−p(xA))]=0.4690

如果p(x)是连续型随机变量的pdf,则熵定义为:

我们假设一个成绩相对普通的学生小东,他及格的概率是P(xC)=0.5,即及格与否的概率是一样的,对应的熵:
HC(x)=−[p(xC)log(p(xC))+(1−p(xC))log(1−p(xC))]=1
其熵为1,他的不确定性较高,在成绩公布之前,很难准确猜测出他的考试结果。 可以看出,熵其实是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。

交叉熵_第2张图片
image.png

什么是相对熵?

对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。

在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1]

                       

n为事件的所有可能性。
的值越小,表示q分布和p分布越接近


交叉熵怎么计算?
https://blog.csdn.net/u011754972/article/details/80857578

=

交叉熵就是等式最终的右侧:
左侧是P分布的熵

在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1] ,因为用相对熵刻画两种分布的异同时,真实分布的熵很显然不会变,所以只需要保障交叉熵最小即可。

交叉熵与MSE(均分误差):
https://www.jianshu.com/p/9026f3bef575

  • 交叉熵计算量更小一点,MSE需要计算每一个类别比如y_pre(0.2, 0.3, 0.5)yi(0,1,0) 需要计算3个减法平方相加(0.2-0)^2 + (0.3-1) ^ 2 + (0.5-0)^2,使用交叉熵的话 值只需要计算-0.3*log(0.3)

  • 交叉熵对梯度的更新不需要对sigmoid函数求导,权重的学习速度只受到 σ(z)-y 的控制,即输出与标签的误差的控制,而与sigmoid函数的导数无关。

  • 收敛速度交叉熵比MSE更快,举个例子:

一个样本预测值[x,1-x],目标值[0,1],另一个样本预测值[y,1-y],目标值[1,0]



由下图可见MSE比交叉熵更平缓,在复杂的多分类问题中可能计算收敛速度较慢。

交叉熵_第3张图片
图片.png

你可能感兴趣的:(交叉熵)