目录
1、L1范数损失
output和target差的绝对值
torch.nn.L1Loss(reduction='mean')
2、均方误差损失
也称为L2 Loss,常用作回归模型中
torch.nn.MSELoss(reduction='mean')
如果模型预测和真实值之间的误差服从标准高斯分布,那么使用最大化似然就会得到均方误差函数。推导过程:
- 给定模型输出真实值的概率:
- 假设数据集中N个样本点之间相互独立,那么给定所有模型输出所有真实值的概率(对数似然Likelihood):
- 最大化对数似然Log- Likelihood:
- 上式第一项和无关,转换为最小化负对数似然:
所以在高斯分布的假设下,可以对回归使用均方差损失,而分类中不满足高斯分布假设,所以一般不使用均方差损失。
3、平均绝对误差损失(MAE)
也称为L1 Loss。
同样我们可以在一定的假设下通过最大化似然得到 MAE 损失的形式,假设模型预测与真实值之间的误差服从拉普拉斯分布 Laplace distribution,则给定一个 模型输出真实值 的概率为:
同样的推导过程:
MAE和MSE的区别:其实从公式就能看出来,MSE能更快收敛,但是对异常数据更加敏感,MAE收敛较慢,但是对异常数据更加健壮,所以就出现了Huber Loss。
4、Huber Loss
huber损失就是将MSE和MAE结合起来,在误差接近0的时候用MSE,误差较大的时候使用MAE:
其中是超参数,决定在哪个数值切换loss,圈住的部分是为了保证MAE和MSE在的数值相同,保证loss可导。
5、分位数损失Quantile Loss
对于MAE,取得是绝对值,不管预测值是高于真实值还是低于真实值,最后的损失值可能相同,而实际情况可能会做区分:
是个超参数,当的时候,低位损失(预测值小于真实值)更重要,反过来高位损失(预测值大于真实值) 的样本更重要。如果就是MAE
6、交叉熵损失
分类问题损失函数,这个应该覆盖了90%的任务。对于二分类,只有0,1两个类别,因此:
合起来并称一个公式:
为预测值,标签为 1时,结果和上式第一条一样,标签为0时,与第二条一样。
假设数据点之间独立同分布,则所有数据点的概率结果为:
取对数,最大化似然函数,加负号和对数即为最小化负对数似然函数:
对于多分类:
k表示类别,一共K个类别。
描述了两个概率分布的差异,常用于分类模型中。神经网络输出的向量,经过softmax激活函数(二分类是sigmoid函数)归一化,得到概率分布,再计算损失函数。
7、Hinge Loss合页损失
这是一种二分类损失,SVM模型的损失函数本质上就是Hinge Loss + L2正则化。
如标签为1,分类为1的概率为0.51,那么交叉熵损失值为-log0.51 = 0.67,合页损失值为0.49,如果分类为1的概率为0.01那么损失值 -log 0.01 = 4.605,合页损失值为0.99,所以如果预测正确但是概率值较小时,损失值差不多,但是对于预测错误的数据,合页损失值明显较小,说明合页损失对于异常值不敏感,这一点优于交叉熵损失。