机器学习之损失函数(代价函数)

    • 一、分类算法中的损失函数
      • 1、0-1损失函数
      • 2、Log损失函数
        • 2. 1 Log损失
        • 2. 2 Logistic回归算法的损失函数
        • 2. 3 二者的等价
      • 3、Hinge损失函数
        • 3.1 Hinge损失
        • 3.2 SVM的损失函数
        • 3.3 二者的等价
      • 4、指数损失函数
        • 4.1、指数损失
        • 4.2、AdaBoost基本原理

一、分类算法中的损失函数


在分类算法中,损失函数通常可以表示成损失项和正则项的和,即如下的形式:

J(w)=iL(mi(w))+λR(w) J ( w ) = ∑ i L ( m i ( w ) ) + λ R ( w )

其中, L(mi(w)) L ( m i ( w ) ) 为损失项, R(w) R ( w ) 为正则项。 mi m i 的具体形式如下:
mi=y(i)fw(x(i))y(i){1,1}fw(x(i))=wTx(i) m i = y ( i ) f w ( x ( i ) ) y ( i ) ∈ { − 1 , 1 } f w ( x ( i ) ) = w T x ( i )

对于损失项,主要形式如下:

  • 0-1损失
  • Log损失
  • Hingo损失
  • 指数损失
  • 感知损失

1、0-1损失函数

在分类问题中,可以使用函数的正负号来进行模式判断,函数本身大小并不是很重要,0-1损失函数比较的是预测值 fw(x(i)) f w ( x ( i ) )
与真实值 y(i) y ( i ) 的符号是否相同,0-1损失的具体形式如下:

L01(m)={0if m01if m<0 L 01 ( m ) = { 0 if  m ≥ 0 1 if  m < 0

等价于函数: 12(1sign(m)) 1 2 ( 1 − s i g n ( m ) ) 。0-1损失并不依赖m值的大小,只取决于m的正负号。0-1损失是一个非凸函数,求解过程中存在很多不足,通常实际使用中将0-1损失函数作为一个标准,选择0-1损失函数的代理函数作为损失函数。

2、Log损失函数

2. 1 Log损失

Log损失是0-1损失函数的一种代理函数,Log损失的具体形式如下:

log(1+exp(m)) log ⁡ ( 1 + exp ⁡ ( − m ) )

运用Log损失的经典分类器是Logistic回归算法。

2. 2 Logistic回归算法的损失函数

对于Logistic回归算法,分类器可以表示成:

p(y|x;w)=σ(wTx)y(1σ(wTx))(1y) p ( y | x ; w ) = σ ( w T x ) y ( 1 − σ ( w T x ) ) ( 1 − y )

其中 y{0,1},σ(x)=11+exp(x) y ∈ { 0 , 1 } , σ ( x ) = 1 1 + exp ⁡ ( − x ) 。为了求解其中的参数 w w ,通常使用极大似然估计的方法,具体过程如下:
1、似然函数
L(w)=i=1nσ(wTx(i))y(i)(1σ(wTx(i))(1y(i)) L ( w ) = ∏ i = 1 n σ ( w T x ( i ) ) y ( i ) ( 1 − σ ( w T x ( i ) ) ( 1 − y ( i ) )

2、log似然
log[L(w)]=i=1ny(i)log[σ(wTx(i))]+(1y(i))log[(1σ(wTx(i))] log ⁡ [ L ( w ) ] = ∑ i = 1 n y ( i ) log ⁡ [ σ ( w T x ( i ) ) ] + ( 1 − y ( i ) ) log ⁡ [ ( 1 − σ ( w T x ( i ) ) ]

3、需要求解的是使得log似然取得最大值的 w w ,可以转换成求最小值
log[L(w)]=i=1ny(i)log[σ(wTx(i))]+(1y(i))log[(1σ(wTx(i))] − log ⁡ [ L ( w ) ] = − ∑ i = 1 n y ( i ) log ⁡ [ σ ( w T x ( i ) ) ] + ( 1 − y ( i ) ) log ⁡ [ ( 1 − σ ( w T x ( i ) ) ]

这便是交叉熵的具体形式。

2. 3 二者的等价

由于Log损失的具体形式为:

log(1+exp(m)) log ⁡ ( 1 + exp ⁡ ( − m ) )

其中, mi=y(i)fw(x(i)) m i = y ( i ) f w ( x ( i ) ) , y(i){1,1} y ( i ) ∈ { − 1 , 1 } 。Log损失函数的具体形式为:
minwi=1nlog{1+exp(y(i)wTx(i))} min w ∑ i = 1 n log ⁡ { 1 + exp ⁡ ( − y ( i ) w T x ( i ) ) }

Logistic回归与Log损失具有相同的形式,两者是等价的。

3、Hinge损失函数

3.1 Hinge损失

Hinge损失是0-1损失函数的一种代理函数。具体形式如下:

max(0,1m) max ( 0 , 1 − m )

运用Hinge损失的典型分类器是SVM算法。

3.2 SVM的损失函数

对于软间隔支持向量机,允许在间隔的计算中出现少量的误差 ξ¯=(ξ1,...,ξn) ξ ¯ = ( ξ 1 , . . . , ξ n ) ,优化目标是:

minw,γ,ξ[12w2+Ci=1nξi] min w , γ , ξ [ 1 2 ‖ w ‖ 2 + C ∑ i = 1 n ξ i ]

约束条件是:
(wTx(i)+γ)y(i)1ξiξi0 ( w T x ( i ) + γ ) y ( i ) ≥ 1 − ξ i , ξ i ≥ 0

3.3 二者的等价

对于Hinge损失:

max(0,1m) max ( 0 , 1 − m )

优化的目标是要求:
minw[i=1nmax(0,1fw(x(i))y(i))] min w [ ∑ i = 1 n max ( 0 , 1 − f w ( x ( i ) ) y ( i ) ) ]

在上诉的函数 fw(x(i)) f w ( x ( i ) ) 中引入截距 γ γ ,即:
fw,γ(x(i))=wTx(i)+γ f w , γ ( x ( i ) ) = w T x ( i ) + γ

并在上述问题中增加 L2 L 2 正则,即变为:
minw,γ[Ci=1nmax(0,1fw(x(i))y(i))+12w2] min w , γ [ C ∑ i = 1 n max ( 0 , 1 − f w ( x ( i ) ) y ( i ) ) + 1 2 ‖ w ‖ 2 ]

我们看到SVM软间隔问题中的约束条件为:
ξ1(wTx(i)+γ)y(i)=1fw(x(i))y(i)ξi0 ξ ≥ 1 − ( w T x ( i ) + γ ) y ( i ) = 1 − f w ( x ( i ) ) y ( i ) ξ i ≥ 0

即: max(0,1fw,γ(x)y)=minξ max ( 0 , 1 − f w , γ ( x ) y ) = min ξ
那么Hinge最小化问题变成:
minw,γ,ξ[Ci=1nξi+12w2] min w , γ , ξ [ C ∑ i = 1 n ξ i + 1 2 ‖ w ‖ 2 ]

这与软间隔的SVM是一致的,说明软间隔SVM是在Hinge损失的基础上增加了 L2 L 2 正则。

4、指数损失函数

4.1、指数损失

指数损失是0-1损失函数的一种代理函数,损失函数具体形式如下:

exp(m) exp ⁡ ( − m )

运用指数损失的典型分类器是AdaBoost算法。

4.2、AdaBoost基本原理

AdaBoost算法是对每一个弱分类器以及每一个样本都分配了权重,对于弱分类器 ϕj ϕ j 的权重为:

θj=12log1R(ϕj)R(ϕj) θ j = 1 2 log ⁡ 1 − R ( ϕ j ) R ( ϕ j )

其中, R(ϕj) R ( ϕ j ) 表示的是误分类率。对于每一个样本的权重为:
wi=exp(f(x(i))y(i))n[exp(f(x(i))y(i))] w i = exp ⁡ ( − f ( x ( i ) ) y ( i ) ) ∑ n [ exp ⁡ ( − f ( x ( i ) ) y ( i ) ) ]

最终通过对所有分类器加权得到最终的输出。

你可能感兴趣的:(机器学习)