0 解析几何知识, 点到平面的距离

如图, 假设一个平面 , 平面外一点
,
在平面上的投影为
, 求点
到平面的距离即求
我们可以知道平面的法向量为
, 则这个法向量对应的单位向量
假设平面上任意一点 , 则
满足
点 到点
构成的向量
所以即为
在法向量
方向上的投影, 即与单位法向量
的点乘的结果.(这里取了个绝对值, 因为距离只能为正, 避免了向量方向问题的干扰)
其中与点相关的变量
都可以用式
替换
所以合并式可得:
如果用矩阵来表示, 则我们取
则式(0.4)可以写为
即为L2范式(L2 norm), 就是平方和之后开根号
1 SVM基本问题描述和解决思路
基本问题:
假设有两个类别的数据,
其中
我们试图找到一个分隔平面(超平面) (这里就是
的一个变体)
使得
- 离 分隔平面
最近的点 到 分隔平面
的距离最大
- 所有点都能被正确分类
目标1: 距离最大
根据之前的预备知识, 我们知道任意一点到平面的距离为(李航的书说是"几何距离")
我们要求分隔平面两边的点都满足条件2: 距离分隔平面的距离最大
所以我们的求解目标是
目标2: 正确分类
同时我们希望能满足条件1, 即所有点能被正确分类
因为
- 如果是正确分类的话, 所有类别为+1 的点都会在平面的上方, 类别为-1 的点都会在平面的下方.
- 在平面上方的点满足
, 在平面下方的点满足
- 所以如果能正确分类就有:
SVM的求解问题的数学表达
翻译一下:
- 找到距离平面最近的一个点, 其距离:
- 把这个距离乘以2, 就是间隔了:
- 把分隔平面挪动翻转一下, 看看是不是能扩大这个间隔:
求解目标:
2 如何简化这个问题: 转换为凸二次规划问题
通过把原问题构建成凸二次规划问题来进行求解, 因为凸二次规划可解
凸二次规划问题:
- 目标函数是凸二次函数:
(关于
的二次函数)
- 约束是线性约束:
现在我们的目标就是, 把原问题凑成凸二次规划问题
目标函数的变换
原问题的目标函数为:
变换思路
- 因为求解目标是
, 所以
这一项(即变量
)要想办法忽略掉
- 目标函数为一个二次函数, 原函数里面其实隐含了一个二次函数:
- 所以
这一项有点没有用, 我们需要想办法忽略它
工具:
-
我们发现一个事实, 如果把
等比例放大/缩小, 式(1.1)描述的问题不变:
证明
假设一个系数, 使得
放大为
,
则式(1.1)变为:
其中目标函数(分母分子同乘一个r, 抵消了)
约束目标(不等式两边同除一个正数, 不等式仍然成立)
-
这个
就是PQ和平面法向量
点乘的结果,这个结果要除以法向量的模长才是几何间隔(我们的问题要求几何间隔满足一定条件)。所以如果我们只是变换法向量的长度的话,因为无论如何都会除以法向量长度,所以对于原问题并没有任何影响(式(1.1)描述的问题不变)。
变换过程
目标函数的变换
- 我们假设所有的
都乘上一个系数r,我们证明了乘上这个系数与否不影响问题的描述
- 于是我们总能找到一个
,使得
, 这样的话原问题的目标函数可以写为
- 我之前一直迷惑于这个
怎么处理的,后来想起来系数和问题的求解无关,因为这是个凸二次函数嘛,想想抛物线的形状,无论系数怎么改变抛物线最低点的值都会出现在固定的位置(系数和开口大小相关),所以可以直接忽略系数: 求解
等价于求解
- 到这一步, 我们的目标函数变化过程为:
约束条件的变换
- 接下来看约束条件的变化, 原问题的约束条件为:
, 由于之前对于
的变换引入了一个新的约束条件:
-
, 我们可以视为
, 在这里,
的作用是对
施加限制, 所以我们可以换个思路, 直接对
施加限制:
, 等价于
- 所以新的约束条件为:
且
, 因为
的原因, 所以
(分类正确的条件下, 这两个式子都能保证>0(分类正确意味着点不能再分隔平面上, 所以绝对值也不可能等于0)), 所以这两个约束条件可以合并为一个:
变换过程的公式推导
原问题为:
找到个系数使得
,(注意现在
也是目标函数之一了)
化简目标函数, 凑二次函数:
于是现在的问题为:
转换约束条件, 把关于的约束条件转变成只与
相关(目标函数中的
也没了)
继续转换, 并合并两个约束条件
(这段变换其实是我整个SVM里面一开始最不能理解的地方, 我找到的教材都只是说了一句: 因为缩放并不影响原问题, 所以我们就能得出, 之类的解释(包括<统计学习方法>也是类似的跳跃式证明). 我数学太渣真的无法自己就这样接受这么跳跃的证明, 于是想了好久才想出了一个可以自己接受的证明方法. 不确保一定正确, 希望有人能指出错误)
3 通过构造一个新函数, 合成目标函数和约束: 拉格朗日函数
在利用二次凸优化构建了一个新的等价问题之后, 如何解? 现在的思路是把目标函数和约束合成为一个式子, 通过求新式子的最值, 便是原问题的最值
这个方法称为: 拉格朗日函数
拉格朗日函数求解的条件
-
如果一个带约束优化问题有诸如一下的形式:
-
并且
连续可微
则可以将原问题转换为一下新问题
能进行这样转换的原因
为了能证明新得到的拉格朗日函数是原问题的变形(即拉格朗日函数能变回原问题), 我们最好把 和 原问题中的约束条件
放在一起看,
并且时刻记住: 因为求的是, 所以
对
有最大值, 对
有最小值
于是我们有如下的假设:
- 如果
不满足条件, 即
:
中的
这一项, 最大值为
, 导致
, 无解.
- 如果
满足条件, 即
:
中的
这一项, 因为
, 所以最大值为
(正数
乘以负数
结果仍为负数), 有可能有解
- 如果
不满足条件, 即
:
中的
这一项, 因为
并没有约束条件约束, 所以可以取任意值, 即
, 导致
, 无解.
- 如果
满足条件, 即
: 则
,
可能有解
我们可以组合假设2和假设4, 即:
如果 满足
, 且
满足
, 则
所以此时 , 朗格朗日函数变换回原问题
把凸二次函数问题转换成拉格朗日函数
-
替换为
所以有:
-
替换为
-
替换为
: 把原约束的左边移到了右边而已
- 因为原凸二次函数问题中没有类似
的约束, 所以直接忽略
这一项
- 原凸二次函数问题变为:
4 通过对偶问题解拉格朗日函数
为什么要转成对偶问题:
求解拉格朗日函数的极值的, 由于求极值的运算是从内向外的. 每次运算需要先算, 而这个
作为新引入的变量, 只能通过计算所有值来找到最值.
而每次求得一个新的, 我们就要求一次
的最值, 所以这样非常耗时麻烦
但是如果能先求, 每次找到一个新的
后就不用再计算了.
对偶问题的转换
只要原问题满足KKT+Slater条件, 我们便可以交换求最大值和最小值的顺序:
KKT条件
- 主问题可行:
- 对偶问题可行:
- 互补松弛:
- (统计学习方法上面的条件)最优解处对
偏导是0:
Slater条件
当主问题为凸优化问题, 即 和
为凸函数,
为仿射函数, 且可行域中至少有一点使不等式约束严格成立时, 对偶问题等价于原问题.
对偶问题的证明
原问题为, 对偶问题为
, <统计学习方法>写的证明终于理解了, 这里我做一下注释(也把符号统一为我这里使用的符号):
先假设,(D=dual problem对偶问题)
, (P=prime problem原问题)
所以可知对任意 都有
因为
是对
求最小值,
是对
求最大值, 所以最小值一定小于大于最大值
即对任意 都有
这里的"任意"很重要, 下一步的证明的基础就是这个"任意"
因为原问题和对偶问题都有最优解, 所以:
因为我们有: 对任意
都有
, 所以就算取
的最大值和
的最小值, 仍然要满足
, 所以
成立
相当于:
求解SVM, 得到最简单的计算式
因为我们之前将原问题简化又简化了, 所以求解就变得很简单.
只要对分别求偏导, 然后找到偏导等于0的时候, 这时候的极值就是最优解
然后带入拉格朗日函数的对偶形式里面:
就有
SVM的最朴素算法(线性可分支持向量机算法)
<统计学习方法>
P106 算法7.2
网友评论