从SVM诞生之日起,关于它的批评就从来没有停过。到现在也仍然如此。
这个东东实在是有太多的缺陷:
结构风险最小,可以从理论上保证以一定概率得到最小实际风险,但是
贯彻到实践中,由于不同的核函数和参数会显著影响实际效果,但目前
对它们的选择实际上仍然是启发式的,结果,我们得到的在很大程度上
仍然只能说是sub-optimal;
support vector的数目,虽然从理论上说,它的数目和最终效果没有直
接的联系,但确实,这个数是很惊人的,否则就不能保证效果。直观地
看,SVM的分类和回归差不多,support vector实际上是用来拟合一条
曲线的,为了保证精度,它们的数目自然少不了;
那个恶心之极的最优化问题,这个就不用说了,SVM用在海量数据上,
不用太多,10000个数据,跑个几天是一点问题没有,这个极大的限制
了它的成就。CART(Classify And Regression Tree)的发明者Friedman
拿到了数据挖掘领域的最高奖,它的理论未必比SVM更为高深和巧妙,
就是两个字:实用。我用过一个CART的商用软件,100000个数据,5分钟
搞定,效果也差不到哪里去。SVM要是能解决这个问题,它所代表的成就
会比现在高得多;
最后是判决。SVM的判决输出和概率没有直接关系,这也在某些程度上
限制了它的应用。
窃以为,对SVM的研究从纵向可以分为三部分:基础理论研究,应用
理论研究和应用研究。朝上面四个问题或其它理论问题努力的,属于基础
理论研究,没有深厚的数学底蕴,从这个方向入手,实在很难。应用理论
研究,主要是把成熟的理论用到一个大方向上,比如用SVM做无监督学习和
强化学习等;应用研究就是用SVM来解决具体的问题,比如人脸识别,文本
分类,然后甲乙丙丁比较一下,哪个更好。现在SVM的发展,在基础理论方
面似乎已经碰到了瓶颈。
尽管SVM有很大缺陷,但是,无可置疑,它为我们打开了一扇窗户,
这扇窗就是统计学习理论。它实际上代表了一种趋势,统计方法将在人工
智能领域(我认为数据挖掘、模式识别当属人工智能)大行其道。实际上,
SVM本身的作用确实有限,但是它带来了很多新的方法,新的思路。
关于support vector的问题,有一些解决方案,我看到的比较经典的
例子有Yang提出的先用一个简单的判决从样本中寻找guard vector,
然后再从guard vector里寻找support vector的方法,他的实验表明速度
可以提高数十倍(400个样本),这实际上也是一条新思路:先把样本集
分解,在较小的子集里应用那个臭名昭著的最优化,可以降低时间消耗;
举这个例子,是觉得SVM的基础理论研究,仍然有工作可做。但是,容易做
的,老早就被人做光了。