超平面和平面有什么区别?为什么超平面用eqn表示w ^ T + b = 0?

时间:2014-06-26 14:13:52

标签: machine-learning svm computational-geometry

我需要一个关于SVM的简短概念。所以有人帮助我理解超平面的表示吗?和内核的想法?

1 个答案:

答案 0 :(得分:2)

虽然@JeffHeaton的答案的第一部分很好,但其余部分没有回答OP问题,所以有一些进一步的细节:

为什么超平面方程w^Tx+b=0?首先,您必须了解w^Tx=<w,x>x的作用。它基本上是x(从(0,0)开始的向量)w(这是一个从(0,0)开始的向量),因此,你可以得到一个正数( xw之间的角度小于90度),等于0(它们是垂直的)或负的(角度大于90度)。所以你可以看到它等于0如果这些两个对象是垂直的,所以剩下的唯一东西是距离原点(0,0)的距离,这是通过添加常量b来完成的。从几何角度来看,w被称为“正常的超平面“,简单地说 - 一个垂直于超平面的向量。所以,如果你现在计算<w,x>并得到0,x垂直于w,它垂直于超平面,所以x位于超平面中。 / p>

内核

kernel,只不过是上一个公式中编写的标量乘积<w,x>。编写K(x,y)的唯一原因是,它假定您将某些“魔法”映射到某个不同的空间phi。换句话说,如果你有一些函数phi以某种方式重新排列你的积分,那么它们就更容易分类,而不是你可以在phi(X), L而不是X,L训练线性svm(其中L是正确的标签)。问题是,很难找到好的phi。在实践中,我们只选择一个随机或随意的phi,它只是将点映射到更高的维度。这是一个已知的数学事实,在更高维度上,点更容易分离。特别是,如果您有N分x_1, ..., x_N,则可以随时选择phi phi(x_i)=[0 0 0 ... 1 ... 0] 1i位于phi(X)位置。不幸的是,这样的K(x,y)=<phi(x), phi(y)>计算成本很高,因此我们使用内核函数来定义phi。因此,我们不必知道明确的phi(x)值,而是需要通过phi 了解点之间的标量积。这正是内核所做的,它们在某些不同的空间中表示标量产品。特别是,RBF内核将每个点映射到... FUNCTION(实际上是高斯分布)。因此{{1}}具有无限维度且无法有效计算,但两个函数之间的标量积只是它们乘法的一个整体,这是非常容易的对象。