深度学习基本知识点-损失函数

文章介绍了几种常见的损失函数,包括L1范数损失、均方误差损失、平均绝对误差损失(MAE)、HuberLoss、分位数损失、交叉熵损失和HingeLoss。这些损失函数在不同的场景下有不同的应用,例如L1和L2损失在回归问题中,交叉熵损失在分类问题中。HuberLoss结合了L1和L2的优点,对异常值更健壮。分位数损失则能区分高低误差的重要性。
摘要由CSDN通过智能技术生成

目录

1、L1范数损失

2、均方误差损失

3、平均绝对误差损失(MAE)

4、Huber Loss

5、分位数损失Quantile Loss

6、交叉熵损失

7、Hinge Loss合页损失

1、L1范数损失

output和target差的绝对值

torch.nn.L1Loss(reduction='mean')

2、均方误差损失

也称为L2 Loss,常用作回归模型中

J_{MSE} = \frac{1}{N}\sum_{i=1}^{N}(y_{i}-\hat{y}_{i})^{2}

torch.nn.MSELoss(reduction='mean')

如果模型预测和真实值之间的误差服从标准高斯分布,那么使用最大化似然就会得到均方误差函数。推导过程:

  • 给定x_{i}模型输出真实值y_{i}的概率:

p(y_{i}|x_{i}) = \frac{1}{\sqrt{2\pi }} exp(-\frac{(y_{i}-\widehat{y_{i}})^2}{2})

  • 假设数据集中N个样本点之间相互独立,那么给定所有模型x输出所有真实值y的概率(对数似然Likelihood):

L(y_{i}|x_{i}) =\prod_{i=1}^{N} \frac{1}{\sqrt{2\pi }} exp(-\frac{(y_{i}-\widehat{y_{i}})^2}{2})

  • 最大化对数似然Log- Likelihood:

log(L(x,y)) = -\frac{N}{2}log2\pi - \frac{1}{2}\sum_{i=1}^{N}(y_{i}-\widehat{y_{i}})^2

  • 上式第一项和y_{i}无关,转换为最小化负对数似然:

log(L(x,y)) = - \frac{1}{2}\sum_{i=1}^{N}(y_{i}-\widehat{y_{i}})^2

所以在高斯分布的假设下,可以对回归使用均方差损失,而分类中不满足高斯分布假设,所以一般不使用均方差损失。

3、平均绝对误差损失(MAE)

也称为L1 Loss。

J_{MAE} = \frac{1}{N}\sum_{i=1}^{N}\left | y_{i}-\widehat{y_{i}} \right |

同样我们可以在一定的假设下通过最大化似然得到 MAE 损失的形式,假设模型预测与真实值之间的误差服从拉普拉斯分布 Laplace distribution,则给定一个 x_{i} 模型输出真实值 y_{i}的概率为:

p(y_{i}|x_{i}) = \frac{1}{2} exp(-\left | y_{i}-\widehat{y_{i}} \right |)

同样的推导过程:

L(y_{i}|x_{i}) =\prod_{i=1}^{N}\frac{1}{2} exp(-\left | y_{i}-\widehat{y_{i}} \right |)

log(L(x,y))=Nln\frac{1}{2}-\sum_{i=1}^{N}\left | y_{i}-\widehat{y_{i}} \right |

log(L(x,y))=\sum_{i=1}^{N}\left | y_{i}-\widehat{y_{i}} \right |

MAE和MSE的区别:其实从公式就能看出来,MSE能更快收敛,但是对异常数据更加敏感,MAE收敛较慢,但是对异常数据更加健壮,所以就出现了Huber Loss。

4、Huber Loss

huber损失就是将MSE和MAE结合起来,在误差接近0的时候用MSE,误差较大的时候使用MAE:

 其中\delta是超参数,决定在哪个数值切换loss,圈住的部分是为了保证MAE和MSE在\delta的数值相同,保证loss可导。

5、分位数损失Quantile Loss

对于MAE,取得是绝对值,不管预测值是高于真实值还是低于真实值,最后的损失值可能相同,而实际情况可能会做区分:

r是个超参数,当r> 0.5的时候,低位损失(预测值小于真实值)更重要,反过来高位损失(预测值大于真实值) 的样本更重要。如果r=0.5就是MAE

6、交叉熵损失

分类问题损失函数,这个应该覆盖了90%的任务。对于二分类,只有0,1两个类别,因此:

p(y_{i}=1|x_{i}) = \widehat{y_{i}}

p(y_{i}=0|x_{i}) =1- \widehat{y_{i}}

合起来并称一个公式:

p(y_{i}|x_{i}) = (\hat{y_{i}})^{y_{i}} (1-\hat{y_{i}})^{1-y_{i}}

\hat{y_{i}}为预测值,标签y_{i}为 1时,结果和上式第一条一样,标签y_{i}为0时,与第二条一样。  

假设数据点之间独立同分布,则所有数据点的概率结果为:

L(x,y) = \prod_{i=1}^{N}(\hat{y_{i}})^{y_{i}} (1-\hat{y_{i}})^{1-y_{i}}

取对数,最大化似然函数,加负号和对数即为最小化负对数似然函数:

NLL(x,y) = J_{CE} = -\sum_{i=1}^{N}(y_{i}log(\hat{y_{i}}) + (1-y_{i})log(1-\hat{y_{i}}))

对于多分类:

p(y_{i}|x_{i}) = \prod_{k=1}^{K} (\hat{y_{i}}^{k})^{y_{i}^{k}}

k表示类别,一共K个类别。

描述了两个概率分布的差异,常用于分类模型中。神经网络输出的向量,经过softmax激活函数(二分类是sigmoid函数)归一化,得到概率分布,再计算损失函数。

J_{CE} = - \sum_{i=1}^{N} y_{i}^{c_{i}}log(\hat{y}_{i}^{c_{i}})

7、Hinge Loss合页损失

这是一种二分类损失,SVM模型的损失函数本质上就是Hinge Loss + L2正则化。

J_{hinge} = \sum_{i=1}^{N} max(0, 1-sgn(y_{i})\hat{y_{i}})

如标签为1,分类为1的概率为0.51,那么交叉熵损失值为-log0.51 = 0.67,合页损失值为0.49,如果分类为1的概率为0.01那么损失值 -log 0.01 = 4.605,合页损失值为0.99,所以如果预测正确但是概率值较小时,损失值差不多,但是对于预测错误的数据,合页损失值明显较小,说明合页损失对于异常值不敏感,这一点优于交叉熵损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值