这已经是九年前的问题了,到现在只有20个回答,最近的也是几年前了。九年前恰好是AlexNet诞生的前夜。注意到这些回答似乎没有人提到Random feature map的进展,补充一下。通过使用RF,核方法可以扩展到大规模数据集上。
原理上,SVM使用非线性特征映射将低维特征映射到高维,,并通过kernel trick直接计算高维特征之间的内积,避免显式计算非线性特征映射,然后在高维特征空间中做线性分类。用
表示非线性映射,它对应的核函数是
,使得
。
由于使用数据集的核矩阵(Kernel Matrix)描述样本之间的相似性,矩阵元素的个数随着数据规模增大成平方增长。这样要随着数据规模增大,SVM的计算变得无法处理。
2007年,Ali 等人在 NIPS发表Random Features for Large-Scale Kernel Machines,提出使用随机特征映射的方法处理大规模核函数的方法。其基本思想是,构造一个“随机”映射
直接将数据映射到高维空间,使得在这空间上的内积可以近似等于核函数:
具体内容是依赖于Bochner 定理,可参考原文。经过变形,可得
通过MC采样近似上述特征,就得到随即特征映射的方法:
这样,在R^D空间做线性SVM就能够有效扩展到大规模数据集上,计算和存储对于数据是线性的。
一点扩展:对于非平移不变的kernel,可以通过平移不变的逐渐近似;
对于随机采样,可以通过QMC和正交采样等方式降低随机性和计算复杂度。
PS,这篇文章获得NIPS 2017 Test of time award。