转载出处:超平面是什么?——理解超平面(SVM开篇之超平面详解)
n维空间的超平面由下面的方程确定:
w T x + b = 0 w^Tx + b = 0 wTx+b=0
其中, w w w和 x x x都是n维列向量, x x x为平面上的点, w T w^T wT为平面上的法向量决定了超平面的方向, b b b是一个实数,代表超平面到原点的距离。且
x = ( x 1 , x 2 , . . . , x d ) T x = (x_1, x_2, ..., x_d)^T x=(x1,x2,...,xd)T
w = ( w 1 , w 2 , . . . , w d ) T w = (w_1, w_2, ..., w_d)^T w=(w1,w2,...,wd)T
那么 w T w^T wT为什么是法向量, b b b为什么是表示平面到原点的距离呢?
我们对“平面”的理解,一般是在三维空间中的,即
A x + B y + C z + D = 0 Ax + By + Cz + D = 0 Ax+By+Cz+D=0
这个平面有两个定义:
这个平面是建立在“三维”上的。如果我们撇开“维度”这个限制,那么就有了超平面的定义。
超平面是纯粹的数学概念,不是物理概念,它是平面中的直线、空间中的平面的推广,只有当维度大于3,才称为“超”平面。
它的本质是自由度比空间维度小 1
何为自由度?
自由度的概念可以简单的理解为至少要给定多少个分量的值才能确定一个点. 例如, 三维空间里的(超)平面只要给定了(x,y,z)中任意两个分量, 剩下的一个的值就确定了. 先确定值的两个分量是自由的, 因为它们想取什么值就能取什么值;剩下的那个是"不自由的", 因为它的值已经由另外两确定了. 二维空间里的超平面为一条直线. 一维空间里超平面为数轴上的一个点。
通常,R2(二维空间)中的点集 i = ( x , y ) i = (x, y) i=(x,y) 满足等式 (点集 i i i 实际为一条直线):
a x + 1 / b y + c = 0 ( 1 ) ax + 1/by + c = 0(1) ax+1/by+c=0(1)
(这里使用1/b 是为了后续计算好表示)
其中, a , b , c a,b,c a,b,c均为标量, a , 1 / b a,1/b a,1/b至少有一个不为0.我们假设 b 不为0。那么
y = − a b x − c b y = -abx - cb y=−abx−cb
此时,使用换元法,令 t = x t = x t=x,(显然, t t t 为标量) 则点集 i ( x , y ) i (x,y) i(x,y) 可以表示成
i ( x , y ) = ( t , − a b t − c b ) = t ( 1 , − a b ) + ( 0 , − c b ) i (x,y) = ( t, -abt - cb) = t (1, -ab) + (0, -cb) i(x,y)=(t,−abt−cb)=t(1,−ab)+(0,−cb)
之前说点集 i i i是一条直线,那么这条直线是什么?实际上就是过 ( 0 , − c b ) (0, -cb) (0,−cb)点,方向为 ( 1 , − a b ) (1, -ab) (1,−ab) 的直线 L。
更进一步,我们令向量 n = ( a , 1 / b ) n = (a, 1/b) n=(a,1/b)
则(1)可以表示为 n ∗ i + c = 0 n*i + c = 0 n∗i+c=0
此时,我们取在直线L上的一点,即子集 i i i 中的一个元素 p 0 ( x 0 , y 0 ) p_0(x_0,y_0) p0(x0,y0), 可以得到
n ∗ p 0 + c = 0 = > c = − n ∗ p 0 n* p_0 + c = 0 => c = -n*p_0 n∗p0+c=0=>c=−n∗p0
则(2)可以改写为 n ( i − p 0 ) = 0 n(i - p_0) = 0 n(i−p0)=0
因为 n n n 和 ( i − p 0 ) (i - p_0 ) (i−p0) 均是向量, ( i − p 0 ) (i - p_0) (i−p0) 在直线 L 上, 所以, n n n 垂直直线L ,即 n n n为直线L的法向量
给定向量空间 Rn 中的一个点 P 和一个非零向量 n n n ,满足
n ∗ ( i − p ) = 0 n * (i - p) = 0 n∗(i−p)=0
则称点集 i 为通过点p 的超平面,向量 n 为通过超平面的法向量
样本空间中的任意一点 x,到超平面 ( w , b ) (w,b) (w,b) 的距离,可以表示为
∣ w T + b ∣ ∣ ∣ w ∣ ∣ \frac{|w_T + b|}{|| w ||} ∣∣w∣∣∣wT+b∣
证明也很简单:
对于超平面A w T x + b = 0 w^Tx + b = 0 wTx+b=0 假设 x‘ 为超平面上任意一点,那么,显然满足:
w T x ′ + b = 0 w^Tx' + b = 0 wTx′+b=0
对于空间上任意一点 x, 到平面 A 的距离 d,等于 x 到超平面的法向量长度,也就是 向量 xx’ 在垂直方向上(即法向量)上的投影。而计算投影,将 xx’ 乘以法向量 w T w^T wT 即可。并且,我们不光要投影,还要计算单位,即使用单位为 1 的投影。也就是在分母除以 ∣ ∣ w ∣ ∣ || w || ∣∣w∣∣。所以,距离 d 可以表示为:
d = ∣ w T ∣ ∣ w ∣ ∣ ( x − x ′ ) ∣ d = | \frac{w^T}{|| w ||}(x - x') | d=∣∣∣w∣∣wT(x−x′)∣
又因为
w T x ′ = − b w^Tx' = -b wTx′=−b
所以距离为
d = ∣ w T ( x − x ′ ) ∣ ∣ ∣ w ∣ ∣ = w T + b ∣ ∣ w ∣ ∣ d = \frac{|w^T(x - x')|}{|| w ||} = \frac{w^T + b}{||w||} d=∣∣w∣∣∣wT(x−x′)∣=∣∣w∣∣wT+b
一个超平面可以将它所在的空间分为两半, 它的法向量指向的那一半对应的一面是它的正面, 另一面则是它的反面。如果利用数学来判断的话,需要利用到法向量 w T w^T wT。