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学习中我们将改变之前的学习习惯:
- 分类标识由 ,来作为分类的标识来区分不同类别。例如 标识类别一, 标识类别二。
- 假设函数由 。
其中, 中的w与b分别对应于 中的对应关系为:
Functional Margins
定义:一个超平面 和某个特定的训练样本 相关的函数间隔为:
超平面 表示的是由参数 确定的分界。
如果需要 获得一个较大的值,那么:
当 时,需要 远大于0;
当 时,需要 远小于0;
以及当 时,我们认为分类结果是正确的。
定义:一个超平面 和整个的训练集中的所有训练样本 相关的函数间隔为:
Geometric Margins
通过上图我们可以知道,一个样本 A点到超平面 的几何间隔为 ,且 为超平面 指向A点方向的单位向量,A点 在超平面 上的投影B点为:
同时,由于B在超平面上,所以:
- 注: 。
所以,我们可以得出几何间隔为 :
由于我们总是考虑对训练样本的争取分类,所以将几何间隔为 一般化为:
如果 , 。更一般的有, 。
定义:一个超平面 和整个的训练集中的所有训练样本 相关的几何间隔为:
Optimal Margin Classifier
最优间隔是指调整参数 使得几何间隔 最大。
Step1:条件假设
, , 只需要选一个条件。
对于上述条件的解释:
调整参数 对于超平面 无影响,例如将 扩大两倍 得到 ,即超平面位置不发生变化。所以我们可以通过缩放 来满足上述条件。
表示 的第一个位置的数字为1。
Step2:公式推演
首先看看函数间隔,你给参数前乘一个大于零的数,函数间隔就会变大,这个不好。再来看看几何间隔,由于要将参数单位化,所以就不受参数的非因素影响,就是说当几何间隔最大的时候,真的就是训练样本距离超平面最大。这样用几何间隔就可以非常健壮的描述样本与超平面之间的距离。
形式一:
形式二:
形式三:
Lagrange Duality
我们会使用拉格朗日乘数法来解决关于约束优化问题:
我们的目标函数是:
接下来我们构造拉格朗日算子:
然后分别对参数进行求导,并令其为零:
然后解上述等式构成的方程组,求得 。最后将 带回到目标函数。
Primal Problem
在这里我们构造出原始优化问题的目标函数:
现在我们开始使用拉格朗日乘数法来解决原始优化问题:
我们定义一个增广拉格朗日函数,在这里 与 为拉格朗日乘数:
定义一个 函数,这里的下标p表示primal:
所以:
所以 就是我们的目标问题——原始优化问题:
Dual Optimization Problem
我们定义函数 ,其中D表示duo(对偶):
现在我们定义对偶优化问题:
定义: 是原始优化问题 的最优值。
定义: 是原始优化问题 的最优值。
有这样一个在通常条件下成立的事实: ,即对偶优化问题的最优值小于等于原始优化问题的最优值。更一般的有,对于某个函数 而言,总是存在 。
For example: 。
关于对偶理论可以参考 运筹学(第四版) 清华大学出版社 第64页
对偶问题的一些性质:
1. 目标函数值相同时,各自的解为最优解
2. 若原问题有最优解,那么对偶问题也有最优解,且目标函数值相同
3. 还有互补松弛性,无界性,对称性等等
当原问题和对偶问题都取得最优解得时候,那么他们分别的目标函数也就到达了最优值。根据对偶问题的性质2,可以得到 那么我们就可以求解对偶问题来得到原问题 的最优值。
为了使得 我们需要满足一些条件,接下来我们开始推演 :
假设一: 是一个凸函数( 的Hessian矩阵是半正定矩阵)。
假设二: 是仿射函数( ,仿射的意思是这个函数任何时候都是线性的)。
假设三: 是严格可执行的( )
通过这三个假设,我们得到KKT(Karush-Kuhn-Tucker conditions)条件(是对偶最优问题的解, ),我们得到KKT:
其中, 成为KKT互补条件,对于 ,必有 。
参考资料
https://blog.****.net/xiaocainiaodeboke/article/details/50443680