详细整理几种常见的损失函数|机器学习

机器学习|常见的损失函数

公众号:数据山谷

在学习过程中我们经常会接触到损失函数、代价函数、目标函数三个词语,本文让我们来总结一下机器学习中常见的损失函数和代价函数。

概念

首先让我们来了解一下三种损失函数的概念。

损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。

代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是代价函数 + 正则化项)。

关于目标函数和代价函数的区别还有一种通俗的区别:

目标函数是最大化或者最小化,而代价函数是最小化。

常见的损失函数

0-1损失函数(0-1 loss function)

函数表达式:

L ( y , f ( x ) ) = { 1 , y ≠ f ( x ) 0 , y = f ( x ) L(y,f(x))=\left\{\begin{matrix} 1, y\neq f(x) \\ 0, y=f(x) \end{matrix}\right. L(y,f(x))={1,y=f(x)0,y=f(x)

函数说明:

  • 关于0-1损失函数,也就是说当我们预测错误时,损失函数的值为1,预测正确时,损失函数的值为0,该函数无需考虑预测值和真实值的误差程度,只要预测错误就会输出1。

函数特点:

  • 0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用。
  • 感知机通常会使用该损失函数,在使用的时候我们也可以通过设置一个阈值的方式来放宽它的条件,改变成下面的形式:

L ( y , f ( x ) ) = { 1 , ∣ y − f ( x ) ∣ ⩾ T 0 , ∣ y − f ( x ) ∣ < T L(y,f(x))=\left\{\begin{matrix} 1, |y-f(x)|\geqslant T \\ 0, |y-f(x)| <T \end{matrix}\right. L(y,f(x))={1,yf(x)T0,yf(x)<T

平方损失函数(quadratic loss function)

函数表达式:

L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x))=(y-f(x))^2 L(y,f(x))=(yf(x))2

函数说明:

  • 平方损失函数指的是预测值与实际值差的平方。

函数特点:

  • 平方损失函数经常应用在回归问题上。

绝对值损失函数(absolute loss function)

函数表达式:

L ( y , f ( x ) ) = ∣ y − f ( x ) ∣ L(y,f(x))=|y-f(x)| L(y,f(x))=yf(x)

函数说明:

  • 该损失函数本质上和平方损失函数没有什么差别,只不过此时取的是绝对值而不是平方,差距不会因为平方而被放大。

函数特点:

  • 绝对值损失函数经常用在回归问题上。

对数损失函数(logarithmic loss function)

函数表达式:

L ( y , p ( y ∣ x ) ) = − log ⁡ p ( y ∣ x ) L(y,p(y|x))=-\log p(y|x) L(y,p(yx))=logp(yx)

函数说明:

  • 对数损失函数用到了极大似然估计的思想,我们对p(y|x)通俗的解释就是:在当前模型的基础上,对于样本x它的预测值为y,也就是我们预测正确的概率,但是我们在概率之间的同时满足需要使用乘法,考虑到计算方便,我们取对数将其转化为加法,同时由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取反。

函数特点:

  • log损失函数能够很好的表示概率分布,适用于很多的分类场景中,如果需要知道结果属于每个类别的置信度log损失函数非常适合。
  • log损失函数对噪声很敏感。
  • 逻辑回归的损失函数就是log损失函数。

合页损失函数(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 , f ( x ) = w x + b y=\pm1,f(x)=wx+b y=±1,f(x)=wx+b

函数说明:

  • hinge损失函数一般用作分类算法的损失函数。

函数特点:

  • SVM使用的就是hinge损失函数,hinge损失函数表示如果被分类正确,损失为0,否则损失就为1-yf(x)。
  • 一般的f(x)是预测值,在[-1,1]之间,y是目标值(-1或1)。我们并不鼓励|f(x)|>1,也就是不鼓励分类器过度的自信,让某个正确分类的样本距离分割线超过1并不会有任何奖励,从而使分类器可以更加专注于整体的误差。
  • Hinge算是函数对异常点、噪声并不敏感,但是相对于log损失函数来说它没有很好的概率解释。

指数损失函数(exponential loss)

函数表达式:

L ( y ∣ f ( x ) ) = exp ⁡ ( − y f ( x ) ) L(y|f(x))=\exp(-yf(x)) L(yf(x))=exp(yf(x))

函数说明:

  • 一种很少接触并使用的损失函数。

函数特点:

  • AdaBoost算法使用的就是指数损失函数,该损失函数对噪声、离群点非常敏感。

常见的代价函数

均方误差(Mean Squared Error)

函数表达式:

M S E = 1 N ∑ i = 1 N ( y i − f ( x i ) ) 2 MSE=\frac{1}{N}\sum_{i=1}^N(y^i-f(x^i))^2 MSE=N1i=1N(yif(xi))2

函数说明:

  • 均方误差是指预测值与真实值之差平方的期望值;MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

函数特点:

  • 均方误差通常用来做回归问题的代价函数。

均方根误差(Root Mean Squared Error)

函数表达式:

R M S E = 1 N ∑ i = 1 N ( y i − f ( x i ) ) 2 RMSE=\sqrt{\frac{1}{N}\sum_{i=1}^N(y^i-f(x^i))^2} RMSE=N1i=1N(yif(xi))2

函数说明:

  • 均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。

函数特点:

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

平均绝对误差(Mean Absolute Error)

函数表达式:

M A E = 1 N ∑ i = 1 N ∣ y i − f ( x i ) ∣ MAE=\frac{1}{N}\sum_{i=1}^{N}|y^i-f(x^i)| MAE=N1i=1Nyif(xi)

函数说明:

  • 平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。

函数特点:

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

交叉熵代价函数(Cross Entry)

函数表达式:

H ( p , q ) = − ∑ i = 1 N p ( x i ) log ⁡ q ( x − i ) H(p,q)=-\sum_{i=1}^Np(x^i)\log q(x^{-i}) H(p,q)=i=1Np(xi)logq(xi)

函数说明:

  • 交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其中p(x)指的是真实分布的概率,q(x)是模型通过数据计算出来的概率估计。

函数特点:

  • 通常用做分类问题的代价函数。

举例说明:

逻辑回归(二分类)的损失函数:

L o s s = − 1 N ∑ i = 1 N ( y ( i ) l o g ( h ( θ ) ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h ( θ ) ( x ( i ) ) ) ) Loss = -\frac{1}{N}\sum_{i=1}^{N}(y^{(i)}log (h_{(\theta) }(x^{(i)}))+(1-y^{(i)})log(1- h_{(\theta) }(x^{(i)}))) Loss=N1i=1N(y(i)log(h(θ)(x(i)))+(1y(i))log(1h(θ)(x(i))))

这里的h(x)可以是sigmoid函数,也可以是深度学习中的其他激活函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

二哥不像程序员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值