Logistic回归为什么不用均方误差 MSE(square error)

Logistic回归为什么不用均方误差 MSE(square error)

逻辑回归:输出 y^=σ(z)=11+e−z\hat y=\sigma(z)=\frac{1}{1+e^{-z}}y^=σ(z)=1+e−z1,KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲z=wx+b\),y^∈(0,1)\hat y\in(0,1)y^∈(0,1),标签 y∈{0,1}y\in\{0,1\}y∈{0,1}。

1. MSE损失形式

LMSE=(y^−y)2=(σ(wx+b)−y)2 L_{MSE}=(\hat y-y)^2=\big(\sigma(wx+b)-y\big)^2 LMSE=(y^−y)2=(σ(wx+b)−y)2

问题1:损失函数非凸,存在大量局部极小点

对比:逻辑回归标准损失是二元交叉熵 BCE ,损失曲面是凸函数,梯度下降一定能找到全局最优。

MSE套在sigmoid外面,整体函数不是凸函数,优化很容易卡在局部最小值,得不到最好参数。

问题2:梯度消失,训练几乎不动(最核心)

求MSE对权重www的导数:

∂LMSE∂w=2(y^−y)⋅σ′(z)⋅x \frac{\partial L_{MSE}}{\partial w}=2(\hat y-y)\cdot\sigma'(z)\cdot x ∂w∂LMSE=2(y^−y)⋅σ′(z)⋅x

sigmoid导数:

σ′(z)=σ(z)(1−σ(z))\sigma'(z)=\sigma(z)(1-\sigma(z))σ′(z)=σ(z)(1−σ(z))

当 y^\hat yy^ 和真实标签差距很大的时候:

例:真实标签 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲y=1\),模型输出 y^≈0\hat y\approx0y^≈0,此时 z≪0z\ll0z≪0,σ(z)\sigma(z)σ(z)接近0,σ′(z)≈0\boldsymbol{\sigma'(z)\approx0}σ′(z)≈0。

虽然误差项 (y^−y)(\hat y-y)(y^−y)很大,但是 σ′(z)\boldsymbol{\sigma'(z)}σ′(z) 趋近于0,整体梯度几乎等于0 。

参数几乎不更新,模型学的极慢,陷入僵住。

简单例子:

样本 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲y=1\),模型输出0.01,误差很大,但是sigmoid落在饱和区,导数几乎为0,梯度下降几乎不更新权重。

✅反观交叉熵损失梯度:

∂LBCE∂w=(y^−y)⋅x \frac{\partial L_{BCE}}{\partial w}=(\hat y-y)\cdot x ∂w∂LBCE=(y^−y)⋅x

没有sigmoid导数项,误差大的时候梯度就大,参数正常更新,不会梯度消失。

问题3:概率意义不匹配

MSE来自高斯噪声假设,适合回归任务(输出是连续实数)。

逻辑回归是分类,标签是离散0/1,假设是伯努利分布,数学上对应交叉熵,MSE并不是这个分布下的最大似然代价函数。

直观对比

MSE(平方误差) Binary Cross‑Entropy交叉熵
非凸,局部最优陷阱 凸损失,全局最优
sigmoid饱和区梯度消失,训练停滞 梯度干净,误差越大梯度越大,训练稳定
回归任务假设,不匹配0‑1分类分布 等价最大似然,符合分类概率假设

补充:那Softmax多分类能不能用MSE?

同样的问题:

  1. softmax也会进入饱和,梯度消失;
  2. 损失非凸;
  3. 不对应多分类的多项式分布最大似然。
    所以多分类同样用交叉熵,不用MSE。

小误区

MSE不是完全不能跑,有时候能收敛。但是训练极慢,极易卡在局部最优,工程上绝对不用。

一句话总结

logistic回归用sigmoid输出,平方误差会引入sigmoid导数,在预测严重错误时发生梯度消失;同时损失非凸,容易陷入局部极小,数学上也不匹配分类任务的概率假设,因此采用交叉熵损失。

相关推荐
Shockang22 分钟前
llama.cpp 本地运行 9B 模型:部署、工具调用与微调数据
人工智能
Shockang30 分钟前
n8n 智能体工作流实战:触发、工具、记忆与发布护栏
人工智能
冬奇Lab2 小时前
开源项目第241期:YuE2 —— 用符号乐谱当“白盒“接口的开源音乐生成模型,SongBench 超越 Suno v5/v6
人工智能
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天3 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源