1. 代价函数
其中:
C
=
1
λ
C=\frac{1}{λ}
C=λ1;
c
o
s
t
0
=
−
l
o
g
(
1
−
1
1
+
e
−
z
)
=
=
−
l
o
g
(
1
−
1
1
+
e
−
θ
T
x
)
cost_0 = -log(1- \frac{1}{1+e^{-z}})== -log(1- \frac{1}{1+e^{-θ^Tx}})
cost0=−log(1−1+e−z1)==−log(1−1+e−θTx1);
c
o
s
t
1
=
−
l
o
g
(
1
1
1
+
e
−
z
)
=
=
−
l
o
g
(
1
1
+
e
−
θ
T
x
)
cost_1 = -log(1\frac{1}{1+e^{-z}})== -log( \frac{1}{1+e^{-θ^Tx}})
cost1=−log(11+e−z1)==−log(1+e−θTx1)
2. 最大间隔
在支持向量机中,希望分类的阀值不再是0,而是±1,使得中间有足够大的间隙,或者说安全的间距因子。如下:
y
=
{
1
,
if
θ
T
x
≥ 1 (not just ≥ 0)
0
,
if
θ
T
x
≤ -1 (not just < 0)
y= \begin{cases} 1, & \text { if $θ^Tx$ ≥ 1 (not just ≥ 0)} \\ 0, & \text{ if $θ^Tx$ ≤ -1 (not just < 0)} \end{cases}
y={1,0, if θTx ≥ 1 (not just ≥ 0) if θTx ≤ -1 (not just < 0)
现在假设C是一个非常大的情况下, 最小化代价函数, 那么就得有第一项为0。需要保证当y=1的时候θTx≥1或者当y=0的时候θTx≤-1。在此约束下,优化问题就变成了:
min
θ
1
2
∑
i
=
1
n
θ
j
2
s
.
t
.
{
θ
T
x
≥
1
,
if
y
(
i
)
= 1
θ
T
x
≤
−
1
,
if
y
(
i
)
=0
\min_{θ} \frac{1}{2}\sum_{i=1}^n θ_j^2 s.t. \begin{cases} θ^Tx≥ 1, & \text { if $y^{(i)}$ = 1} \\ θ^Tx≤ -1, & \text{ if $y^{(i)}$ =0 } \end{cases}
θmin21i=1∑nθj2s.t.{θTx≥1,θTx≤−1, if y(i) = 1 if y(i) =0
在图中分别画出三条决策边界,均可以将正样本和负样本分开,黑线看起来是更稳健的决策界。在分离正样本和负样本上它显得的更好。数学上来讲,这条黑线有更大的距离,这个距离叫做间距(margin)。
因此支持向量机有时被称为大间距分类器
当C非常大的时候,SVM容易收到异常点的影响,得到更好的决策界。
? 较大时,相当于 ? 较小,可能会导致过拟合,高方差。
? 较小时,相当于 ? 较大,可能会导致低拟合,高偏差。
支持向量机做的全部事情,就是极小化参数向量?范数的平方,或者说长度的平方。
3. 核函数
给定一个训练实例? ,利用? 的各个特征与预先选定的地标(landmarks)?(1), ?(2), ?(3)的近似程度来选取新的特征?1, ?2, ?3。
??????????(?, ?(1))就是核函数,这个核函数为高斯核函数(Gaussian Kernel)。(注:这个函数与正态分布没什么实际上的关系)
地标的作用:实例?与地标?之间的距离近似于0,则新特征 ?近似于?−0 = 1,如实例?与地标?之间距离较远,则?近似于等于 0。
假设训练实例含有两个特征[?1 ?2],给定地标?(1)与不同的?值,见下图:
可以看出,只有当?与?(1)重合时?才具有最大值。随着?的改变?值改变的速率受到?2控制。
可使用现有的软件包(如liblinear,libsvm 等)最小化支持向量机的代价函数。在使用这些软件包之前,需要编写核函数,使用高斯核函数之前需要特征缩放。
另外,支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel)。
4.支持向量机的两个参数?和?的影响
? = 1/?
? 较大时,相当于?较小,可能会导致过拟合,高方差;
? 较小时,相当于?较大,可能会导致低拟合,高偏差;
?较大时,可能会导致低方差,高偏差;
?较小时,可能会导致低偏差,高方差。
5. 支持向量机的使用
在高斯核函数之外的核函数,如:
- 多项式核函数(Polynomial Kernel)
- 字符串核函数(String kernel)
- 卡方核函数( chi-square kernel)
- 直方图交集核函数(histogram intersection kernel)
这些核函数需要满足Mercer’s 定理,才能被支持向量机的优化软件正确处理。
多类分类问题
可以训练?个支持向量机来解决多类分类问题。但是大多数支持向量机软件包都有内置的多类分类功能,我们只要直接使用即可。
SVM 的优化软件需要做几件事:
- 选择参数?
- 选择核函数
- 选择?2
普遍使用的准则:
- (1)如相较于训练样本数?而言,特征数?要大许多,选用逻辑回归模型或者不带核函数的支持向量机。
- (2)如?较小,而且?大小中等,如?在 1-1000 之间,而?在10-10000 之间,使用高斯核函数的支持向量机。
- (3)如?较小,而?较大,如?在1-1000 之间,而?大于50000,需创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。