SVM
SVM首先将原始的凸二次规划问题,使用拉格朗日函数,再由拉格朗日函数当中存在的原始问题等于拉格朗日函数的的min(max(L))极小极大问题,再由于KKT条件,拉个朗日函数的极小极大问题的解等于极大极小问题的解.
我们解得的w、b、α这几个参数带入带KKT条件当中必须要满足KKT条件才能说明拉格朗日对偶函数的解也同时是拉格朗日函数的解,也就是原始问题的解。
拉格朗日方程,就是求解一个函数的最小值,但是是在约束条件下求解,包括等式约束和不等式约束
image.png
我们将约束条件通过拉格朗日乘子构造拉格朗日方程
image.png
α需要满足都大于零,因为对于一个约束来说,我们不能越约束越小,约束条件是一个凸函数
只有当α*g(w)=0并且h(w)=0(这几个条件也是后面的KKT条件)的时候 max(L(w,α,β))=min(f(w))
当最后通过拉格朗日对偶函数求解出的w,α,β只有满足上述条件的时候,这个解才同时是原函数的解。
现在我们要通过求解这个方程来求解原问题的最优解,原问题要求f(w)的极小,第二部分和第三部分都是小于等于零的,所以我们首先对拉格朗日函数求极大,当第二部分和第三部分都等于零的时候这个函数就等于 公式1,这个时候我们再求极小,所以朗格朗日方程的极小极大问题就等于原始问题。
image.png image.png五、KKT条件
对于公式(1):
KKT条件前提:
- f(w),gi(w) 是凸函数(Hessian矩阵半正定)
- hi(w) 是仿射函数(线性函数)
- 存在w是的对所有的gi(w) 严格的小于0(Slater condition 强对偶充分条件)
所以KKT条件如下:
a
第一条第二条都是很在求解过程当中取得的,最后两条是拉格朗日函数的基本定义,第三条就是我们求出的解是原函数的解的条件。
拉格朗日对偶函数
image.png现在的优化方案到上面了,先求最小值,对 w 和 b 分别求偏导可以获取如下公式:
image.png
把上式获取的参数代入公式优化max值:
image.png
化解到最后一步,就可以获取最优的a值:
image.png
以上就可以获取超平面!
继续介绍一下核技巧,对于一个线性不可分的数据集,我们可以通过将其从进行特征映射,映射到一个高维空间当中。例如现在有两个特征x1(1,3) x2(2,4),
image.png
映射后就为(1,3*根号2,9)如果我们先进行映射,再进行内积的话我们就要计算n^2次,如果映射的维度较高的话计算时间就会很长,所以实际上不是这样做的,而是先进行内积,在开方。得到的结果就和先映射再内积的结果一样了。举例说明:
image.png
也就是我们并没有进行映射,但是这种计算方式就会隐含我们进行了映射。总而言之,核函数它本质上隐含了从低维到高维的映射,从而避免直接计算高维的内积。
常见的核函数
image.png
参考资料。
https://blog.csdn.net/zhangzhengyi03539/article/details/49366447