我成功地实现了一个使用RBF核的核感知器分类器。我知道内核技巧将特征映射到更高的维度,这样就可以构造一个线性超平面来分离点。例如,如果您有特性(x1,x2),并将其映射到三维特征空间,您可能会得到:K(x1,x2) = (x1^2, sqrt(x1)*x2, x2^2)。
如果将其插入到感知器决策函数w'x+b = 0中,您将得到:w1'x1^2 + w2'sqrt(x1)*x2 + w3'x2^2,它为您提供了一个循环决策边界。
虽然内核技巧本身是非常直观的,我不能理解线性代数方面的这一点。有人能帮助我理解我们如何能够映射所有这些附加特性,而无需使用内部产品来显式地指定它们?
谢谢!
发布于 2014-02-01 02:04:26
很简单。
给我一些x和y值的(x+y)^10的数值结果。
你宁愿做什么,“欺骗”和和x+y,然后把这个值到第10‘次方,或展开确切的结果写出来。
x^10+10 x^9 y+45 x^8 y^2+120 x^7 y^3+210 x^6 y^4+252 x^5 y^5+210 x^4 y^6+120 x^3 y^7+45 x^2 y^8+10 x y^9+y^10然后计算每个项,然后把它们加在一起?显然,我们可以评估10次多项式之间的点积,而不需要显式地形成它们。
有效核是点积,在这里我们可以“欺骗”并计算两点之间的数值结果,而不必形成它们的显式特征值。有许多这样的可能的内核,虽然只有少数已经被大量用于论文/实践。
发布于 2014-02-01 00:43:50
我不确定我是否在回答你的问题,但正如我所记得的,“诀窍”是你没有明确计算内部产品。感知器计算出一条将星系团分开的直线。要获得曲线甚至圆圈,您可以改变包含集群的空间,而不是改变感知器。这是通过使用通常称为phi的转换来完成的,该转换将坐标从一个空间转换到另一个空间。然后,将感知器算法应用到新的空间中,生成一条直线,但当该直线被转换回原来的空间时,它可以弯曲。
诀窍是感知器只需要知道它试图分离的星系团点的内积。这意味着我们只需要计算转换点的内积。这就是内核所做的K(x,y) = 其中<。、。>是新空间中的内积。这意味着不需要对新空间和新空间进行所有转换,我们甚至不需要显式地知道转换phi()是什么。所需要的是,K在某个空间定义了一个内积,并希望这个内积和空间对于分离我们的星系团是有用的。
我认为有一个定理说,如果核所表示的空间比原来的空间有更高的维数,它很可能会更好地分离星系团。
发布于 2014-02-01 03:35:54
真的没什么大不了的
较高空间中的权重为w = sum_i{a_i^t * Phi(x_i)}。
和高空间Phi(x)中的输入向量
因此在较高空间中的线性分类是
w^t * input + c > 0
所以如果你把这些放在一起
sum_i{a_i * Phi(x_i)} * Phi(x) + c = sum_i{a_i * Phi(x_i)^t * Phi(x)} + c > 0
最后一个点积的计算复杂度与维数成线性关系(通常难以处理,或者不需要)。
我们通过转到内核“点积的神奇答案”来解决这个问题。
K(x_i, x) = Phi(x_i)^t * Phi(x)
这给
sum_i{a_i * K(x_i, x)} + c > 0
https://stackoverflow.com/questions/21492195
复制相似问题