昨天有人问到一点Kernel trick
的理解问题,而我正好机缘巧合发现了一个很不错的介绍reproducing kernel Hilbert space
的短文。于是决定上传过来,以及一些对于SVM
理解比较重要的资料。
Support Vector Machine
(SVM
)很重要的一个优势就在于它可以使用kernel
进行运算,从而大大提高了我们可以使用feature dimension
。这是现在machine learning
和统计里十分常见的一个性质,被称为kernel trick.
这些都是基于reproducing kernel Hilbert space
(RKHS
)来建立起来的。但是大多数计算机或其他应用领域里介绍RKHS
的东西都在很大程度上局限于SVM
的应用,而忽略其更广义的意义(也就是说,SVM
只是无数可以使用kernel
方法中的一种)。但是数学上介绍RKHS
的资料往往过于强调其理论本身,并没有很好的和实际建立联系,另外其本身理论深度较高,不易于非数学人士的学习。下面这篇From Zero to Reproducing
Kernel Hilbert Spaces in Twelve Pages or Less是很难得的简单阐述RKHS整体框架的综述。它避开了过多的泛函概念和数学推导,也很好的做到了于kernel实际应用的联系。不只对于那些svm的粉丝,对于希望对统计方法在更高维空间和更复杂数据中的使用的人都会十分有帮助。
另外对于SVM本身的理解(比如其为什么在很多时候十分有效,其方法的实质),在第二篇文章中有比较细致阐释。相信可以解答很多人对于svm的迷惑,当然也可能减弱很多对于svm的痴迷。这是篇discussion,所以也没是很艰涩难懂,只要有必要的对于SVM的了解,已经知道logistic等方法的人就可以很快通读。文章中的大部分内容都在Hastie, Tibshirani & Friedman的书里有所提及,这也是本十分经典的作品。作者的主页上提供免费的电子版http://www.stanford.edu/~hastie/pub.htm。
最后一点个人看法,SVM
是和大家所熟知的统计方法十分类似的,和logistic
并没有本质的不同。它对于two-group classification
是一种十分有效的方法。但是对于multipleclasses
,虽然其同样可以处理,但是方法上并没有logistic with regularization
过度的自然,而且算法也低效些。最重要的是,SVM
本身是直接对于分类进行估计,不能提供对于后验概率的解释。虽然很多人也试图通过于margin
的距离,建立概率的概念,比如recalibrate。但是这些从根本上说,我们只能定性分析,无法定量化的度量,当然更无法做inference
。当然,SVM
从计算上优于logistic with regularization
,因为support vector
的个数通常少于数据点。我知道有众多的svm
控,不过我没有任何贬低svm
的意思,只是希望提供一些个人认为客观的评价,大家不同意也不要喷我。
希望对大家有所帮助。