逻辑回归的损失函数

逻辑损失函数的定义

逻辑损失函数(也称为交叉熵损失函数)定义如下:

L ( f w , b ( x ( i ) ) , y ( i ) ) = { − log ⁡ ( f w , b ( x ( i ) ) ) if y ( i ) = 1 − log ⁡ ( 1 − f w , b ( x ( i ) ) ) if y ( i ) = 0 L(f_{\mathbf{w}, b}(\mathbf{x}^{(i)}), y^{(i)}) = \begin{cases}- \log(f_{\mathbf{w}, b}(\mathbf{x}^{(i)})) & \text{if } y^{(i)} = 1 \\- \log(1 - f_{\mathbf{w}, b}(\mathbf{x}^{(i)})) & \text{if } y^{(i)} = 0 \end{cases} L(fw,b(x(i)),y(i))={−log(fw,b(x(i)))−log(1−fw,b(x(i)))if y(i)=1if y(i)=0

其中, f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))是模型对样本 x ( i ) \mathbf{x}^{(i)} x(i) 的预测值, y ( i ) y^{(i)} y(i)是样本的真实标签(0 或 1)。

损失函数的行为

  1. 如果 y ( i ) = 1 y^{(i)} = 1 y(i)=1:

    • 损失函数为 − log ⁡ ( f w , b ( x ( i ) ) ) - \log(f_{\mathbf{w}, b}(\mathbf{x}^{(i)})) −log(fw,b(x(i)))。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))接近 1 时,损失趋向于 0(因为 log ⁡ ( 1 ) = 0 \log(1) = 0 log(1)=0)。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))接近 0 时,损失趋向于无穷大(因为 log ⁡ ( 0 ) \log(0) log(0) 趋向于负无穷大,负号使得损失趋向于正无穷大)。
  2. 如果 y ( i ) = 0 y^{(i)} = 0 y(i)=0:

    • 损失函数为 − log ⁡ ( 1 − f w , b ( x ( i ) ) ) - \log(1 - f_{\mathbf{w}, b}(\mathbf{x}^{(i)})) −log(1−fw,b(x(i)))。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 接近 0 时,损失趋向于 0(因为 log ⁡ ( 1 ) = 0 \log(1) = 0 log(1)=0)。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 接近 1 时,损失趋向于无穷大(因为 log ⁡ ( 0 ) \log(0) log(0) 趋向于负无穷大,负号使得损失趋向于正无穷大)。

函数的解释

  1. y ( i ) = 0 y^{(i)} = 0 y(i)=0

    • 这部分展示了当 y ( i ) = 0 y^{(i)} = 0 y(i)=0 时,损失 L ( f w , b ( x ( i ) ) , y ( i ) ) L(f_{\mathbf{w}, b}(\mathbf{x}^{(i)}), y^{(i)}) L(fw,b(x(i)),y(i))随 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))的变化。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 趋近于 1 时,损失趋向于无穷大。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 趋近于 0 时,损失趋近于 0。
  2. y ( i ) = 1 y^{(i)} = 1 y(i)=1

    • 这部分展示了当 y ( i ) = 1 y^{(i)} = 1 y(i)=1时,损失 L ( f w , b ( x ( i ) ) , y ( i ) ) L(f_{\mathbf{w}, b}(\mathbf{x}^{(i)}), y^{(i)}) L(fw,b(x(i)),y(i)) 随 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))的变化。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i))趋近于 0 时,损失趋向于无穷大。
    • 当 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 趋近于 1 时,损失趋近于 0。

为什么预测接近1时,损失趋向于无穷大

根据损失函数的定义:

  • 当真实标签 y ( i ) = 0 y^{(i)} = 0 y(i)=0时,损失函数是 − log ⁡ ( 1 − f w , b ( x ( i ) ) ) -\log(1 - f_{\mathbf{w}, b}(\mathbf{x}^{(i)})) −log(1−fw,b(x(i)))。当预测值 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 趋近于1时, 1 − f w , b ( x ( i ) ) 1 - f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) 1−fw,b(x(i)) 趋近于0,而 log ⁡ ( 0 ) \log(0) log(0)趋向于负无穷大,因此损失趋向于正无穷大。

在逻辑损失函数中,损失值可以趋向于无穷大的原因在于对数函数的特性。让我们更详细地分析这一点。

为什么需要无穷大的损失

损失函数的设计意图是为了在模型预测错误时施加更大的惩罚,特别是当预测与真实标签相差甚远时:

  • 如果真实标签 y ( i ) = 1 y^{(i)} = 1 y(i)=1,但预测值 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 接近 0,这意味着模型对正类样本的置信度极低,损失函数会施加极大的惩罚以推动模型进行更正。
  • 如果真实标签 y ( i ) = 0 y^{(i)} = 0 y(i)=0,但预测值 f w , b ( x ( i ) ) f_{\mathbf{w}, b}(\mathbf{x}^{(i)}) fw,b(x(i)) 接近 1,这意味着模型对负类样本的置信度极高,损失函数同样会施加极大的惩罚。

这种设计确保了模型在训练过程中能够更快速地收敛到更准确的预测,同时减少重大错误的发生。

总结来说,逻辑损失函数通过对预测值和真实标签之间的差异进行量化,帮助优化算法调整模型参数,从而提高预测的准确性。损失函数的形式确保了在错误预测严重时(如将0预测为1或将1预测为0)会有较大的惩罚,从而推动模型学习更加准确的预测。

相关推荐
会员源码网12 小时前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)
后端·算法
木心月转码ing13 小时前
Hot100-Day10-T438T438找到字符串中所有字母异位词
算法
HelloReader14 小时前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人
算法
颜酱17 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
qianpeng89718 小时前
水声匹配场定位原理及实验
算法
董董灿是个攻城狮1 天前
AI视觉连载8:传统 CV 之边缘检测
算法
小黎14757789853641 天前
OpenClaw 连接飞书完整指南:插件安装、配置与踩坑记录
机器学习
AI软著研究员2 天前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish2 天前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
哥布林学者2 天前
高光谱成像(二)光谱角映射 SAM
机器学习·高光谱成像