SVM神话

SVM神话

作者:老师木
链接:www.guzili.com

@余凯_西二旗民工 很多有关SVM的教科书都有misleading: (1)KKT条件,support vectors,quadratic programing都是浮云;(2)kernel本身对理解学习问题有帮助,但实际工程上用处为0;(3)hinge loss只是众多可选项之一,logistic效果一点不差。最近给团队下了死命令-永远不许用RBF这些infinite kernel!
@余凯_西二旗民工 回复:不是的,有理论结果表明sv数目随训练样本数目线性增长,所以,svm并不是真正稀疏。网友问:support vectors到一定数量就不会增长了吧?
@老师木 这个理论结果还和问题的难度有关,即贝叶斯错误率。如果贝叶斯错误率是0,sv就不会线性增长了。

做论文时迷信kernel,margin,认为这些机制和graphical model结合不就无敌了吗?等论文出来的结论是hinge loss对比无优越性。再翻vapnik的 统计学习的本质,原来他老人家也早做过对比试验,没发现svm相对于lr的优越性。看损失函数曲线,真看不出hinge loss比log loss好,只是hinge loss能得到稀疏解,看上去很美。当然理解这些优化理论本身会给人一些享受。

这里讨论了 loss function和nonlinear两个问题,只有从优化难度考虑时对hinge loss和 log loss的比较才有意义,后者可导,解无约束优化的各种梯度方法都可以上,前者要这么做只有用sub gradient。是否用kernel应主要考虑非线性是否有必要,复杂度是否可接受。有的问题非线性当然重要,如果禁用kernel,特征抽取的作用就微妙了,须确保得到的模型能捕捉非线性关系。

说反了,一般情况,维度大且稀疏,核函数基本无用。@微博Koth:另外,数据维度非常大又稀疏的时候,核函数的优势就体现出来了,不可能一棍子打死的,还是看各自的应用场景了。@老师木 我确信我说的,而且我知道很多人不理解先行非线性以及核函数,不提枯燥的理论,不知你是否知晓一个公认的结论:文本分类,线性svm已足够好。//@微博Koth:您还是好好看看核函数解决的什么问题吧。

数据线性可分的可能性随维度升高而变大,这是Thomas cover五六十年代得出的结论。要严格一点,数据线性可分和线性无关等价,张成维度高的线性空间所需的基多,其实就是VC维了。引入kernel就是引入非线性,使变换后的样例线性无关。Rbf核等价于无穷次多项式拟合,相对于有限的样例,没有不能分开的。

转载请注明:《 SVM神话 | 我爱计算机

Leave a Reply

Your email address will not be published. Required fields are marked *