note:SMO算法存在致命缺陷

由于这个算法诞生于微软实验室,发明这个算法的人计算机背景必定多余数学背景,导致最后这个算法有些处理实在是过于“工程”的,缺乏数学依据。


此算法的基本思想是用两个线性优化来取代二次优化,但是从数学的角度来看,这是不可能的——线性从来就不能完全取代非线性,否则那些历史上那些伟大的数学家或者前苏联数学家早就发现了。为什么Vapnic当时没有想到这个方法?不,他作为数学家一定是想过的,但是数学是严谨的,他不希望自己的理论缺乏数学依据。这就是为什么他想方设法的去优化二次优化,而不是用线性优化取而代之。


SMO伪码中有一段写的非常丑,似乎就是在优化的边缘垂死挣扎,但是最后还是不得已放弃。没错,我说的就是H=L的情况,这就是线性与二次的分界线,线性无法逾越这一层,无论如何,这是由数学真理所决定的。所以,说到底,SMO只是二次优化的一个近似,既然是近似,那么就我们就应当从数学的层面来分析误差的传播,很可惜,目前为止没人这么做过。


然而,理论上,这种误差是确实存在的。一个事实就是C罚函数系数的偏移,根据我的试验,这个C值偏移的非常严重,而且是非线性的。比如,一个简单的6点输入,C居然偏移到了300多!而正常的SMO的C应该只有1左右。


一个更神奇的现象是,稍微简化代码以后(去掉垂死挣扎那块),然后把C调大(10000左右),优化效果惊人的好。难道说通过重新调整C可以越过线性优化的界限?!这个问题目前也没人研究。。。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值