交叉熵损失函数

<fontolor=green>线性回归模型产生的预测值是连续的实数值,不适合直接处理分类任务。为了实现分类,可以利用广义线性回归的思想,在线性模型之上,再增加一个Sigmoid函数,把线性模型的输出映射到0到1之间,输出一个概率值,并根据这个概率值实现分类。
在这里插入图片描述
为了衡量模型的优劣,需要使用损失函数,在线性回归模型中,通常使用平方损失函数,下图为逻辑回归的平方损失函数。
在这里插入图片描述
采用梯度下降法来更新模型 w 和 b 时,
在这里插入图片描述
从公式可以看出,需要计算损失函数对 w 和 b 的偏导数。

用损失函数分别计算对 w 和 b 的偏导数,得出公式如下:
在这里插入图片描述
从上面两个式子中可以看到,都用到了
在这里插入图片描述
也就是说需要对这个 Sigmoid 函数求导数。

从上图中的 Sigmoid 函数的曲线可以看出,在大部分的时间(绿色框中往后都是)都是比较平坦的,在这些地方,它的导数非常接近于0,这就会使得损失函数对 w 和 b 的偏导数也非常小,进而导致迭代更新 w 和 b 时,步长非常小,更新非常缓慢。
在这里插入图片描述
另外,在线性回归中,平方损失函数是一个凸函数,只有一个极小值点,但是在逻辑回归中,它的平方损失函数是一个复杂的非凸函数,有多个局部极小值点,使用梯度下降法,就有可能会陷入局部极小值中。

为了解决这些问题,在逻辑回归中,通常采用交叉熵损失函数来代替平方损失函数,交叉熵损失函数的表达式如下:
在这里插入图片描述
(记忆方法,yi 的取值是0或1,而( yi 尖)的取值只会无限趋近于0或者1,因为,因为前面的对数的原因,当 y=0 时,ln0是没有意义的,所以只能是对 ( yi 尖) 取对数。)

其中,
在这里插入图片描述
平均交叉熵损失函数公式如下:
在这里插入图片描述
对于某个样本来说,当它的真实标签 yi = 1 时,1 - yi = 0,这个损失就是第一项
在这里插入图片描述
这是它的曲线图:
在这里插入图片描述
而当它的真实标签 yi = 0 时,1 - yi = 1,这个损失就是第二项为
在这里插入图片描述
这是它的曲线图:
在这里插入图片描述
我们知道作为所示函数,需要具备两个性质:

1、非负性

这是为了保证不同样本的误差不会相互抵消,可以看到,交叉熵损失函数中的每一项都是正的。
在这里插入图片描述
满足非负性的要求。

2、一致性
函数的值应该和误差的变化趋势一致。
在这里插入图片描述
从下图中可以看到,在交叉熵损失函数中,当样本标签值为 1 时,预测值越接近于1(y - y尖越小),损失的值越小。同样当样本标签值为 0 时,预测值越接近于0(y - y尖越小),损失的值越小。
在这里插入图片描述
交叉熵损失函数不仅具备作为损失函数的两条基本性质,而且它还有更多的优点。下图为交叉熵损失函数对模型参数 w 和 b 的偏导数。
在这里插入图片描述
可以看到,它不需要对Sigmoid 函数求导数,因此它能够有效地克服平方损失函数应用于逻辑回归时,更新模型参数过慢的问题。

这个偏导数的值只受到预测值和真实值之间的误差的影响。
在这里插入图片描述
当误差比较大时,偏导数也比较大,模型参数的更新速度就比较快,当误差比较大时,偏导数也比较小,模型参数的更新速度就比较慢,这也符合我们训练模型的要求。

除此之外,交叉熵损失函数是凸函数,因此使用梯度下降法得到的极小值就是全局极小值。

下面,来看一个例子:
在这里插入图片描述
假设这是一个逻辑回归任务的训练集,其中有四个样本。

我们可以使用准确率来评价一个分类器的性能。下面为计算公式,本例中这个模型对所有样本的概率预测都和标签的类别一致,能够正确分类,所以准确率为100%
在这里插入图片描述
下面,来计算一下它的交叉熵损失值和平均交叉熵损失值,公式如下:
在这里插入图片描述
再假设一下,有个模型A对所有样本的概率预测如下:
在这里插入图片描述
现在这个模型的预测准确率为:
在这里插入图片描述
假设还有一个模型 B,
在这里插入图片描述
同样这个模型的预测准确率为:
在这里插入图片描述

比较这两个模型,模型A对前三个样本的判断非常准确,对于样本4,虽然判断错误,但是也没有错的太离谱。

而对于模型B,虽然也只是预测错了一个,但是这三个预测正确的也都比较悬,正好在阈值附近。而这个错误的错的非常离谱。

在这两个模型中,模型A的表现更好,但是它们的分类准确率都是75%,可见仅仅通过准确率是无法细分出模型的优劣的,下面来计算下它们的交叉熵损失值。

模型A:
在这里插入图片描述
模型B:
在这里插入图片描述
可见,模型A的损失明显低于模型B,交叉熵损失函数能够很好地反映出概率之间的误差,是训练分类器时的重要依据。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuechanba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值