-
- 一、分类算法中的损失函数
- 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 m≥01if m<0 L 01 ( m ) = { 0 if m ≥ 0 1 if m < 0
等价于函数:
12(1−sign(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))(1−y) 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))(1−y(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))]+(1−y(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))]+(1−y(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损失函数的具体形式为:
minw∑i=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,1−m) max ( 0 , 1 − m )
运用Hinge损失的典型分类器是SVM算法。
3.2 SVM的损失函数
对于软间隔支持向量机,允许在间隔的计算中出现少量的误差 ξ¯=(ξ1,...,ξn) ξ ¯ = ( ξ 1 , . . . , ξ n ) ,优化目标是:
minw,γ,ξ[12‖w‖2+C∑i=1nξi] min w , γ , ξ [ 1 2 ‖ w ‖ 2 + C ∑ i = 1 n ξ i ]
约束条件是:
(wTx(i)+γ)y(i)≥1−ξi,ξi≥0 ( w T x ( i ) + γ ) y ( i ) ≥ 1 − ξ i , ξ i ≥ 0
3.3 二者的等价
对于Hinge损失:
max(0,1−m) max ( 0 , 1 − m )
优化的目标是要求:
minw[∑i=1nmax(0,1−fw(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,γ[C∑i=1nmax(0,1−fw(x(i))y(i))+12‖w‖2] 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)=1−fw(x(i))y(i)ξi≥0 ξ ≥ 1 − ( w T x ( i ) + γ ) y ( i ) = 1 − f w ( x ( i ) ) y ( i ) ξ i ≥ 0
即:
max(0,1−fw,γ(x)y)=minξ max ( 0 , 1 − f w , γ ( x ) y ) = min ξ
那么Hinge最小化问题变成:
minw,γ,ξ[C∑i=1nξi+12‖w‖2] 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=12log1−R(ϕ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 ) ) ]
最终通过对所有分类器加权得到最终的输出。