Machine learning 支持向量机:关于核的基本问题

Machine learning 支持向量机:关于核的基本问题,machine-learning,svm,Machine Learning,Svm,我刚刚开始熟悉SVM,对于SVM和内核,我有以下更具体的问题: (1) 如果我理解正确,决策边界总是线性的。核函数被用于从输入空间映射到特征空间,在特征空间中,以前线性不可分离的数据现在可能是线性可分离的。如果决策边界始终是线性的,那么为什么在一些论文中谈论“非线性决策边界”(例如Ben Hur等人的“支持向量机用户指南”,第3页) (2) 是否有可能知道哪个核应用于哪个数据集,即哪个核可能导致特征空间中的线性可分性 (3) 人们常说,使用内核的一个优点是降低计算复杂度。现在给我们的映射$\ph

我刚刚开始熟悉SVM,对于SVM和内核,我有以下更具体的问题:

(1) 如果我理解正确,决策边界总是线性的。核函数被用于从输入空间映射到特征空间,在特征空间中,以前线性不可分离的数据现在可能是线性可分离的。如果决策边界始终是线性的,那么为什么在一些论文中谈论“非线性决策边界”(例如Ben Hur等人的“支持向量机用户指南”,第3页)

(2) 是否有可能知道哪个核应用于哪个数据集,即哪个核可能导致特征空间中的线性可分性

(3) 人们常说,使用内核的一个优点是降低计算复杂度。现在给我们的映射$\phi$如下:$\phi(x)^T\phi(z)$=$(x_1^2,sqrt{2}x_1*x_2)^T(z_1^2,sqrt{2}z_1*z_2,z_2^2)$表示二维向量x和z,这个映射可以写成核$(x^T*z)^2$。计算优势是否在于必须执行的操作(例如乘法)数量减少,以及使用内核意味着在输入空间中使用点积,而不是在特征空间中使用点积

(4) 内核包含两个输入向量的标量乘法的原因是因为权重向量可以写成输入向量的函数吗

感谢您的帮助……

(应该在交叉验证中,但我还是会回答)

1) 边界总是线性的。边界在核空间中是线性的,但在原始空间中是非线性的

2) 在不知道数据的情况下,rbf内核通常工作得非常好,因为它有一个参数“alpha”,可以在交叉验证循环中进行调整。如果你事先不知道数据,也不知道该用什么,我建议你使用这个

3) 我对这件事的看法不一。与手工映射相比,使用内核可以降低计算复杂度(因为内核技巧,请参见理论)。但与线性支持向量机相比,它并没有降低复杂性(我不知道你暗示了什么)

根据我的记忆,无需参考任何内容,因为边界搜索依赖于学习数据的点积,而不是手工映射所有内容,所以只能计算核矩阵,其余的是线性规划

4) 见(3)

我应该查阅我的大学笔记以获得更详细的答案。如果你需要更多,告诉我

编辑:回答您的评论

(2) 我的意思是了解数据多于了解数据。如果您知道这两个类之间的间隔类似于一个圆,那么您就知道您的映射类似于a1^2等

事实上,rbf核可以通过调整参数来表示类间分离的许多情况。(这一点我可能错了,但我总是使用rbf内核使事情正常进行)

(3) 所以SVM的表达式类似于:

y(x) = f(x_i'.x_j)
正如你所知,你有点积x_i'.x_j,你可以用非线性函数φ(o)做一个映射。你有内核:K(o_1,o_2)=phi'(o_1)。phi(o_2),你有:

y(x) = f(K(x_i, x_j)) 
因此,如果你使用高斯核K(o_1,o_2)=exp(-(o_1-o_2)-(o_1-o_2)/sigma),你不必计算φ(o),也不必计算φ(x_i)和φ(x_j)之间的点积(这就是我“手工”的意思),因为点积隐含在核的表达式中。因此,成本较低。你是对的


(4) 由y(x)=的表达式导出。。。事实上,当你使用点积时,它是用来衡量两个物体(x_i和x_i)之间的相似性。您可以将内核与使用点积(如PCA,…)的任何方法一起使用

您好,非常感谢,我不确定是在这里还是在这里。(1) 关于第(2)点,现在已经很清楚了:如果我们知道数据,我们如何推断出最好使用哪个内核?关于(3),我已经读过关于内核技巧的文章,但仍然有如上所述的问题-不确定“手动”是什么意思,我理解了问题的区别,如果scalarproduct必须在输入空间(内核)或特征空间(非线性函数方法)中计算一次,而后者的成本更高。我错了吗?而且我现在还不确定(4):-)