主要学习目标
我们主要的学习目的是简单看一遍西瓜书里面的内容,尽可能的对各个模型都有一定的了解,在本节课程当中,我会给大家分享机器学习相关的的内容,我主要是在学习吴恩达老师最新的机器学习的视频,但是学完之后还是觉得较为空泛,所以在此,借机会再重新复习
支持向量机SVM
为什么要学习支持向量机,首先,支持向量机是在做分类问题的时候,人们最先可能想到的,因为往往一个数据集当中,正类以及负类二者之间的一个分割超平面,可以实现许多超平面进行划分但是支持向量机就是要实现找到能够"正中间"划分的超平面,也就是对训练样本对该超平面的影响不是很大,可以尽可能的实现正类和负类的正确划分
超平面
什么是超平面,超平面可以简单的理解为我们所要研究的问题为 n n n维空间的,那么我们就把 n − 1 n-1 n−1维称为超平面,比如说西瓜书上面对于划分超平面,正类和负类的数据集散落在一个二维的图像上,那么我们就尝试找到1维的一条直线这样子的一个超平面实现划分的应用
支持向量以及间隔
划分超平面可以通过如下线性方程
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
样本空间当中
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离为
r
=
∣
w
T
x
+
b
∣
∥
w
∥
.
r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|} .
r=∥w∥∣∣wTx+b∣∣.
对于样本点进行计算,若样本正确分类则
y
i
=
+
1
y_i=+1
yi=+1,分类错误则
y
i
=
−
1
y_i=-1
yi=−1
最接近使得分类成立的,也就是恰好使得样本空间当中的正类和负类实现分类样本,被称为支持向量
其到超平面的距离为
γ
=
2
∥
w
∥
\gamma=\frac{2}{\|\boldsymbol{w}\|}
γ=∥w∥2
该距离也被称为间隔
那么,要找到最大间隔的划分超平面,也就是约束
w
w
w和
b
b
b,使得
γ
\gamma
γ最大化
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
⩾
1
,
i
=
1
,
2
,
…
,
m
.
\begin{array}{c} \displaystyle\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}\\ s.t. y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m . \end{array}
w,bmin21∥w∥2s.t.yi(wTxi+b)⩾1,i=1,2,…,m.
对偶问题
对于该问题转化为凸优化问题,可以使用到的方法是拉格朗日乘子法
使用该方法可以写出
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(w^{T} x_{i}+b\right)\right)
L(w,b,α)=21∥w∥2+i=1∑mαi(1−yi(wTxi+b))
令
L
(
w
,
b
,
α
)
L(\boldsymbol{w}, b, \boldsymbol{\alpha})
L(w,b,α) 分别对
w
\boldsymbol{w}
w 和
b
b
b 的偏导为零可得
w
=
∑
i
=
1
m
α
i
y
i
x
i
0
=
∑
i
=
1
m
α
i
y
i
\boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i} \quad 0=\sum_{i=1}^{m} \alpha_{i} y_{i}
w=i=1∑mαiyixi0=i=1∑mαiyi
回代可以得到
max
α
∑
i
=
1
m
a
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
a
j
y
i
y
j
x
i
T
x
j
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
α
i
≥
0
\displaystyle\max _{\alpha} \sum_{i=1}^{m} a_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} a_{j} y_{i} y_{j} x_{i}^{T} x_{j}\\ s.t.\sum_{i=1}^{m} \alpha_{i} y_{i}=0\\ \alpha_{i} \geq 0
αmaxi=1∑mai−21i=1∑mj=1∑mαiajyiyjxiTxjs.t.i=1∑mαiyi=0αi≥0
最终模型:
f
(
x
)
=
w
⊤
x
+
b
=
∑
i
=
1
m
α
i
y
i
x
i
⊤
x
+
b
f(\boldsymbol{x})=\boldsymbol{w}^{\top} \boldsymbol{x}+b=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^{\top} \boldsymbol{x}+b
f(x)=w⊤x+b=i=1∑mαiyixi⊤x+b
K
K
T
条
件
:
{
α
i
≥
0
;
1
−
y
i
f
(
x
i
)
≤
0
;
α
i
(
1
−
y
i
f
(
x
i
)
)
=
0.
必有
α
i
=
0
或
y
i
f
(
x
i
)
=
1
KKT条件: \left\{\begin{array}{l} \alpha_{i} \geq 0 ; \\ 1-y_{i} f\left(\boldsymbol{x}_{i}\right) \leq 0 ; \\ \alpha_{i}\left(1-y_{i} f\left(\boldsymbol{x}_{i}\right)\right)=0 . \end{array} \begin{array}{l} \text { 必有 } \alpha_{i}=0 \text { 或 } \\ y_{i} f\left(\boldsymbol{x}_{i}\right)=1 \end{array}\right.
KKT条件:⎩⎨⎧αi≥0;1−yif(xi)≤0;αi(1−yif(xi))=0. 必有 αi=0 或 yif(xi)=1
解的稀疏性表示的是在训练完成后, 最终模型仅与支持向量有关(也就是说不与所有的样本有关)
SMO求解
基本思路:不断执行如下两个步骤直至收敛
- 第一步: 选取一对需更新的变量 α i \alpha_{i} αi 和 α j \alpha_{j} αj
- 第二步: 固定
α
i
\alpha_{i}
αi 和
α
j
\alpha_{j}
αj 以外的参数, 求解对偶问题更新
α
i
\alpha_{i}
αi 和
α
j
\alpha_{j}
αj 仅考虑
α
i
\alpha_{i}
αi 和
α
j
\alpha_{j}
αj 时, 对偶问题的约束
0
=
∑
i
=
1
m
α
i
y
i
0=\sum_{i=1}^{m} \alpha_{i} y_{i}
0=i=1∑mαiyi 变为
α i y i + α j y j = c , α i ⩾ 0 , α j ⩾ 0 \alpha_{i} y_{i}+\alpha_{j} y_{j}=c, \quad \alpha_{i} \geqslant 0, \quad \alpha_{j} \geqslant 0 αiyi+αjyj=c,αi⩾0,αj⩾0
用 α i \alpha_{i} αi 表示 α j \alpha_{j} αj , 代入对偶问题
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
有闭式解!
\max _{\alpha} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \text { 有闭式解! }
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj 有闭式解!
对任意支持向量
(
x
s
,
y
s
)
\left(\boldsymbol{x}_{s}, y_{s}\right)
(xs,ys) 有
y
s
f
(
x
s
)
=
1
y_{s} f\left(\boldsymbol{x}_{s}\right)=1
ysf(xs)=1 由此可解出
b
b
b
为提高鲁棒性, 通常使用所有支持向量求解的平均值
特征空间映射
引入特征空间的映射,可以更高效率的去解决问题,这是因为如果原始空间是有限维(属性数有限), 那么一定存在一个 高维特征空间使样本线性可分,比如可以在 ( x , y ) (x,y) (x,y)的情况下加上 ( x , y , x + y ) (x,y,x+y) (x,y,x+y)可以更好的解决问题
核函数
原始问题
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
y
i
(
w
⊤
ϕ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
2
,
…
,
m
.
\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2} \\ s.t. y_{i}\left(\boldsymbol{w}^{\top} \phi\left(\boldsymbol{x}_{i}\right)+b\right) \geq 1, i=1,2, \ldots, m .
w,bmin21∥w∥2s.t.yi(w⊤ϕ(xi)+b)≥1,i=1,2,…,m.
对偶问题
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
⩾
0
,
i
=
1
,
2
,
…
,
m
\max _{\boldsymbol{\alpha}} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) \\ s.t. \sum_{i=1}^{m} \alpha_{i} y_{i}=0, \quad \alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1∑mαiyi=0,αi⩾0,i=1,2,…,m
预测
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
=
∑
i
=
1
m
α
i
y
i
ϕ
(
x
i
)
T
ϕ
(
x
)
+
b
f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \phi(\boldsymbol{x})+b=\sum_{i=1}^{m} \alpha_{i} y_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})+b
f(x)=wTϕ(x)+b=i=1∑mαiyiϕ(xi)Tϕ(x)+b
由于引入了
ϕ
(
x
i
)
T
ϕ
(
x
)
\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})
ϕ(xi)Tϕ(x)这个高维的甚至无穷维的值,这是十分难以计算的,首先观察到
ϕ
(
x
i
)
T
ϕ
(
x
)
\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})
ϕ(xi)Tϕ(x)是以内积的形式展现出来
所以为了简便计算,引入核函数的概念
基本思路: 设计核函数
κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right) κ(xi,xj)=ϕ(xi)Tϕ(xj)
绕过显式考虑特征映射、以及计算高维内积的困难,需要注意到的是核函数是隐式的,不能保证完全找到最优的核函数的选择
Mercer 定理: 若一个对称函数所对应的核矩阵半正定, 则它就能作 为核函数来使用
任何一个核函数, 都隐式地定义了一个
R
K
H
S
RKHS
RKHS (
R
e
p
r
o
d
u
c
i
n
g
K
e
r
n
e
l
H
i
l
b
e
r
t
S
p
a
c
e
Reproducing Kernel Hilbert Space
ReproducingKernelHilbertSpace 再生核希尔伯特空间)
“核函数选择” 成为决定支持向量机性能的关键!
如何使用SVM
基本思路: 允许模型输出与实际输出间存在
2
ϵ
2 \epsilon
2ϵ 的差别
ϵ
−
不
敏
感
损
失
函
数
\epsilon-不敏感损失函数
ϵ−不敏感损失函数
软间隔
软间隔的提出,主要是因为在大部分的分类过程当中,不能完全保证正类和负类就是刚好一条直线就分开了,也为了避免因为过拟合实现线性分类的问题,所以引入软间隔,也就是允许支持向量机在样本上可以出错
支持向量回归SVR
原始问题
min
w
,
b
,
ξ
i
,
ξ
^
i
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
^
i
)
s.t.
f
(
x
i
)
−
y
i
⩽
ϵ
+
ξ
i
,
y
i
−
f
(
x
i
)
⩽
ϵ
+
ξ
^
i
,
ξ
i
⩾
0
,
ξ
^
i
⩾
0
,
i
=
1
,
2
,
…
,
m
\text { 原始问题 } \begin{aligned} \min _{\boldsymbol{w}, b, \xi_{i}, \hat{\xi}_{i}} & \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}+\hat{\xi}_{i}\right) \\ \text { s.t. } & f\left(\boldsymbol{x}_{i}\right)-y_{i} \leqslant \epsilon+\xi_{i}, \\ & y_{i}-f\left(\boldsymbol{x}_{i}\right) \leqslant \epsilon+\hat{\xi}_{i}, \\ & \xi_{i} \geqslant 0, \hat{\xi}_{i} \geqslant 0, i=1,2, \ldots, m \end{aligned}
原始问题 w,b,ξi,ξ^imin s.t. 21∥w∥2+Ci=1∑m(ξi+ξ^i)f(xi)−yi⩽ϵ+ξi,yi−f(xi)⩽ϵ+ξ^i,ξi⩾0,ξ^i⩾0,i=1,2,…,m
对
偶
问
题
max
α
,
α
˙
∑
i
=
1
m
y
i
(
α
^
i
−
α
i
)
−
ϵ
(
α
^
i
+
α
i
)
−
1
2
∑
i
=
1
m
∑
j
=
1
m
(
α
^
i
−
α
i
)
(
α
^
j
−
α
j
)
x
i
T
x
j
s.t.
∑
i
=
1
m
(
α
^
i
−
α
i
)
=
0
,
0
⩽
α
i
,
α
^
i
⩽
C
对偶问题 \begin{aligned} \max _{\boldsymbol{\alpha}, \dot{\boldsymbol{\alpha}}} & \sum_{i=1}^{m} y_{i}\left(\hat{\alpha}_{i}-\alpha_{i}\right)-\epsilon\left(\hat{\alpha}_{i}+\alpha_{i}\right)-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right)\left(\hat{\alpha}_{j}-\alpha_{j}\right) \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \\ \text { s.t. } & \sum_{i=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right)=0, \quad 0 \leqslant \alpha_{i}, \hat{\alpha}_{i} \leqslant C \end{aligned}
对偶问题α,α˙max s.t. i=1∑myi(α^i−αi)−ϵ(α^i+αi)−21i=1∑mj=1∑m(α^i−αi)(α^j−αj)xiTxji=1∑m(α^i−αi)=0,0⩽αi,α^i⩽C
预 测 f ( x ) = ∑ i = 1 m ( α ^ i − α i ) x i T x + b 预测 \quad f(\boldsymbol{x})=\sum_{i=1}^{m}\left(\hat{\alpha}_{i}-\alpha_{i}\right) \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}+b 预测f(x)=i=1∑m(α^i−αi)xiTx+b
将支持向量机的公式改写为
min
w
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ℓ
0
/
1
(
y
i
(
w
T
x
i
+
b
)
−
1
)
ℓ
0
/
1
(
z
)
=
{
1
,
i
f
z
<
0
0
,
o
t
h
e
r
w
i
s
e
\begin{array}{c} \min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \displaystyle \sum_{i=1}^{m} \ell_{0 / 1}\left(y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)-1\right)\\ \ell _{0/1}(z)=\left\{ \begin{array}{c} 1, &\mathrm{if} z<0\\ 0, &\mathrm{otherwise}\\ \end{array}\right. \end{array}
minw,b21∥w∥2+Ci=1∑mℓ0/1(yi(wTxi+b)−1)ℓ0/1(z)={1,0,ifz<0otherwise
计算样本投影后的点距离
d
i
s
t
(
x
1
,
x
2
)
=
∥
ϕ
(
x
1
)
−
ϕ
(
x
2
)
∥
H
k
2
=
k
(
x
1
,
x
1
)
−
2
k
(
x
1
,
x
2
)
+
k
(
x
2
,
x
2
)
dist(x_1,x_2)=\|\phi(x_1)-\phi(x_2)\|_{\mathcal{H}_k}^2=\sqrt{k(x_1,x_1)-2k(x_1,x_2)+k(x_2,x_2)}
dist(x1,x2)=∥ϕ(x1)−ϕ(x2)∥Hk2=k(x1,x1)−2k(x1,x2)+k(x2,x2)
总结
在本次课程当中我们学习并了解到了机器学习的SVM支持向量机,让我们继续努力