n n n维空间中的超平面由如下方程确定: w T x + b = 0 w^Tx+b=0 wTx+b=0
其中,
w
w
w和
x
x
x都是
n
n
n维列向量,
x
x
x为平面上的点,
w
w
w为平面上的法向量,决定了超平面的方向,
b
b
b是一个实数,代表超平面到原点的距离。且
x
=
(
x
1
,
x
2
,
x
3
,
.
.
.
,
x
d
)
T
,
w
=
(
w
1
,
w
2
,
w
3
,
.
.
.
,
w
d
)
T
x=(x_1,x_2,x_3,...,x_d)^T,w=(w_1,w_2,w_3,...,w_d)^T
x=(x1,x2,x3,...,xd)T,w=(w1,w2,w3,...,wd)T
那么,
w
w
w为什么是法向量呢?
b
b
b为什么表示平面到原点的距离呢?
下面给出详细解释:
我们对“平面”概念的理解,一般是定义在三维空间中的,即
A
x
+
B
y
+
C
z
+
D
=
0
Ax+By+Cz+D=0
Ax+By+Cz+D=0
这个平面由两个性质定义:
1、方程是线性的,是由空间点的各分量的线性组合。2、方程数量是
1
1
1。这个平面是建立在“三维”上的。如果我们撇开“维度”这个限制,那么就有了超平面的定义。实际上,超平面是纯粹的数学概念,不是物理概念,它是平面中的直线、空间中的平面的推广,只有当维度大于
3
3
3,才称为超平面。它的本质是自由度比空间维度小
1
1
1。自由度的概念可以简单的理解为至少要给定多少个分量的值才能确定一个点。例如,三维空间里的“超平面”只要给定了
(
x
,
y
,
z
)
(x,y,z)
(x,y,z)中任意两个分量,剩下的一个的值就确定了。先确定值的两个分量是自由的, 因为它们想取什么值就能取什么值;剩下的那个是“不自由的”,因为它的值已经由另外两确定了。二维空间里的“超平面”为一条直线。一维空间里“超平面”为数轴上的一个点。
百度百科上对超平面的数学定义是这样的:
超平面
H
H
H是从
n
n
n维空间到
n
−
1
n-1
n−1维空间的一个映射子空间,它由一个
n
n
n维向量和一个实数定义。因为是子空间,所以超平面一定过原点。
通常, R 2 R^2 R2(二维空间)中的点集 i = ( x , y ) i=(x,y) i=(x,y)满足等式(点集 i i i实际为一条直线): a x + 1 b y + c = 0 ( 1 ) ax+\frac{1}{b}y+c=0(1) ax+b1y+c=0(1)
这里使用
1
b
\frac{1}{b}
b1是为了后续计算好表示,其中,
a
a
a,
b
b
b,
c
c
c均为标量,
a
a
a,
1
b
\frac{1}{b}
b1至少有一个不为
0
0
0,我们假设
b
b
b不为
0
0
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)
这条直线是什么?实际上就是过
(
0
,
−
c
b
)
(0,-cb)
(0,−cb)点,方向为
(
1
,
−
a
b
)
(1,-ab)
(1,−ab)的直线
L
L
L。
进一步,我们令向量
n
=
(
a
,
1
b
)
n=(a,\frac{1}{b})
n=(a,b1),则
(
1
)
(1)
(1)可以表示成
n
∗
i
+
c
=
0
(
2
)
n*i+c=0(2)
n∗i+c=0(2)
神奇的一刻来临了。假设在直线
L
L
L上取一点
p
0
(
x
0
,
y
0
)
p_0(x_0,y_0)
p0(x0,y0),显然,
n
∗
p
0
+
c
=
0
n*p_0+c=0
n∗p0+c=0,那么
c
=
−
n
∗
p
0
c=-n*p0
c=−n∗p0。
更进一步,将
(
2
)
(2)
(2)改写,可得
n
∗
i
−
n
∗
p
0
=
0
n*i-n*p_0=0
n∗i−n∗p0=0,即
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
L
L上,所以,
n
n
n垂直于直线
L
L
L,即
n
n
n为直线
L
L
L的法向量。更进一步,我们可以得到,那些与
p
0
p_0
p0的差向量与
n
n
n向量垂直的点,就是点集
i
(
x
,
y
)
i(x,y)
i(x,y)。
进一步解释什么是超平面:
给定向量空间
R
n
R^n
Rn中的一个点
P
P
P和一个非零向量
n
n
n,满足
n
∗
(
i
−
p
)
=
0
n*(i-p)=0
n∗(i−p)=0
则称点集 i i i为通过点 p p p的超平面,向量 n n n为通过超平面的法向量。按照这个定义,虽然当维度大于 3 3 3才可以成为超平面,但是你仍然可以认为,一条直线是 R 2 R^2 R2空间内的“超平面”,一个平面是 R 3 R^3 R3空间内的超平面。 R n R^n Rn空间的超平面是 R n R^n Rn空间内的一个 n − 1 n-1 n−1维的仿射子空间。
点到超平面的距离:
样本空间中的任意一点
x
x
x,到超平面
(
w
,
b
)
(w,b)
(w,b)的距离,可以表示为
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
\frac{|w^Tx+b|}{||w||}
∣∣w∣∣∣wTx+b∣
后来有同学评论说,点到超平面上的点为什么这么计算呢?我在这里再具体说一下。推导过程并不繁琐(这里以三维空间为例)。
对于平面
A
A
A,假设
x
′
x'
x′为平面上任意一点,那么,显然满足:
w
T
x
′
+
b
=
0
w^Tx'+b=0
wTx′+b=0
对于空间上任意一点
x
x
x,到平面
A
A
A的距离
d
d
d,等于
x
x
x在超平面的法向量上的投影长度。而计算投影长度,根据公式
∣
∣
a
∣
∗
c
o
s
θ
∣
=
∣
b
∗
a
∣
∣
b
∣
||a|*cos\theta|=\frac{|b*a|}{|b|}
∣∣a∣∗cosθ∣=∣b∣∣b∗a∣,这里的
a
a
a表示
x
x
′
xx'
xx′,
b
b
b表示
w
T
w^T
wT,
∣
b
∣
|b|
∣b∣表示
w
w
w的模长。所以,距离
d
d
d可以表示为:
d
=
∣
w
T
(
x
−
x
′
)
∣
∣
∣
w
∣
∣
d=\frac{|w^T(x-x')|}{||w||}
d=∣∣w∣∣∣wT(x−x′)∣
又因为:
−
w
T
x
′
=
b
-w^Tx'=b
−wTx′=b,所以,距离
d
d
d为:
d
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
d=\frac{|w^Tx+b|}{||w||}
d=∣∣w∣∣∣wTx+b∣
判断超平面的正反:
一个超平面可以将它所在的空间分为两半,它的法向量指向的那一半是它的正面,另一半则是它的反面。如果利用数学来判断的话,需要利用到法向量
w
w
w。
x
在
A
的
{
正
面
,
w
T
x
+
b
>
0
平
面
上
,
w
T
x
+
b
=
0
反
面
,
w
T
x
+
b
<
0
x在A的\begin{cases}正面&,w^Tx+b>0\\平面上&,w^Tx+b=0\\反面&,w^Tx+b<0\end{cases}
x在A的⎩⎪⎨⎪⎧正面平面上反面,wTx+b>0,wTx+b=0,wTx+b<0
若将距离公式中分子的绝对值去掉,让它可以为正为负。那么,它的值正得越大,代表点在平面的正向且与平面的距离越远。反之,它的值负得越大,代表点在平面的反向且与平面的距离越远。
原文:https://blog.csdn.net/denghecsdn/article/details/77313758