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

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

   一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)。
   损失函数是用来评价模型的预测值 Ŷ =f(X) Y ^ = f ( X ) 与真实值 Y Y 的不一致程度,它是一个非负实值函数。通常使用L(Y,f(x))来表示,损失函数越小,模型的性能就越好。
   设总有 N N 个样本的样本集为(X,Y)=(xi,yi) yi,i[1,N] y i , i ∈ [ 1 , N ] 为样本 i i 的真实值,yi^=f(xi),i[1,N]为样本 i i 的预测值,f为分类或者回归函数。
那么总的损失函数为:

L=i=1N(yi,yi^) L = ∑ i = 1 N ℓ ( y i , y i ^ )

   常见的损失函数 (yi,yi^) ℓ ( y i , y i ^ ) 有以下几种:

Zero-one Loss

Zero-one Loss即0-1损失,它是一种较为简单的损失函数,如果预测值与目标值不相等,那么为1,否则为0,即:

(yi,yi^)={1,0,yiyi^yi=yi^(1) (1) ℓ ( y i , y i ^ ) = { 1 , y i ≠ y i ^ 0 , y i = y i ^

可以看出上述的定义太过严格,如果真实值为1,预测值为0.999,那么预测应该正确,但是上述定义显然是判定为预测错误,那么可以进行改进为Perceptron Loss。

Perceptron Loss

Perceptron Loss即为感知损失。即:

(yi,yi^)={1,0,|yiyi^|>t|yiyi^|t(2) (2) ℓ ( y i , y i ^ ) = { 1 , | y i − y i ^ | > t 0 , | y i − y i ^ | ≤ t

其中 t t 是一个超参数阈值,如在PLA(Perceptron Learning Algorithm,感知机算法)中取t=0.5

Hinge Loss

Hinge损失可以用来解决间隔最大化问题,如在SVM中解决几何间隔最大化问题,其定义如下:

(yi,yi^)=max{0,1yiyi^} ℓ ( y i , y i ^ ) = m a x { 0 , 1 − y i ⋅ y i ^ }

yi{1,+1} y i ∈ { − 1 , + 1 }

更多请参见: Hinge-loss

Log Loss

在使用似然函数最大化时,其形式是进行连乘,但是为了便于处理,一般会套上log,这样便可以将连乘转化为求和,由于log函数是单调递增函数,因此不会改变优化结果。因此log类型的损失函数也是一种常见的损失函数,如在LR(Logistic Regression, 逻辑回归)中使用交叉熵(Cross Entropy)作为其损失函数。即:

(yi,yi^)=yilogyi^(1yi)log(1yi^) ℓ ( y i , y i ^ ) = − y i ⋅ l o g y i ^ − ( 1 − y i ) ⋅ l o g ( 1 − y i ^ )

yi{0,1} y i ∈ { 0 , 1 }

规定
0log=0 0 ⋅ l o g ⋅ = 0

Square Loss

Square Loss即平方误差,常用于回归中。即:

(yi,yi^)=(yiyi^)2 ℓ ( y i , y i ^ ) = ( y i − y i ^ ) 2

yi,yi^ y i , y i ^ ∈ ℜ

Absolute Loss

Absolute Loss即绝对值误差,常用于回归中。即:

(yi,yi^)=|yiyi^| ℓ ( y i , y i ^ ) = | y i − y i ^ |

yi,yi^ y i , y i ^ ∈ ℜ

Exponential Loss

Exponential Loss为指数误差,常用于boosting算法中,如AdaBoost。即:

(yi,yi^)=exp(yiyi^) ℓ ( y i , y i ^ ) = e x p ( − y i ⋅ y i ^ )

yi{1,1} y i ∈ { − 1 , 1 }

正则

一般来说,对分类或者回归模型进行评估时,需要使得模型在训练数据上使得损失函数值最小,即使得经验风险函数最小化,但是如果只考虑经验风险(Empirical risk),容易过拟合(详细参见防止过拟合的一些方法),因此还需要考虑模型的泛化能力,一般常用的方法便是在目标函数中加上正则项,由损失项(Loss term)加上正则项(Regularization term)构成结构风险(Structural risk),那么损失函数变为:

L=i=1N(yi,yi^)+λR(ω) L = ∑ i = 1 N ℓ ( y i , y i ^ ) + λ ⋅ R ( ω )

其中 λ λ 是正则项超参数,常用的正则方法包括:L1正则与L2正则,详细介绍参见: 防止过拟合的一些方法

各损失函数图形如下:

loss_function

  • 21
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值