SVM算法原理(2)

接着上面的博客,开始之前,我们需要有这样的预备知识。
拉格朗日对偶(Lagrange duality)
先来看看这样一个问题
这里写图片描述
这样一个在约束条件下求极限的问题,我们在高数上是学过的,但是高数里我们接触的比较多的是不带等号的,比如:
这里写图片描述
这种情况下怎么求大家都会,现在来研究下不带等号的情况下怎么求最大值,其实用大学的知识也可以做,但是肯定比较麻烦。而今天要解决的就是用比较简单的方法,我们伟大的拉格朗大神出面把这个问题解决了,此处掌声!
拉格朗大神是这么做的:
generalized Lagrangian
这里写图片描述
w是一个向量,ai和bi取个名字叫拉格朗日乘子
前方开始高能!!!!
定义:
这里写图片描述
我们在这里讨论一下,如果w违反了原始约束条件,gi(w) > 0 or hi(w) 6= 0 for some i,我们就会得到下面的式子:
这里写图片描述
也就是说:
这里写图片描述
也就是说在满足我们原始约束条件下,我们就可以用这样的求最大的值得方式表示出f(w),在这里我们注意,是不是
这里写图片描述也就等于零了?
我们也就得出了我们想要求得值
这里写图片描述
注意一下,这里的x把他当成w,这个是我从别的地方截图过来的。
我们再定义一个p星
这里写图片描述
我们刚接触的时候,其实到了这里还是有疑问,干嘛要这么做啊? 又是求最小值,又是求最大值,一点没有看出 优化 的意思啊! 学机器学习就是这样,不像我们学数学,数学一种线性学习方式,理解前面,才能理解后面。然而机器学习不是这样,他是一种全局理解方式,我们是确定了一个模型之后,我们所有的推导都是为模型服务的。所以不到最后面,是没法理解现在是干什么。
在这里还是解释一下,我们为什么要这么做,为后面的知识做铺垫: 我们在上一篇博客里就说过,我们由于w向量可能非常大,为了提高效率,我们不想通过w来求最优解,而在这篇博客里,我们推导到这里还是关于w的算法,看看p星还是以w为参数。接下来我们要做的就是把这个参数替换,用长度不是很长的向量来替换,也就是引出了博文开头提出的 **拉格朗日对偶(Lagrange duality)*的知识。
定义:
这里写图片描述
这里写图片描述
这里写图片描述
这样我们就定义出了d星,那么d和p之间是啥关系呢?
这里写图片描述
同时我们也应该知道,p 和 d*相等当且仅当 w,a,b是优解的时候

我们得出了p 和d的不等关系,但是时刻记住我们的框架*
1.我们相用长度比较短的向量来代替w
2.**p
是关于w的函数,d是关于a,b的向量**
所以接下来,我们要做的就是让上面两个式子相等
那什么条件下,上面的两个式子相等呢?
答案是在KKT条件下
先看下面的性质
这里写图片描述
关于凸函数部分的内容,一定要自己学习学,这部分的内容我本人看完了之后,是受益匪浅。
现在得逻辑是这样,我们知道了,在满足性质里所给的条件下,存在w
是p的最优解,a,b是d的最优解,并且那么就有了p* ==d的等式,那么接下来,**KKT解决的是什么情况下,w和a以及b是最优解的问题**
下面的是KKT条件:
这里写图片描述
通过KKT条件的意义是,如果w*,a*,b能够满足上面的式子,那他就是最优解,在根据前面的性质,我就知道了用p == d了。
这里我们需要注意的一个问题是:
这里写图片描述
这个式子有个名字叫KKT对偶互补条件,(KKT dual complementarity),通过这个式子,我们可以知道不是a
等于0那就是g(w*)等于0,这个就是我们一直苦苦寻找的可以降维的切入点,因为我们在后面的SVM中会看到,大部分ai都等于零

注意:其实到了这里之后,我自己还是有一个小疑问的,在性质里是说存在w*,ab是最优解,同时满足p * == d* ,那在实际应用中是不是也存在 w*,a* b* 是最优解,但不满足p* == d* 呢? 那我们用KKT来算出满足最优解的w*,ab了,那么我们是不是还要加一个步骤来证明,p等于d呢?
其实这里还是有必要进行一番阐述,我发现很多资料都没有进行说明
这里写图片描述

这个问题先保留吧!

接下来我们就把上面的结论用到我们的模型中,就像之前所说的,我们所做的所有数学推导都是为模型服务,接下来就开始服务吧
在上一篇博文中,我们最终的优化式子是定格在下面的这个:
这里写图片描述
现在我们用拉格朗日对偶方法来给他换个表达方式:
首先把约束条件转换成我们熟悉的样子
这里写图片描述
在这里可以看到,我们是没有h(w)函数的,也就是说我们就不用b这个拉格朗日乘子了。
那按照我们的逻辑图走
性质 ->d* == p* -> w*,a为最优解 -> 满足KKT条件
前方高能:
还记得这个式子把。KKT对偶互补
这里写图片描述
那也就是说,我们的a
大于零当且仅在g(w) ==0的时候,那g(w) == 0 也就意味着这里写图片描述等于1啊 ,这个式子不就是function margin吗? 那也是说在一个样本中function margin等于的点才会使得最优解a*等于0,其实这样的点在整个样本中是非常少的
到这我们在捋一捋我们苦苦寻找,把w转换成a来表示,现在又得到结论a不等于零的点事非常少的,那不就完成了提高效率的目的吗? 这些点有个名字,就叫 支持向量 support vectors ,这也意味着我们引出了 支持向量这个知识

还是这个式子:
这里写图片描述

我们现在把他转换成:

这里写图片描述

我们为了把w转换掉,我们就要把拉格朗日对偶给求出来啊? 开始求!
这里写图片描述
由这个式子,算出
这里写图片描述
再对b求导
这里写图片描述

这里需要明确解释一下,因为有的人看了有疑问这个b是啥,不是一直都是只对w求导吗?
这里写图片描述

我们在捋一捋思路,我们在求拉格朗日对偶的时候,是不是求是对w求导,让他等于零,求出w之后,载把w代入到原始,使得原始只含有a和b(beta)呢? 那就开始往里代入吧,先把w代入进去
代入进去,一简化,得到是这个式子,这个可以自己算一算,不是很麻烦。
这里写图片描述
而我们在对b求导的时候,得到了这里写图片描述,那可以上边的式子可以进一步简化成
这里写图片描述
由此,我们前面再加个max 也就变成 拉格朗日对偶问题了。
其实到了这里,我们应该提出一个疑问,我们知道拉格朗日对偶问题,是先求Min,再求max,那这里对w求导为什么就等价于是 求min了呢?
求导之后也有可能是求导了最大值啊?
其实这部分是 凸函数的知识!
注意这个我们刚变形时候的式子:
这里写图片描述
其中是范式他是一个凸函数(这个是根据英文资料里翻译的,其实图形是向下凹的,我觉得外国人的思维里,向上拱上去,那叫凹了,向下拱下来那叫凸了,非常有意思),
这个这里写图片描述在凸函数里面叫仿射函数,仿射函数都是凸函数,那两个凸函数加起来也就是凸函数,凸函数的导数等于零的时候,也就对应最小的值了。
最终,我们也就得到了这样的式子
这里写图片描述

s.t 表示的是约束条件

现在我们载把逻辑图贴出来,看看
这里写图片描述

我们是知道存在w* a* 使得 p* == d* ,现在我们求如果出了a了,通过这里写图片描述,我们也能求出w
如果我们求出了w* ,那我们的b就是这样的值
这里写图片描述
对于这个式子,我不想用非常复杂,严谨的数学去理解,就靠intuition来理解吧
我们知道wTx+b 我们是根据他的正负来判断y的值是1还是-1
那对于离超平面最近的两个点,我们肯定是从他们的中间穿过把,也就是离超平面最近的两个点一定是互为相反数的关系,所以就有了下面的式子
这里写图片描述
也就是上面的式子把x1和x2改一下就就可以了

接下来最后一个问题:
这里写图片描述

如何从这个式子中求出 a呢? 关于这部分内容,还在后面,我还没学呢? 学完了,会在后面的博客中更新

以上!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值