逻辑回归的损失函数

逻辑损失函数的定义

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

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

相关推荐
躺着听Jay2 分钟前
QCustomPlot-相关优化
java·qt·算法
扫地僧00913 分钟前
【中大厂面试题】腾讯 后端 校招 最新面试题
java·数据结构·后端·算法·面试·排序算法
qystca35 分钟前
二分答案----
算法·二分
编程绿豆侠42 分钟前
力扣HOT100之链表:138. 随机链表的复制
算法·leetcode·链表
uhakadotcom1 小时前
JAX 框架:高性能数值计算的新时代
算法·面试·github
uhakadotcom2 小时前
构建实时API智能代理:快速构建多代理语音应用
算法·面试·github
uhakadotcom2 小时前
快速理解 tiktoken:OpenAI 的高效文本编码工具
算法·面试·github
做人求其滴2 小时前
蓝桥杯C/C++省赛/国赛注意事项及运行环境配置
算法·蓝桥杯·编译器·c/c++·算法竞赛·运行环境·第十六届
搏博2 小时前
在WPS中通过JavaScript宏(JSA)调用DeepSeek官网API优化文档教程
javascript·人工智能·windows·深度学习·机器学习·wps
写个博客2 小时前
代码随想录算法训练营第十五天
算法