我正在尝试不同类型的非线性内核,并试图解释学习模型,这引出了以下问题:是否有一种通用的方法来获得非线性支持向量机的原始权重类似线性SVM的可能性如何(见related question)?
说,您有三个功能a
,b
,c
以及生成的所有子集/多项式内核模型。有没有办法提取这些子集的原始权重,例如a * b
和a^2
?
我尝试扩展线性内核的方法,为以下示例生成输出:
a, b, c
[0, 0, 0]
[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
如果我对all-subsets内核使用相同的方法,我可以生成更多样本:
a, b, c
[1, 1, 0]
[1, 0, 1]
...
接下来,为了计算a * b
的原始权重,我将预测分析如下:[1, 1, 0] - ([1, 0, 0] + [0, 1, 0] + [0, 0, 0])
。
我看到的问题是它需要数量过多的样本,不会解决a^2
这样的子集,也不会推广到其他非线性内核。
答案 0 :(得分:5)
没有。我并不认为自己是最终所有专家,但我已经对SVM进行了大量的阅读和研究,我不认为你所说的是可能的。当然,在二次多项式核的情况下,如果属性的数量非常小,则可以枚举由内核引起的特征空间。对于高阶多项式内核和更大数量的属性,这很快变得难以处理。
非线性SVM的强大之处在于它能够在不必在该空间中进行计算的情况下诱导特征空间,并且事实上实际上并不知道该特征空间是什么。有些内核甚至可以引入无限维的特征空间。
如果你回顾一下你的问题,你可以看到部分问题 - 你正在寻找原始权重。但是,内核是以双形式引入的,其中数据显示为点积。在数学上反转这个过程将涉及将核函数分开 - 知道从输入空间到特征空间的映射函数。内核函数非常强大,因为我们不需要知道这种映射。当然,它可以用于线性内核,因为没有使用映射函数。
答案 1 :(得分:1)
提取显式特征的权重通常在计算上不可行,但是一个不错的下一个最好的东西是前映像:生成一个样本z,使其特征对应于你的权重'之后。
这可以正式地描述为发现z使得phi(z)= w,其中权重被隐式定义为训练样本的组合,如通常的核心技巧:w = sum_i(alpha_i * phi(x_i) )。 phi是特征图。
一般来说,不存在精确的前置图像,大多数方法都会找到最小化平方误差的前置图像。
对高斯核预图像的经典高斯 - 牛顿迭代的良好描述,以及基于KPCA的另一种更通用的方法,是:
James T. Kwok,Ivor W. Tsang,“核心方法中的前映像问题”,ICML 2003
直接链接:http://machinelearning.wustl.edu/mlpapers/paper_files/icml2003_KwokT03a.pdf