在libsvm中,分类和回归都是基于的同一个SMO算法的Solver类,根据林智仁的文章A Library for Support Vector Machines,最终的二次规划问题可统一表示为:
其中,eps-svr的具体形式是:
统一之后,文献中说道的根据KKT条件选择合适的alpha,只要上式11满足当且仅当一个数字b,和两个非负向量lambda和xi:
这里的KKT条件是针对式11的,之前一直以为是将原始问题转化为拉格朗日函数时,原问题中的约束要遵守的KKT条件,然后就一直迷糊了好多天,后来才想明白应该是式11转化为拉格朗日函数求解极小值时要遵守的KKT条件。原问题的KKT条件是为了确保原问题能够取得极小值,和这个不一样。
如果有大神看见这个博客觉得不对,一定要说出来,先谢谢了。因为感觉也不太对,Platt的最开始提出的SMO算法中,KKT条件是对应的原问题的不等式约束,即从对偶问题接触的alpha是原问题中的拉格朗日乘子,原问题中有不等式约束,因此是原问题的约束条件。这两个约束得到的结果是一致的么?先做个记号
图中的公式来自林智仁的文章:
LIBSVM: A Library for Support Vector Machines 这篇文章随着libsvm更新一直在更新,我找到的最新的是2013年的,地址在:
http://www-ai.cs.uni-dortmund.de:8080/LEHRE/FACHPROJEKT/SS14/Papers/libsvm.pdf
本文探讨了在libsvm中,SMO算法如何使用KKT条件选择合适的alpha。作者指出,KKT条件适用于式11的优化问题而非原始问题的约束。文中提到对原问题和对偶问题中KKT条件的不同理解,并引用了林智仁的文章以澄清概念。作者邀请读者指正可能存在的错误,并对比了Platt最初的SMO算法中KKT条件的应用。
&spm=1001.2101.3001.5002&articleId=60338302&d=1&t=3&u=c4f62b5cfd9b47c89e5fe776bcdc1f66)
1800

被折叠的 条评论
为什么被折叠?



