Skip to content
清晨的一缕阳光
返回

机器学习速成·逻辑回归(2/2):损失与正则化——为什么用对数损失

机器学习速成·逻辑回归(2/2):损失与正则化——为什么用对数损失

本文参考 Google 机器学习速成课程 - 逻辑回归:损失和正则化(Loss and Regularization) 模块撰写,承接上一篇,讲清逻辑回归训练时的两大核心差异:为什么用对数损失函数、以及为什么正则化至关重要。


一、逻辑回归的训练流程

逻辑回归模型的训练过程和线性回归一样(用梯度下降迭代找最优权重),但有两点主要区别

  1. 损失函数不同:用对数损失函数,而不是平方损失函数。
  2. 正则化至关重要:必须用正则化防止过拟合

下面分别展开。


二、区别一:为什么不用平方损失,而用对数损失?

2.1 平方损失在线性”恒定变化率”下很好用

线性回归用平方损失(L₂)效果好,是因为线性模型的变化率是恒定的

例如线性模型 y′ = b + 3x₁:每次把 x₁ 增加 1,输出 y′ 就增加 3——变化是均匀的

2.2 但逻辑回归的 sigmoid 变化率不恒定

逻辑回归的输出经过 S 型函数,是非线性的 S 形曲线,变化率一直在变:

看 S 型函数在两端的行为:

输入logistic 输出需要记录的精度位数
50.9933
70.9993
80.99974
90.99994
100.999985

越接近 0 或 1,输出变化越细小——如果用平方损失在 S 型函数上算误差,就得用更多内存去记录这些接近 0/1 的微小差异,既不准确又不划算。

2.3 对数损失:衡量”变化量”而不是”距离”

正因为此,逻辑回归改用对数损失函数。它不是衡量”预测与实际的距离”,而是返回变化幅度的对数

$$\text{对数损失} = -\frac{1}{N}\sum_{i=1}^{N}\left[, y_i\log(y’_i) + (1-y_i)\log(1-y’_i) ,\right]$$

各符号含义:

2.4 为何要用”平均”对数损失

上面公式是对所有样本的对数损失求平均。实践中,**用平均(而非总和)**是有益的,因为:

平均对数损失可以把批次大小学习速率的调整分离开——改批次时不需要跟着调学习率。


三、区别二:为什么正则化至关重要?

3.1 问题根源:不正则化 → 损失趋向 0 → 过拟合

正则化是一种在训练期间惩罚模型复杂性的机制。在逻辑回归中它极其重要,因为:

当模型有大量特征时,逻辑回归的渐近性质(sigmoid 逼近 0/1)会让损失不断趋向 0——模型开始死记硬背训练数据,而不是概括规律,这就是过拟合

3.2 两种主流降复杂度的策略

多数逻辑回归模型会采用以下两种策略之一

策略做法
L₂ 正则化在损失中加入对权重平方和的惩罚,迫使模型的权重尽量小、更简单
早停法(Early Stopping)限制训练步数,在损失仍在下降时提前停止,避免训练过头

正则化的详细内容(L1/L2、早停法背后的原理)会在本课程的**“数据集、泛化和过拟合”**模块中深入讲解。


四、关键术语速查


五、小结

维度线性回归逻辑回归
变化率恒定不恒定(sigmoid S 形)
损失函数平方损失(L₂)对数损失
正则化可选至关重要(特征多时损失会趋向 0)
防过拟合手段L₂ 正则化 / 早停法

一句话:逻辑回归不像线性回归那样”匀速”,所以要用衡量变化幅度的对数损失;又因为特征一多损失就疯狂趋近 0,所以必须靠正则化(L₂ 或早停)给它”踩刹车”,才不会过拟合。


分享这篇文章到:

上一篇文章
机器学习速成·分类(1/4):简介、分类阈值与混淆矩阵
下一篇文章
机器学习速成·逻辑回归(1/2):简介与 S 型函数——让模型输出概率