在机器学习与深度学习中,损失函数(Loss Function) 是模型训练中非常核心的一部分。
它衡量模型的预测值与真实值之间的差距,并指导参数更新。
不同的任务类型(回归、分类、分割等)会选用不同的损失函数。
本文将按任务类型,介绍几种常用的损失函数。
1.回归任务常用损失函数
目标:预测一个连续数值(例如房价、温度、销售量等)
1.1. 什么是线性回归?
线性回归是一种用“直线”来拟合数据,并根据这条直线进行预测的算法。

这是一张典型的线性回归示意图:
- 蓝色散点:实际的数据
- 红色直线:模型拟合出来的最佳回归线
它清晰地展示了“输入x与输出y地线性关系。
线性回归的目标就是找到这条最佳回归线,让直线尽量靠近每个点。这通常通过最小化“损失函数”来实现。
1.2. 均方误差(MSE, Mean Squared Error)
均方误差是一种常用的回归模型损失函数。计算方式是先求出每个样本预测值和真实值得差值,然后对这些差值求平方,最后求得所有平方值得平均值。因为平方操作会放大误差得影响,所以对大误差比较敏感。
公式:
其中:
:样本数量
:第i个样本预测值
: 第i个样本的真实值
1.3. 平均绝对误差(MAE, Mean Absolute Error)
平均绝对误差计算得是预测值与真实差值的绝对值的平均值。因为没有对误差求平方,对异常值不敏感。
公式:
1.4. Huber 损失
Huber是一种结合了MSE和MAE优点的损失函数,它在误差较小时表现得像MSE,在误差较大时表现得像MAE。
单个样本损失:
其中:
:超参数,用于控制从MSE到MAE的过度点
2. 二分类任务常用损失函数
目标:输出类别为两类,例如“猫 vs 狗”
2.1 二元交叉熵损失(Binary Cross-Entropy)
通过对数放大预测概率与真是标签的偏差,预测结果越接近真实概率,损失越小,反正则损失急剧增大。能很好地衡量预测概率和真实标签的差距。
单个样本损失:
数据集平均损失:
其中:
:样本数量
: 第i个样本的真实标签(仅取0或1)
:第i个样本预测概率(需搭配Sigmoid激活函数,将原始输出压缩到(0,1)区间,该输出值代表样本属于正类的概率)
说明:
-
Sigmoid函数曲线: 是一种S型的连续非线性激活函数,核心作用是将任意实数范围的输入压缩到(0, 1) 区间。

-
log(x)函数曲线:log(1)=0,当x趋近0的时候,log(x)趋近负无穷大。

-
当真实标签
=1(正类):
公式简化为
若接近1,
接近0, 损失极小。
若接近0,
接近趋近
, 损失急剧增大。
-
当真实标签yiyi=0(正类):
公式简化为
若
接近0,
接近0, 损失极小。
若接近1,−log(1−y^i)−log(1−y^i)接近趋近
, 损失急剧增大。
3. 多分类任务常用损失函数
目标:预测多个类别中的一个,如数字识别、图像分类等
3.1 交叉熵损失(Categorical Cross-Entropy)
核心作用是通过对数函数实现对预测偏差的差异化惩罚。真实标签需要用“独热编码(One-Hot Encoding)”。
单个样本损失:
其中:
:分类类别的数量
: 第i个样本的独热标签中,第c类的真实值(仅0或1)
:第i个样本经Softmax输出后,第c类的预测概率
说明:
-
独热编码(One-Hot Encoding)
独热编码是一种将离散类别标签转换为二进制向量的编码方式,核心特点是“向量长度等于类别总数,仅真实类别对应的位置为 1,其余位置均为 0”,以此将非数值型的类别标签转化为模型可理解的数值格式,尤其适用于多分类任务(如交叉熵损失计算)。
- 示例:三分类任务(类别:猫=0、狗=1、鸟=2)
原始类别标签 独热编码标签 含义解读 猫(索引 0) [1, 0, 0] 仅“猫”对应的位置为 1,代表样本属于猫类 狗(索引 1) [0, 1, 0] 仅“狗”对应的位置为 1,代表样本属于狗类 鸟(索引 2) [0, 0, 1] 仅“鸟”对应的位置为 1,代表样本属于鸟类 -
Softmax函数
Softmax 函数是一种将模型的多类别原始线性输出(如 z_1, z_2, ..., z_C )转换为合法概率分布的非线性激活函数,核心作用是让输出满足“每个类别概率 ∈ [0,1] 且所有类别概率之和 = 1”,是多分类任务中模型输出层的“标配激活函数”,需与 Categorical 交叉熵损失搭配使用。

1944

被折叠的 条评论
为什么被折叠?



