Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)

Preface

本文对于SVM(Support Vector Machine,支持向量机)的做了一些准备工作,并在接下来的几篇文章正式初步学习SVM。
主要内容:
Notation(符号约定)
Functional Margins And Geometric Margins(函数间隔和几何间隔 )
Optimal Margin Classifier(最有间隔分类器)
Primal Problem(原始问题)
Dual Optimization Problem(对偶优化问题)

Notation

在SVM学习中我们将改变之前的学习习惯:

  1. 分类标识由 y{0,1}y{1,1} ,来作为分类的标识来区分不同类别。例如 y=1 标识类别一, y=1 标识类别二。
  2. 假设函数由 hθ(x)=g(θTx),xRn+1hw,b(x)=g(wTx+b),xRn
    其中,hw,b(x)=g(wTx+b),xRn 中的w与b分别对应于 hθ(x)=g(θTx) 中的对应关系为:
    ω=[θ1,θ2...θn]T
    b=θ0

Functional Margins

定义:一个超平面 (w,b) 和某个特定的训练样本 (xi,yi) 相关的函数间隔为:

(1)γ^(i)=y(i)(wTx(i)+b)

超平面 (w,b) 表示的是由参数 w,b 确定的分界。

如果需要 γ^(i) 获得一个较大的值,那么:
y(i)=1 时,需要 wTx(i)+b 远大于0;
y(i)=1 时,需要 wTx(i)+b 远小于0;

以及当 γ^(i)=y(i)(wTx(i)+b)>0 时,我们认为分类结果是正确的。

定义:一个超平面 (w,b) 和整个的训练集中的所有训练样本 (xi,yi) 相关的函数间隔为:

(2)γ^(i)=mini=1,2,...,mγ^(i)

Geometric Margins

Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
通过上图我们可以知道,一个样本 (x(i),y(i)) A点到超平面 wTx+b=0 的几何间隔为 γ(i) ,且 ww 为超平面 wTx+b=0 指向A点方向的单位向量,A点 (x(i),y(i)) 在超平面 wTx+b=0 上的投影B点为:

(3)x(i)γ(i)ww

同时,由于B在超平面上,所以:

(4)wT(x(i)γ(i)ww)+b=0

  • 注:wTw=w2

所以,我们可以得出几何间隔为 γ(i)

(5)γ(i)=wTx(i)+bw=(ww)Tx(i)+bw

由于我们总是考虑对训练样本的争取分类,所以将几何间隔为 γ(i) 一般化为:

(6)γ(i)=y(i)(wTx(i)+bw=(ww)Tx(i)+bw)

如果 w=1γ^(i)=γ(i) 。更一般的有,γ(i)=γ^(i)w

定义:一个超平面 (w,b) 和整个的训练集中的所有训练样本 (xi,yi) 相关的几何间隔为:

(7)γ(i)=mini=1,2,...,mγ(i)

Optimal Margin Classifier

最优间隔是指调整参数 w,b 使得几何间隔 γ(i) 最大。

Step1:条件假设

w=1|w1|=1w+|w|2=? 只需要选一个条件。
对于上述条件的解释:
调整参数 w,b 对于超平面 wTx+b=0 无影响,例如将 w,b 扩大两倍 2w,2b 得到 2wTx+2b=02(wTx+b)=0 ,即超平面位置不发生变化。所以我们可以通过缩放 w,b 来满足上述条件。
|w1| 表示 w 的第一个位置的数字为1。

Step2:公式推演

首先看看函数间隔,你给参数前乘一个大于零的数,函数间隔就会变大,这个不好。再来看看几何间隔,由于要将参数单位化,所以就不受参数的非因素影响,就是说当几何间隔最大的时候,真的就是训练样本距离超平面最大。这样用几何间隔就可以非常健壮的描述样本与超平面之间的距离。

形式一:
(8)maxγ,w,bγs.t.y(i)(wTx(i)+b)γi=1,...,mw=1
形式二:
(9)maxγ,w,bγ^ws.t.y(i)(wTx(i)+b)γ^i=1,...,m
形式三:
(10)minγ,w,bw2s.t.y(i)(wTx(i)+b)γ^i=1,...,mγ^=1s.t.miny(i)(wTx(i)+b)=1ormaxγ,w,b1ws.t.y(i)(wTx(i)+b)γ^i=1,...,mγ^=1s.t.miny(i)(wTx(i)+b)=1

Lagrange Duality

我们会使用拉格朗日乘数法来解决关于约束优化问题:
我们的目标函数是:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
接下来我们构造拉格朗日算子:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
然后分别对参数进行求导,并令其为零:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
然后解上述等式构成的方程组,求得 wi,βi 。最后将 wi,βi 带回到目标函数。

Primal Problem

在这里我们构造出原始优化问题的目标函数:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
现在我们开始使用拉格朗日乘数法来解决原始优化问题:
我们定义一个增广拉格朗日函数,在这里 αiβi 为拉格朗日乘数:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
定义一个 θp(w) 函数,这里的下标p表示primal:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
所以:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
所以 minθp(w) 就是我们的目标问题——原始优化问题:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)

Dual Optimization Problem

我们定义函数 θD(α,β) ,其中D表示duo(对偶):
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
现在我们定义对偶优化问题:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)

定义: p 是原始优化问题 minθp(w) 的最优值。

定义: d 是原始优化问题 maxθD(α,β) 的最优值。

有这样一个在通常条件下成立的事实: dp ,即对偶优化问题的最优值小于等于原始优化问题的最优值。更一般的有,对于某个函数 f(x) 而言,总是存在 maxminf(x)minmaxf(x)
For example:maxy{0,1}(minx{0,1}1{x=y})minx{0,1}(maxy{0,1}1{x=y})

关于对偶理论可以参考 运筹学(第四版) 清华大学出版社 第64页
对偶问题的一些性质:
1. 目标函数值相同时,各自的解为最优解
2. 若原问题有最优解,那么对偶问题也有最优解,且目标函数值相同
3. 还有互补松弛性,无界性,对称性等等

当原问题和对偶问题都取得最优解得时候,那么他们分别的目标函数也就到达了最优值。根据对偶问题的性质2,可以得到 p=d 那么我们就可以求解对偶问题来得到原问题 θp(w) 的最优值。

为了使得 p=d 我们需要满足一些条件,接下来我们开始推演 p=d
假设一: f 是一个凸函数( f 的Hessian矩阵是半正定矩阵)。
假设二:hi 是仿射函数( hi(w)=θTw+b ,仿射的意思是这个函数任何时候都是线性的)。
假设三: gi 是严格可执行的( w,使i,gi(w)<0

通过这三个假设,我们得到KKT(Karush-Kuhn-Tucker conditions)条件(w,α,βwα,β是对偶最优问题的解,p=d ),我们得到KKT:
Andrew Ng机器学习课程笔记(六)之监督学习之Support Vector Machine(1)
其中,αigi(w)=0 成为KKT互补条件,对于 αi>0 ,必有 gi(w)=0

参考资料

https://blog.****.net/xiaocainiaodeboke/article/details/50443680