逻辑回归的损失函数

逻辑损失函数的定义

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

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)会有较大的惩罚,从而推动模型学习更加准确的预测。

相关推荐
Boop_wu30 分钟前
[数据结构] 哈希表
算法·哈希算法·散列表
Mingze03141 小时前
C语言四大排序算法实战
c语言·数据结构·学习·算法·排序算法
B站_计算机毕业设计之家1 小时前
Python+Flask+Prophet 汽车之家二手车系统 逻辑回归 二手车推荐系统 机器学习(逻辑回归+Echarts 源码+文档)✅
大数据·人工智能·python·机器学习·数据分析·汽车·大屏端
MoRanzhi12031 小时前
SciPy傅里叶变换与信号处理教程:数学原理与Python实现
python·机器学习·数学建模·数据分析·信号处理·傅里叶分析·scipy
dlraba8022 小时前
Pandas:机器学习数据处理的核心利器
人工智能·机器学习·pandas
m0_677034352 小时前
机器学习-推荐系统(上)
人工智能·机器学习
箫乾2 小时前
第78篇:AI+交通:自动驾驶、智能交通管理与物流优化
人工智能·机器学习·自动驾驶
IT古董2 小时前
【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】3.生成式算法实战:扩散模型-(3)DDPM模型训练与推理
人工智能·算法·计算机视觉
独自破碎E2 小时前
Leetcode2166-设计位集
java·数据结构·算法
ARM+FPGA+AI工业主板定制专家2 小时前
基于JETSON/RK3588机器人高动态双目视觉系统方案
人工智能·机器学习·fpga开发·机器人·自动驾驶