1.摘要
这篇文章主要介绍支持向量机的有关内容,主要包括支持向量机的推导,支持向量机的特性,支持向量机简单的数学原理介绍,核函数,最后还对比了一下逻辑回归,支持向量机,神经网络,简单说明他们各自的适用情况。
关键词:支持向量机,核函数。
2.正文
2.1支持向量机的引入推导
支持向量机是一种强大的拟合非线性方程的工具,首先介绍一下它的引入。
由前面学习,我们可以知道,对于逻辑回归的一组样本,我们有代价函数:
J
(
θ
)
=
−
y
l
o
g
1
1
+
e
θ
T
x
−
(
1
−
y
)
l
o
g
(
1
−
1
1
+
e
θ
T
x
)
J(\theta)=-ylog\frac{1}{1+e^{\theta^Tx}}-(1-y)log(1-\frac{1}{1+e^{\theta^Tx}})
J(θ)=−ylog1+eθTx1−(1−y)log(1−1+eθTx1)但是
l
o
g
1
1
+
e
θ
T
x
log\frac{1}{1+e^{\theta^Tx}}
log1+eθTx1这一项太复杂了,我们要想办法简化它,使代价函数计算起来方便一点。对代价函数做如下近似:
![](https://i-blog.csdnimg.cn/blog_migrate/08133f416691e8890fcfeb14430dea41.jpeg#pic_center)
将原来的曲线用两段折线来近似。对
y
=
1
y=1
y=1,即
J
(
θ
)
=
−
l
o
g
1
1
+
e
θ
T
x
J(\theta)=-log\frac{1}{1+e^{\theta^Tx}}
J(θ)=−log1+eθTx1,用图1左边的两个线段来近似,称为对于
y
=
0
y=0
y=0,即
J
(
θ
)
=
−
l
o
g
(
1
−
1
1
+
e
θ
T
x
)
J(\theta)=-log(1-\frac{1}{1+e^{\theta^Tx}})
J(θ)=−log(1−1+eθTx1)时,用图1右边的线段来近似
所以,对于支持向量机(SVM)的代价函数,我们可以做如下修改:
![](https://i-blog.csdnimg.cn/blog_migrate/48f6949bcf060bce33bf9740877e4514.png#pic_center)
对比逻辑回归函数,做了一下变化:首先去掉了
1
m
\frac{1}{m}
m1,接着用
c
o
s
t
1
(
θ
T
x
(
i
)
)
cost_1(\theta^Tx^{(i)})
cost1(θTx(i))替代
−
l
o
g
1
1
+
e
θ
T
x
-log\frac{1}{1+e^{\theta^Tx}}
−log1+eθTx1,用
c
o
s
t
0
(
θ
T
x
(
i
)
)
cost_0(\theta^Tx^{(i)})
cost0(θTx(i))替代
−
l
o
g
(
1
−
1
1
+
e
θ
T
x
)
-log(1-\frac{1}{1+e^{\theta^Tx}})
−log(1−1+eθTx1),最后,因为我们要将SVM的代价函数写为
C
A
+
B
CA+B
CA+B的形式,所以最后可得SVM的代价函数为
m
i
n
θ
C
∑
i
=
1
m
[
y
(
i
)
c
o
s
t
1
(
θ
T
x
(
i
)
)
+
(
1
−
y
(
i
)
)
c
o
s
t
0
(
θ
T
x
(
i
)
)
]
+
1
2
∑
i
=
1
n
θ
j
2
min_{\theta}C\sum_{i=1}^{m}[y^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})]+\frac{1}{2}\sum_{i=1}^n\theta_j^2
minθCi=1∑m[y(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))]+21i=1∑nθj2
特别的,对于SVM的假设函数,有
h
(
θ
)
=
{
1
θ
T
x
>
=
0
0
θ
T
x
<
0
h(\theta)=\begin{cases} 1& \theta^Tx>=0 \\ 0& \theta^Tx<0 \end{cases}
h(θ)={10θTx>=0θTx<0
2.2大边界的直观理解
假设我们要对下图划出分类边界
![](https://i-blog.csdnimg.cn/blog_migrate/8d3ffcffbc71069fa1b9e0d00a041d98.png#pic_center)
![](https://i-blog.csdnimg.cn/blog_migrate/38d7751bacc92e4c9a655716d1520efb.png#pic_center)
最后再提一下 C C C对分类边界的影响,对于
![](https://i-blog.csdnimg.cn/blog_migrate/17fdb0ee01d8bba041d104fd7a001c36.png#pic_center)
有异常点的分类,如果C比较大,那么会得到红色的线,如果C比较小,那么会得到黑色的线。对于这种情况该怎么理解呢?
可以从
C
=
1
λ
C=\frac{1}{\lambda}
C=λ1来理解:
- C C C比较大时, λ \lambda λ比较小,容易导致过拟合,也就是对样本拟合的偏差会比较小,所以对于异常点,我们也会考虑进去
- C C C比较小时, λ \lambda λ比较大,会导致欠拟合的情况,对于异常点往往会放弃拟合,所以 C C C比较小的鲁棒性比较好。