超平面

参考: 空间解析几何

在 n 维空间中,满足方程
$$a_1 x_1 + a_2 x_2 + … + a_n x_n = b $$
的向量 $(x_1, x_2,…,x_n)$ 构成的空间称为 超平面。 例如,立体空间中它表示平面,平面中它表示直线。表面上有 n 个自由维度,实际上当 $(n-1)$ 个维度值确定时,剩下的一个维度也确定了。

参数的取值范围与 Perceptron

单层感知器(Perceptron)利用超平面分类数据。输入训练数据为向量 $\mathbf{x} = (x_1, x_2,…, x_n)$, 其目标是训练出权重向量 $\mathbf{w} = (w_1, w_2,…, w_n)$ 与偏值 $b$, 使得所有满足 $\mathbf{w}\cdot \mathbf{x}\ge b$ 的数据同为一类,而满足 $\mathbf{w}\cdot \mathbf{x}< b$ 的数据同为另一类。形象地理解就是,给定 n 维空间的许多点,分为两种类型,要求找到一个超平面,将这两种类型的点分开。再形象点,在二维空间中,有许多红点和蓝点,Perceptron 需要划一条直线将红点蓝点分开。(当然,Perceptron 往往不能对数据完全正确分类,所以有后续的处理。这里只是理想情况)

值得注意的是,偏值 $b$ 容易被误认为无需训练,直接设为定值就行(比如零)。实际上,将权重向量的任何一个元素及偏值 $b$ 固定为常量,都会导致( $\mathbf{w}, b$ )所能表示的超平面减少,从而导致分类的能力下降。可以参考平面下直线的表达式: $ax+by=c$ ,如果固定 $c=0$, 该直线必定过原点,不能表示许多不过原点的直线。

点到超平面距离与 SVM

支持向量机(SVM)也是利用超平面分类向量的,它关注的是点与超平面的距离。

已知超平面的法向量 $\mathbf{w}=(w_1,w_2,…,w_n)$ 和数 $b$, 超平面表示为:

$$ \mathbf{w}\cdot\mathbf{x} + b=0 $$

$\mathbf{x}= (x_1, x_2,…, x_n)$ 表示超平面上的任意一点。设 $\mathbf{y}_0= (y_1, y_2,…, y_n)$ 为超平面上一点,则有 $\mathbf{w}\cdot\mathbf{y}_0 = -b$。可得点 $\mathbf{s}= (s_1, s_2,…, s_n)$ 与超平面的距离 $d$:

$$ d=\left| \frac{\mathbf{w}\cdot(\mathbf{s}_0 - \mathbf{y}_0)}{||\mathbf{w}||} \right|=\left| \frac{\mathbf{w}\cdot\mathbf{s}_0 + b}{||\mathbf{w}||} \right| $$