文章目录前言一、损失函数到底在干嘛二、MSE在看“距离”三、交叉熵在看“你有多确定你是对的”分类问题的本质举个最关键的例子四、核心对比MSE vs 交叉熵五、为什么分类任务不用 MSE原因1优化目标不一样原因2对错误的惩罚不同六、把前面的知识串起来前言在训练模型的时候我们一定会用到“损失函数”。但很多人其实是这样理解的MSE算误差交叉熵也是算误差于是很容易产生一个问题既然都是算误差那随便用一个不就行了吗但现实是选错损失函数模型可能根本学不动。这篇文章我们用一张图把这个问题彻底讲清楚。这张图其实已经给出了一个非常重要的结论数值预测 → 用 MSE类别概率 → 用交叉熵一、损失函数到底在干嘛在训练过程中模型每做一次预测都会和真实答案做一次对比。这个“差距”就是损失函数Loss。换句话说损失函数就是模型的“评分标准”。而我们前面讲过模型每一次 Iteration其实都在做一件事让这个 Loss 变小。所以本质上损失函数决定了模型“怎么学”。二、MSE在看“距离”我们先看图的左半部分MSE-均方误差做的事情非常直观计算预测值和真实值之间的距离。一个具体例子假设真实温度是25°C模型预测了20°C、28°C那么误差分别是不管是高了还是低了MSE 都只是关心一件事离得远不远。用公式看更清楚通俗一点说就是预测值离真实值越远惩罚越大。一句话总结MSE 本质是在衡量“差多少”。适用场景房价预测温度预测销量预测这些都是连续数值问题回归问题三、交叉熵在看“你有多确定你是对的”再看图的右半部分。这里的任务已经变了不再是预测一个具体数值而是判断类别。比如这张图片是“猫”还是“狗”。分类问题的本质真实答案是猫 → 1狗 → 0模型输出的不是“一个数值”而是猫的概率0.2狗的概率0.8问题就变成了你预测的概率和真实概率差多少交叉熵的核心目标是让预测概率尽可能接近真实概率。举个最关键的例子真实标签猫1模型预测情况10.9情况20.6情况30.1这三种情况的区别在于0.9很接近正确0.6有点模糊0.1严重错误交叉熵的特点是预测越接近 0但真实是 1惩罚会急剧变大。一句话总结交叉熵不是在看“差多少”而是在看你有多确定你是对的。适用场景图像分类猫/狗文本分类垃圾邮件识别这些都是概率分类问题四、核心对比MSE vs 交叉熵我们用同一个例子对比一下真实标签 1是猫可以看到一个非常关键的差异MSE 的惩罚是“平滑的”交叉熵的惩罚是“陡峭的”换句话说MSE 比较温和交叉熵更严格五、为什么分类任务不用 MSE这才是最关键的一步。原因1优化目标不一样MSE 在做最小化“数值距离”交叉熵在做最大化“概率正确性”而分类问题本质上是概率问题而不是距离问题。原因2对错误的惩罚不同MSE错误也惩罚但不够“狠”交叉熵越自信但越错惩罚越大这会带来一个重要影响模型在交叉熵下更容易被“拉回正确方向”。六、把前面的知识串起来我们前面讲过BatchIteration梯度下降现在可以把它们全部串起来每一次 Iteration模型都会做一次预测计算 Loss根据 Loss 更新参数而这个 Loss就是我们这里讲的MSE 或 交叉熵也就是说损失函数不仅是“算误差”而是决定模型怎么更新参数。损失函数决定了模型“怎么学”而不是只是“算误差”。