优化目标
-
对于逻辑回归的假设函数而言,在y=1的情况下,我们希望假设函数约等于1,且z远大于0;在y=0的情况下,我们希望假设函数约等于0,且z远小于0。
-
对于支持向量机,则希望在y=1的情况下,z大于等于0,;在y=0的情况下,z取其他值(小于0)
-
对于逻辑回归的代价函数,其中的 l o g h θ ( x ) logh_\theta(x) loghθ(x)替代为 c o s t 1 ( z ) cost_1(z) cost1(z),这两个函数的图如下:
其中的 l o g ( 1 − h θ ( x ) ) log(1-h_\theta(x)) log(1−hθ(x))替代为 c o s t 0 ( z ) cost_0(z) cost0(z),这两个函数的图如下:
也就是说,在y=1的情况下,目标函数需要z大于等于1;在y=0的情况下,目标函数需要z小于等于-1。
- 对于支持向量机的代价函数而言,如上所述替代后,再去掉m项,将
λ
\lambda
λ用C代替(
C
=
1
λ
C=\frac{1}{\lambda}
C=λ1),如下所示:
大间距分类器
如上所述,在y=1的情况下,目标函数需要z大于等于1;在y=0的情况下,目标函数需要z小于等于-1。
也就是说,对于决策边界(z=0)而言,与训练样本的距离尽量保持在1以上,因此会纠正过拟合的问题,取分类两组数据的中间,与双方保持一定距离的线为边界,如下方的margin(圆圈和红叉表示两种类型的样本):
但是如果C取值过大,也即
λ
\lambda
λ的值过小,即便采用上述算法还是会容易过拟合,如下:
数学原理
目标函数中,有该项 m i n θ 1 2 ∑ j = 1 n θ j 2 min_\theta\frac{1}{2}\sum_{j=1}^n\theta_j^2 minθ21∑j=1nθj2,也即等同于求向量 θ \theta θ的长度平方的二分之一: 1 2 ∣ θ ∣ 2 \frac{1}{2}|\theta|^2 21∣θ∣2。
因此,在决定决策边界时,如果如下图所示(
θ
T
x
(
i
)
\theta^Tx^{(i)}
θTx(i),相当于两个向量的内积):
由于上图所示,样本
x
(
i
)
x^{(i)}
x(i)投影到向量
θ
\theta
θ(注意的是,向量
θ
\theta
θ与决策边界垂直,因为与决策边界的内积z为0)上的值p较小,而为了与p值相乘大于等于1或小于等于-1,就会导致
∣
θ
∣
|\theta|
∣θ∣的值较大,不符合目标函数的预期。
如果如下图所示:
那么,样本投影到向量 θ \theta θ上得到的值p较大,同理,可知,能使 ∣ θ ∣ |\theta| ∣θ∣的值较小,符合目标函数的预期。
核函数一
对于非线性边界如下图所示的,在逻辑回归中通常采用多项式构造特征:
x
1
、
x
1
2
、
x
1
x
2
、
.
.
.
.
.
.
x_1、x_1^2、x_1x_2、......
x1、x12、x1x2、......
而如果采用支持向量机这一算法,那就要将
x
i
x_i
xi替代为
f
i
f_i
fi。
f
i
f_i
fi的定义如下:
f
i
=
e
x
p
(
−
∣
x
−
l
(
i
)
∣
2
2
σ
2
)
=
e
x
p
(
−
∑
j
=
1
n
(
x
j
−
l
j
(
i
)
)
2
2
σ
2
)
f_i=exp(-\frac{|x-l^{(i)}|^2}{2\sigma^2})=exp(-\frac{\sum_{j=1}^n(x_j-l^{(i)}_j)^2}{2\sigma^2})
fi=exp(−2σ2∣x−l(i)∣2)=exp(−2σ2∑j=1n(xj−lj(i))2)
其中的
x
x
x为输入特征,
l
(
i
)
l^{(i)}
l(i)为下图中的点(可表示为长度为特征数目n的向量):
f
i
f_i
fi的性质有:如果
x
=
l
(
i
)
x=l^{(i)}
x=l(i),则
f
i
=
1
f_i=1
fi=1;如果如果
x
x
x与
l
(
i
)
l^{(i)}
l(i)相差过大,则
f
i
≈
0
f_i\approx0
fi≈0。
f
i
f_i
fi中的
σ
\sigma
σ过小时,容易低偏差,高方差,过大时容易高偏差,低方差,当
f
i
=
[
3
5
]
f_i={3\brack 5}
fi=[53]时,
f
i
f_i
fi的图像如下:
当 θ 0 + θ 1 f 1 + θ 2 f 2 + θ 3 f 3 ≥ 0 \theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3\ge0 θ0+θ1f1+θ2f2+θ3f3≥0时,y=1。
核函数二
如上图所示,将训练集
x
(
i
)
x^{(i)}
x(i)作为
l
(
i
)
l^{(i)}
l(i),所以参数f是m+1维向量(包括
f
0
f_0
f0)。
代价函数:
使用
-
需要制定C( 1 λ \frac{1}{\lambda} λ1)和 σ \sigma σ。但是线性核函数(大间距分类器)不用,上面的核函数一和核函数二指的是高斯核函数。
-
需要对x进行特征缩放或均值归一化,因为涉及平方,数据较大。
-
其他核函数: k ( x , l ) = ( x T l ) 2 , ( x T l ) 3 , ( x T l + 1 ) 3 , . . . k(x,l)=(x^Tl)^2,(x^Tl)^3,(x^Tl+1)^3,... k(x,l)=(xTl)2,(xTl)3,(xTl+1)3,...
-
对于多分类问题,可以像逻辑回归一样,训练多个分类器,一一分类即可。
-
如果特征数目比样本数量多(比如文本处理),则应该用线性核函数(大间距分类器)或逻辑回归,否则,应该用高斯核函数。
但是,如果样本数量特别多,比如样本数量50w以上,特征数目1k左右,则应当增加特征(多项式或额外特征),然后再用线性核函数(大间距分类器)或逻辑回归(因为在样本数量多的情况下,简单的算法反而比高级算法性能好) -
神经网络可以应用于上述大部分情况,不过运算量较大,可能处理过慢