机器学习中常见的损失函数及其应用场景

一、对于分类问题

以二分类为例, y ∈ { + 1 , − 1 } y \in \{+1,-1\} y{+1,1},损失函数通常表示为 y f ( x ) yf(x) yf(x) 的递减函数。我们希望 s i g n ( f ( x i , θ ) ) = y i sign(f(x_i, \theta))=y_i sign(f(xi,θ))=yi

  • 0-1损失函数
    L 0 − 1 ( f , y ) = 1 f y ≤ 0 L_{0-1}(f, y)=1_{fy\le0} L01(f,y)=1fy0 0-1损失函数可以直观的刻画分类的错误率,但是因为其非凸,非光滑的特点,使得算法很难对其进行直接优化

  • Hinge损失函数(SVM)
    L h i n g e ( f , y ) = max ⁡ { 0 , 1 − f y } L_{hinge}(f, y)=\max\{0,1-fy\} Lhinge(f,y)=max{0,1fy} Hinge损失函数是0-1损失函数的一个代理损失函数,也是其紧上界,当 f y ≥ 0 fy\ge0 fy0 时,不对模型做惩罚。可以看到,hinge损失函数在 f y = 1 fy=1 fy=1 处不可导,因此不能用梯度下降法对其优化,只能用次梯度下降法。

在这里插入图片描述

  • Logistic损失函数
    L l o g i s t i c ( f , y ) = log ⁡ 2 ( 1 + e x p ( − f y ) ) L_{logistic}(f,y)=\log_{2}(1+exp(-fy)) Llogistic(f,y)=log2(1+exp(fy))Logistic损失函数是0-1损失函数的另一个代理损失函数,它也是0-1损失函数的凸上界,且该函数处处光滑。但是该损失函数对所有样本点都惩罚,因此对异常值更加敏感。当预测值 f ∈ [ − 1 , 1 ] f \in[-1,1] f[1,1]时,另一个常用的代理损失函数是交叉熵损失函数

  • Cross-Entropy损失函数
    L c r o s s   e n t r o p y ( f , y ) = − log ⁡ 2 ( 1 + f y 2 ) L_{cross\ entropy}(f,y)=-\log_{2}(\frac{1+fy}{2}) Lcross entropy(f,y)=log2(21+fy) 交叉熵损失函数也是0-1损失函数的光滑凸上界

  • Exponential损失函数(AdaBoost)
    L e x p o n e n t i a l ( f , y ) = e − f y L_{exponential}(f,y)=e^{-fy} Lexponential(f,y)=efy指数损失函数是AdaBoost里使用的损失函数,同样地,它对异常点较为敏感,鲁棒性不够

  • Log损失函数(LR)
    L l o g l o s s ( y , p ( y ∣ x ) ) = − log ⁡ ( p ( y ∣ x ) ) L_{logloss}(y,p(y|x))=-\log(p(y|x)) Llogloss(y,p(yx))=log(p(yx)) 逻辑回归 p ( y ∣ x ) p(y|x) p(yx) 的表达式如下:
    P ( Y = y ( i ) ∣ x ( i ) , θ ) = { h θ ( x ( i ) ) = 1 1 + e − θ T x , y ( i ) = 1 1 − h θ ( x ( i ) ) = e − θ T x 1 + e − θ T x ,   y ( i ) = 0 , P(Y=y^{(i)}|x^{(i)},\theta)= \left\{ \begin{array}{lr} h_{\theta}(x^{(i)})=\frac{1}{1+e^{-\theta ^{T}x}}, y^{(i)}=1& \\ \\ 1-h_{\theta}(x^{(i)})=\frac{e^{-\theta ^{T}x}}{1+e^{-\theta ^{T}x}}, \ y^{(i)}=0, & \end{array} \right. P(Y=y(i)x(i),θ)=hθ(x(i))=1+eθTx1,y(i)=11hθ(x(i))=1+eθTxeθTx, y(i)=0, 将上面两个式子合并,可得第 i i i 个样本被正确预测的概率
    P ( Y = y ( i ) ∣ x ( i ) , θ ) = ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) P(Y=y^{(i)}|x^{(i)},\theta)=(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} P(Y=y(i)x(i),θ)=(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)对于所有的样本,由于生成过程是独立的,因此
    P ( Y ∣ X , θ ) = Π i = 1 N ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) P(Y|X,\theta)=\Pi_{i=1}^{N}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} P(YX,θ)=Πi=1N(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)最终的损失函数如下:
    J ( θ ) = − ∑ i = 1 N [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] \mathcal{J}(\theta)=-\sum_{i=1}^{N}[y^{(i)}\log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] J(θ)=i=1N[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

在这里插入图片描述

二、回归问题

对于回归问题, Y Y Y = R \mathbb{R} R,我们希望 f ( x ( i ) , θ ) f(x^{(i)},\theta) f(x(i),θ) = y ( i ) y^{(i)} y(i)

  • 平方损失函数(最小二乘法)
    L s q u a r e ( f , y ) = ( f − y ) 2 L_{square}(f,y)=(f-y)^2 Lsquare(f,y)=(fy)2平方损失函数是光滑的,可以用梯度下降法求解,但是,当预测值和真实值差异较大时,它的惩罚力度较大,因此对异常点较为敏感。

  • 绝对损失函数
    L a b s o l u t e ( f , y ) = ∣ f − y ∣ L_{absolute}(f,y)=|f-y| Labsolute(f,y)=fy绝对损失函数对异常点不那么敏感,其鲁棒性比平方损失更强一些,但是它在 f f f = y y y 处不可导.

  • Huber损失函数
    L H u b e r ( f , y ) = { 1 2 ( f − y ) 2 , ∣ f − y ∣ ≤ δ δ ∣ f − y ∣ − 1 2 δ 2 ,   ∣ f − y ∣ > δ , L_{Huber}(f,y)= \left\{ \begin{array}{lr} \frac{1}{2}(f-y)^2, |f-y|\le\delta & \\ \\ \delta|f-y|-\frac{1}{2}\delta^{2}, \ |f-y|>\delta, & \end{array} \right. LHuber(f,y)=21(fy)2,fyδδfy21δ2, fy>δ,Huber损失函数在 ∣ f − y ∣ |f-y| fy 较小时为平方损失,在 ∣ f − y ∣ |f-y| fy 较大时为线性损失,且处处可导,对异常点鲁棒性较好。

  • Log-cosh损失函数
    L l o g − c o s h ( f , y ) = log ⁡ ( cosh ⁡ ( f − y ) ) L_{log-cosh}(f,y)=\log(\cosh(f-y)) Llogcosh(f,y)=log(cosh(fy))其中 cosh ⁡ ( x ) = ( e x + e − x ) / 2 \cosh(x)=(e^{x}+e^{-x})/2 cosh(x)=(ex+ex)/2,log-cosh损失函数比均方损失函数更加光滑,具有huber损失函数的所有优点,且二阶可导。因此可以使用牛顿法来优化计算,但是在误差很大情况下,一阶梯度和Hessian会变成定值,导致牛顿法失效。

  • 分位数损失函数
    L γ ( f , y ) = ∑ i :   y i &lt; f i ( 1 − γ ) ∣ y i − f i ∣ + ∑ i :   y i ≥ f i γ ∣ y i − f i ∣ L_{\gamma}(f,y)=\sum_{i:\ y_i&lt;f_i}(1-\gamma)|y_i-f_i|+\sum_{i:\ y_i\ge f_i}\gamma|y_i-f_i| Lγ(f,y)=i: yi<fi(1γ)yifi+i: yifiγyifi预测的是目标的取值范围而不是值。 γ \gamma γ 是所需的分位数,其值介于0和1之间, γ \gamma γ 等于0.5时,相当于MAE。
    设置多个 γ \gamma γ 值,得到多个预测模型,然后绘制成图表,即可知道预测范围及对应概率(两个 γ \gamma γ 值相减)

在这里插入图片描述

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值