完整题目
请写出逻辑回归中使用的二分类交叉熵损失函数的数学表达式,并解释其设计动机和优势。
本文目录
数学表达式
对于二分类问题,设真实标签 ,模型输出概率 ,其中 。
面试题 · 大模型训练与微调
搜索「成本」匹配到口述回答,相关段落已展开。查看匹配内容 ↓
请写出逻辑回归中使用的二分类交叉熵损失函数的数学表达式,并解释其设计动机和优势。
对于二分类问题,设真实标签 ,模型输出概率 ,其中 。
按学习路线查看教程、项目和面试题。
交叉熵损失:
或等价写成:
| 特性 | 说明 |
|---|---|
| 凸函数 | 对参数 是凸的,保证全局最优,梯度下降收敛稳定 |
| 梯度非饱和 | ,误差大时梯度大,学习信号强 |
| 概率解释 | 输出天然是概率,与sigmoid配合形成完整概率框架 |
MSE在 接近0或1时梯度极小(sigmoid饱和),导致学习停滞;交叉熵通过对数放大误差,避免了这一问题。
场景切入
假设你在做一个电商的订单风控模型,用逻辑回归判断交易是否欺诈。正样本(欺诈)很少,模型输出一个0到1的概率。你怎么设计损失函数,让模型能更关注那些罕见的欺诈样本?
层层追问
逻辑回归里我们通常用交叉熵损失,你知道它的公式吗?……为什么用交叉熵而不用均方误差?……如果真实标签是0或1,预测值接近0或1时,梯度会怎样?
直球架构
请写出逻辑回归二分类交叉熵损失的数学表达式,并解释它的设计动机和相比MSE的优势。注意要包含真实标签y和预测概率ŷ的关系。
这道题问的是二分类交叉熵损失函数,其实核心就一句话:它让模型输出的概率分布尽量贴近真实标签的分布,设计动机来自极大似然估计。说白了,就是假设标签服从伯努利分布,然后最大化看到当前数据这个参数的可能性。
具体写一下公式。对于单个样本,真实标签y是0或1,模型输出概率是ŷ,那损失就是负的y乘以logŷ加上1-y乘以log(1-ŷ)。你可以这么理解:当y等于1的时候,损失就是负的logŷ,我们希望ŷ尽量接近1,这样logŷ接近0,损失就小;当y等于0的时候,损失是负的log(1-ŷ),希望ŷ接近0。这个形式天然地把错误预测的代价放大了,尤其当预测概率接近0或1但方向反了的时候,损失会变得非常大。
那为什么不用更直观的均方误差呢?这里有个关键区别。逻辑回归最后接的是sigmoid,这个函数在两端非常平缓,梯度几乎为0。如果用MSE,当模型预测错得离谱时,梯度反而很小,学习就停滞了。而交叉熵的梯度是ŷ减y,误差越大梯度越大,学习信号很强。所以交叉熵不仅数学上跟极大似然等价,工程上也更友好,收敛更稳。
再说到业务落地。我举一个客服退款场景。模型要判断用户投诉是否应该退款,标签是退或不退。如果模型预测退款概率是0.9,但实际不该退,那损失就是负的log0.1,大概2.3;反过来预测0.1但实际该退,损失也是2.3。但业务上这两种错误的成本可能完全不同,不该退的退了,直接损失钱;该退的没退,只是用户体验差一点。所以实际中我会调正负样本的权重,或者修改损失函数,比如给假阳性更大的惩罚。这里有个前提:业务方必须能给出误判成本的比例,否则调权就是拍脑袋。常见的失败场景是,样本严重不平衡但直接套标准交叉熵,模型会全预测成多数类,准确率虚高但召回率为0。上线我会特别关注坏样本的召回率,而不是整体准确率。
另外,二分类交叉熵可以自然地扩展到多分类,变成softmax加交叉熵,公式形式类似,但分母是所有类别的指数和。面试官如果深挖,可能会问多分类时如果类别数特别多,计算量怎么优化,或者样本不平衡时怎么调整损失。
所以我会把交叉熵看成逻辑回归的默认选择,它跟sigmoid天然配对,梯度特性好,又有概率解释。但在真实业务里,我会根据误判成本、样本分布做调整,不会无脑套公式。