您的位置:首页 > 其它

note:SMO算法存在致命缺陷

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

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

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

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

一个更神奇的现象是,稍微简化代码以后(去掉垂死挣扎那块),然后把C调大(10000左右),优化效果惊人的好。难道说通过重新调整C可以越过线性优化的界限?!这个问题目前也没人研究。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: