逻辑回归的损失函数

逻辑损失函数的定义

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

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

相关推荐
慕容复之巅4 分钟前
基于Matlab的图像去噪算法仿真(二)
图像处理·算法·matlab
计算机科研之友(Friend)7 分钟前
【自动驾驶】数据集合集!
人工智能·机器学习·自动驾驶
Lenyiin24 分钟前
02.02、返回倒数第 k 个节点
c++·算法·leetcode
慕容复之巅25 分钟前
基于Matlab的图像去噪算法仿真
图像处理·算法·matlab
SUN_Gyq37 分钟前
什么是C++中的Lambda表达式?它的作用是什么?Lambda表达式可以捕获哪些类型的变量?有哪些捕获方式?
java·开发语言·c++·算法
一位小说男主1 小时前
线性分类器全解析:Logistic 回归、Softmax 回归、感知器和支持向量机
人工智能·深度学习·机器学习·回归
9ilk1 小时前
【分治】--- 快速选择算法
算法
終不似少年遊*2 小时前
数学知识1
人工智能·学习·算法·机器学习·数学建模
A Runner for leave2 小时前
105.找到冠军
java·数据结构·python·算法·leetcode
田梓燊3 小时前
湘潭大学软件工程算法设计与分析考试复习笔记(五)
笔记·算法·软件工程