逻辑回归的损失函数

逻辑损失函数的定义

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

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

相关推荐
@心都3 小时前
机器学习数学基础:29.t检验
人工智能·机器学习
Dizzy.5173 小时前
数据结构(查找)
数据结构·学习·算法
倒霉蛋小马6 小时前
【YOLOv8】损失函数
深度学习·yolo·机器学习
分别努力读书6 小时前
acm培训 part 7
算法·图论
武乐乐~6 小时前
欢乐力扣:赎金信
算法·leetcode·职场和发展
'Debug6 小时前
算法从0到100之【专题一】- 双指针第一练(数组划分、数组分块)
算法
补三补四6 小时前
金融时间序列【量化理论】
机器学习·金融·数据分析·时间序列
Fansv5876 小时前
深度学习-2.机械学习基础
人工智能·经验分享·python·深度学习·算法·机器学习
yatingliu20198 小时前
代码随想录算法训练营第六天| 242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数 、1. 两数之和
c++·算法
uhakadotcom8 小时前
Google DeepMind最近发布了SigLIP 2
人工智能·算法·架构