损失函数比较

Pytorch学习之十九种损失函数

一、简介

损失函数(Loss Function)是用来评估模型好坏程度,即预测值f(x)与真实值的不一致程度,通常表示为L(Y, f(x))的一个非负的浮点数。比如你要做一个线性回归,你拟合出来的曲线不会和原始的数据分布是完全吻合(完全吻合的话,很可能会出现过拟合的情况),这个差距就是用损失函数来衡量。那么损失函数的值越小,模型的鲁棒性也就越好,对新数据的预测能力也就越强。

通常提到损失函数,我们不得不提到代价函数(Cost Function)及目标函数(Object Function)。

损失函数(Loss Function) 直接作用于单个样本,用来表达样本的误差

代价函数(Cost Function)作用于整个训练集,是整个样本集的平均误差,对所有损失函数值的平均

目标函数(Object Function)是我们最终要优化的函数,也就是代价函数+正则化函数(经验风险+结构风险)
在这里插入图片描述
其中,第一部分是代价函数,L代表损失函数;第二部分是正则化函数(也可以称为惩罚项),可以试L1,也可以试L2或者其他正则函数。整个表达式是要找到是目标函数最好的值。

二、损失函数

0-1损失函数(0-1 Loss Function)主要用于感知机

平方损失函数(Quadratic Loss Function)主要用于最小二乘法(OLS)

绝对值损失函数(Absolute Loss Function)

对数损失函数(Logarithmic Loss Function,Cross Entropy Loss Function, Softmax Loss Loss Function)主要用于Logistic回归与Softmax分类

指数损失函数(Exponential Loss Function)主要用于Adaboost集成学习算法

铰链损失函数(Hinge Loss Function)主要用于支持向量机(SVM)

2.1、0-1 损失函数(0-1 Loss Function)

在这里插入图片描述
当预测错误时,损失函数结果为1;当预测正确时,损失函数为0。该预测并不考虑具体的误差程度,直接进行二值化。

优点:稳定的分类面,不连续,所以不可导,但是次梯度可导

缺点:二阶不可导,有时候不存在唯一解

2.2、平方损失函数(Quadratic Loss Function)

在这里插入图片描述
预测值与实际值的差的平方。

优点:容易优化(一阶导数连续)

缺点:对outlier点敏感,得不到最优的分类面

2.3、绝对值损失函数(Absolute Loss Function)

在这里插入图片描述
与平方损失函数类似,去实际值与测试值的差值的绝对值,但是不会被放大。

2.4、对数损失函数(Logarithmic Loss Function)

在这里插入图片描述
对数损失函数用到了极大似然估计的思想。P(Y|X)表示在当前模型上,样本X的预测值为Y的概率,也就是说对于样本X预测正确的概率。由于统计极大似然估计用到概率乘法,为了将其转为假发,对其取对数即可方便展开为加法;由于是损失函数,预测正确的概率应该与损失值成反比,这里对概率取反得到 l o g ( 1 p ( y ∣ x ) ) log(\frac{1}{p(y|x)}) log(p(yx)1),转化一下可以得到 − l o g   p ( y ∣ x ) -log~p(y|x) log p(yx)

优点:稳定的分类面,严格凸,且二阶导数连续。

2.5、指数损失函数(Exponential Loss Function)

在这里插入图片描述
学过Adaboost的知道它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。

2.6、铰链损失函数(Hinge Loss Function)

L ( w , b ) = m a x ( 0 , 1 − y f ( x ) ) L(w,b)=max(0,1-yf(x)) L(w,b)=max(0,1yf(x))
其中:
y = + 1 , − 1                        f ( x ) = w x + b y=+1,-1~~~~~~~~~~~~~~~~~~~~~~f(x)=wx+b y=+1,1                      f(x)=wx+b

Hinge Loss function 一般在分类算法使用的分类函数,尤其使用于SVM。

优点:稳定的分类面,凸函数。可以极大化分类间隔。

三、代价函数

3.1 均方误差(Mean Square Error)

在这里插入图片描述

均方误差是指参数估计值与参数真值之差平方的期望值,MSE用来评估模型的好坏程度,MSE越小说明预测模型精确度越高。

通常用来做回归问题的代价函数

3.2 均方根误差(Root Mean Square Error)

在这里插入图片描述
均方根误差是均方的算术平方根,能够直观的观察预测值与真实值直接的差距。

通常用来作为回归算法的性能指标。

3.3 平均绝对误差(Mean Absolute Error)

在这里插入图片描述
平均误差是绝对误差的平均值,平均绝对误差能更好的反应预测值与实际值的实际误差情况。

通常用来作为回归算法的性能指标。

3.4 交叉熵代价函数(Cross Entry)

在这里插入图片描述
其中p(x)是真实分布的概率,q(x)是模型通过数据计算出来的概率估计。

交叉熵是用来评估当前训练得到的概率分布于真实分布的差异情况,减少交叉熵损失就是在提高模型的预测的准确率。

通常用来作为分类问题的代价函数。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Systemd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值