线性判别
文章目录
1 线性判别与非线性判别
我们知道,要实现模式识别,就是要在对一类事物特征的认知基础上,找到一个有效的分类决策规则,能够对新的样本正确地分类。
例如已知的样本集分为两类,那么,如果能在特征空间中找到这么一条类别之间的界限,就可以通过判断待识别的样本位于界限的哪一侧,来确定样本属于哪一类。这条界限,就可称为“分类决策边界”。
显然,如果分类决策边界可以用方程 G i ( x ) = 0 G_i(x)=0 Gi(x)=0 来表示,那么当一个待识别样本 x 0 x_0 x0代入 G i ( x ) G_i(x) Gi(x)中时,
- 如果 G i ( x 0 ) > 0 G_i(x_0)>0 Gi(x0)>0,则可知 x 0 x_0 x0 位于分类决策边界的正侧,可给出分类结果 x 0 x_0 x0 属于 w 1 w_1 w1类;
- 如果 G i ( x 0 ) < 0 G_i(x_0)<0 Gi(x0)<0,则可知 x 0 x_0 x0位于分类决策边界的负侧,可给出分类结果 x 0 x_0 x0属于 w 2 w_2 w2类;
- 如果 G i ( x 0 ) = 0 G_i(x_0)=0 Gi(x0)=0,那么说明 x 0 x_0 x0正好位于分类决策边界上,我们无法给出有效的分类决策结果。
这样,通过找到 G i ( x ) G_i(x) Gi(x),我们就可以得到以上那么一个确定的分类决策规则,这个 G i ( x ) G_i(x) Gi(x),就称为“判别函数”。
如果判别函数是一个线性函数,则称为线性判别函数。
线性判别函数及其对应的分类决策规则,就构成了一个“线性分类器”(图1)。
图1:
判别函数的形式可以是线性的(Linear)或非线性(Non-linear)的。例如图2就显示了一个非线性判别函数,当 G ( x ) > 0 G(x)>0 G(x)>0时,可判别模式 x ∈ ω 1 x∈ω_1 x∈ω1;当 G ( x ) < 0 G(x)<0 G(x)<0时,可判别 x ∈ ω 2 x∈ω_2 x∈ω2。
图2:
非线性判别函数的处理比较复杂。如果决策区域边界可以用线性方程来表达,则决策区域可以用超平面(Hyperplane)来划分,无论在分类器的学习还是分类决策时都比较方便。
如果特征空间是 1 维的,线性分类器的分类决策边界就是一个点;如果特征空间是 2 维的,分类决策边界就像图中一样,是一条直线;如果特征空间是 3 维的,分类决策边界时一个平面;如果特征空间维度比三维更高呢?我们难以想象
出分类决策边界的空间现状,但是从数学上可以知道,它是一个超平面。
那么,是不是任何一个模式识别问题,都可以找到线性分类决策边界呢?或者说,给定一个样本集,它是线性可分的吗?这就涉及到另一个问题:样本集的线性可分性。
2 样本集的线性可分性
如果有一个样本集,它的各个类别样本的分布区域相交,那么肯定是线性不可分的;如果各个类别样本的分布区域互不相交,并且都是凸集,那么它一定是线性可分的,如图3所示。
图3:
如果虽然各个类别样本的分布区域不相交,但是有的区域是凹集,我们还无法直接判定样本集是否线性可分,而是需要找出凹集区域最小的凸集包络线,称为“凸包”(图4),如果各个类别样本分布区域的凸包都不相交,样本集才是线性可分的,否则就是线性不可分的。
图4:
除了凸包相交的情形,如果同一类别样本的分布区域是由不连通的子区域组成的,也会带来线性不可分的问题,这种情形的典型案例就是异或问题。
如图5所示,如果一、三象限的样本同属一类,二、四象限的样本同属另一类,显然就无法用一条线性决策边界来分开两个类,也就是无法使用线性分类器来完成针对这种异或问题的模式识别任务。
图5:
但是,如果用一个非线性的判别函数,异或问题就很容易解决了。例如: G ( x ) = x 1 x 2 G(x)=x_1x_2 G(x)=x1x2,当 G ( x ) > 0 G(x)>0 G(x)>0 时,样本属于 w 1 w_1 w1 类,当 G ( x ) < 0 G(x)<0 G(x)<0 时,样本属于 w 2 w_2 w2类。
我们知道,非线性判别函数的形式比线性判别函数复杂,处理起来也没有线性判别函数方便。那么,有没有什么办法,能够将非线性判别问题转化成线性判别问题呢?
3 非线性判别问题转化成线性判别问题
我们首先来看一个例子。
图6:
有一个 1 维特征空间中的模式识别问题,两类样本分布情况如图6所示。显然,这个问题不能直接用线性判别来解决。但是,可以用一个非线性判别函数来建立分类决策规则,即 G ( x ) = ( x − a ) ( x − b ) G(x)=(x-a)(x-b) G(x)=(x−a)(x−b),当 G ( x ) > 0 G(x)>0 G(x)>0 时, x x x 属于 w 1 w_1 w1 类, G ( x ) < 0 G(x)<0 G(x)<0 时, x x x 属于 w 2 w_2 w2类.
如图7所示,如果我们将样本集从 1 维空间映射到 2 维空间,即取 y 1 = x 2 y_1=x^2 y1=x2, y 2 = x y_2=x y2=x,那么,在二维空间中,判别函数 G ( y ) = y 1 − ( a + b ) y 2 + a b G(y)=y_1-(a+b)y_2+ab G(y)=y1−(a+b)y2+ab ,变成了线性判别函数!
图7:
也就是说,当我们将一个模式识别问题从低维特征空间映射到高维特征空间时,我们就将一个非线性分类的问题,转化成了一个线性分类的问题。这种方法称为“广义线性化”。
可以发现,在上面这个例子里,经过向 2 维空间的映射,原来的整个 1 维特征空间,变换成了 2 维特征空间中的一条曲线。原来在 1 维空间中无法通过一个线性判别函数来分类的问题,在映射后的 2 维特征空间中,可以通过一条线性的
分类决策边界(一条直线)来切割这条曲线的方式,实现一个线性分类器。
那么,是不是所有在低维空间中线性不可分的问题,映射到高维空间都可以变成线性可分的问题呢?需要映射到多少维才行呢?这个问题对线性分类器来说,一直是一个很大的困扰,也限制了线性分类器的应用范围。一直到支持向量机的出现,才给出了一个比较有效的解决方案,后面的文章会给大家做详细的介绍。
4 多分类线性判别
我们前面介绍了线性判别的基本形式。如果样本集中只包含两类样本,那么二分类问题的线性判别函数,就可以形成一道线性的分类决策边界 G ( x ) = 0 G(x)=0 G(x)=0,把两个类别的样本分开。如果考虑特征空间的维数,不失一般性,可以将线性判别函数写为 G ( x ) = w T x + w 0 G(x)=w^Tx+w_0 G(x)=wTx+w0 的形式, w w w 是每个维度上特征值的系数构成的向量,称为线性判别函数的权向量,它决定了线性分类决策边界的斜率,而权向量 w w w 的方向与分类决策边界垂直,是它的法向方向; w 0 w0 w0 的值与线性分类决策边界到特征空间原点的距离有关,具体说,原点到这个超平面的距离为 ∣ w 0 ∣ / ∣ ∣ w ∣ ∣ |w0|/||w|| ∣w0∣/∣∣w∣∣。
PS:
1 为什么权向量
w
w
w 的方向与分类决策边界垂直?
对于一个超平面方程是 w T x + w 0 = 0 w^Tx+w_0=0 wTx+w0=0,那么法向量就必须垂直于这个超平面上的任意两点构成的向量。
假设 x 1 x_1 x1和 x 2 x_2 x2是超平面上的任意两点,那么它们满足 w T x 1 + w 0 = 0 ; w T x 2 + w 0 = 0 w^Tx_1+w_0=0;w^Tx_2+w_0=0 wTx1+w0=0;wTx2+w0=0
x 1 x_1 x1和 x 2 x_2 x2构成的向量是 x 1 − x 2 x_1-x_2 x1−x2。由 w T x 1 + w 0 − ( w T x 2 + w 0 ) = w T ( x 1 − x 2 ) = 0 w^Tx_1+w_0-(w^Tx_2+w_0)=w^T(x_1-x_2)=0 wTx1+w0−(wTx2+w0)=wT(x1−x2)=0。可得 w w w向量就是始终和超平面内任意一个向量垂直的向量,即法向量。
2 超平面的表达式为什么是
w
T
x
+
w
0
=
0
w^Tx+w_0=0
wTx+w0=0?
在
n
n
n维空间中,假设
x
0
x_0
x0为超平面上的一点,
w
w
w为超平面的法向量,则对于超平面上任意一点
x
x
x,都存在:
w
T
⋅
(
x
−
x
0
)
=
w
T
⋅
x
−
w
T
⋅
x
0
=
0
w^T\cdot (x-x_0)=w^T\cdot x-w^T\cdot x_0=0
wT⋅(x−x0)=wT⋅x−wT⋅x0=0
令
w
T
⋅
x
0
=
−
w
0
w^T\cdot x_0=-w_0
wT⋅x0=−w0
则有
w
T
⋅
x
+
w
0
=
0
w^T\cdot x+w_0=0
wT⋅x+w0=0
由线性判别的性质可以发现,一个线性判别函数只能将特征空间划分成两个区域,因此,对于二分类问题是可以直接解决的。但是,当需要分类的样本类别数在 3 个及以上时,问题就变得复杂起来了。
4.1 绝对可分方式
图8:
如果用线性分类器解决多分类问题,那么就需要多个线性判别函数,用二分类问题的组合来确定多分类的分类决策规则,根据一定的逻辑关系构成多分类线性分类器。这种组合会有不同的形式,我们以 3 分类问题为例来一起来了解一下,如图8所示。
如果对于样本集中的每一个类,都有一个线性判别函数,可以把属于这一类和不属于这一类的样本分开,这种情形,我们就称为“绝对可分”的情况。
例如:有判别函数 G 1 ( x ) G_1(x) G1(x),当 G 1 ( x ) > 0 G_1 (x)>0 G1(x)>0 时,样本属于 w 1 w_1 w1 类,当 G 1 ( x ) < 0 G_1 (x)<0 G1(x)<0 时,样本不属于 w 1 w_1 w1 类。
也就是说, G 1 ( x ) = 0 G_1 (x)=0 G1(x)=0 这条线性分类决策边界,可以划分对于 w 1 w_1 w1类的正样本和负样本。对于 w 2 w_2 w2 类和 w 3 w_3 w3 类,也同样有对应的线性判别函数 $G_2(x)和 G 3 ( x ) G_3(x) G3(x)。
在这种绝对可分的线性判别函数情况下,线性分类器的分类决策规则是怎样的呢?我们可以针对每个判别函数的判别结果组合来分析一下,如表1和图9所示。
图9:
表1:
当 G 1 ( x ) > 0 G_1(x)>0 G1(x)>0, G 2 ( x ) G_2(x) G2(x)和 G 3 ( x ) G_3(x) G3(x)都小于 0 时,分类决策的结果非常明确,样本应该属于 w 1 w_1 w1 类。这种只有一个判别函数值大于 0 的情况,都可以明确做出分类决策,结论很简单。
但是,请注意:当有两个或两个以上判别函数值都大于 0 时,情况就变得复杂了。
例如 G 1 ( x ) G_1(x) G1(x)和 G 2 ( x ) G_2(x) G2(x)都大于 0 时,应该把样本划分到哪一类呢?此时,样本落入区域是这个标记为 I R 1 IR_1 IR1 的区域,样本既可能属于 w 1 w_1 w1 类,也可能属于 w 2 w_2 w2类。事实上,我们是无法做出确定的分类决策。因此, I R 1 IR_1 IR1 是一个不可识别的区域。
同样,当 G 1 ( x ) G_1(x) G1(x)和 G 3 ( x ) G_3(x) G3(x)均大于 0 时,样本落入的是不可识别区域 I R 2 IR_2 IR2;当 G 2 ( x ) G2(x) G2(x)和 G 3 ( x ) G3(x) G3(x)均大于 0 时,样本落入的是不可识别区域 I R 3 IR_3 IR3;更特别的是,当所有类别对应的判别函数值均小于等于 0 时,样本落入了一个“三不管”区域 I R 4 IR_4 IR4,其真实的类别无从得知。
因此,虽然绝对可分情况下的多分类线性判别形式非常简单,判别函数的意义也很明确,但是它带来的不可识别区域很多,整体分类器的性能并不好。
4.2 两两可分方式
图10:
表2:
如果多分类问题中的线性判别函数,并不是用于判别属于某一个类或者不属于某一个类的样本,而是在两个特定的类别中选边站。
如图10和表2所示。例如
- G 12 ( x ) > 0 G_{12}(x)>0 G12(x)>0 时, 样本有可能属于 w 1 w_1 w1类,但不会属于 w 2 w_2 w2类;
- 当 G 12 ( x ) < 0 G_{12}(x)<0 G12(x)<0 时,样本有可能属于 w 2 w_2 w2类,但不会属于 w 1 w_1 w1类。
如果所有判别函数都是这种形式的话,就称为“两两可分”的情况。
在两两可分的情况下,线性分类器如何做分类决策呢?
当与类别 w 1 w_1 w1 有关的判别函数 G 12 ( x ) > 0 , G 31 ( x ) < 0 G_{12}(x)>0,G_{31}(x)<0 G12(x)>0,G31(x)<0 时,我们可以唯一地判定样本属于 w 1 w_1 w1 类。此时与 w 1 w_1 w1 类无关的两两判别函数 G 23 ( x ) G_{23}(x) G23(x)的值不会影响我们的分类决策结果。
同样,当 G 12 ( x ) < 0 , G 23 ( x ) > 0 G_{12}(x)<0,G_{23}(x)>0 G12(x)<0,G23(x)>0 时,我们可以唯一地判定样本属于 w 2 w_2 w2 类; G 23 ( x ) < 0 , G 31 ( x ) > 0 G_{23}(x)<0,G_{31}(x)>0 G23(x)<0,G31(x)>0时,我们可以唯一地判定样本属于 w 3 w_3 w3 类。
而当所有判别函数 G 12 ( x ) , G 23 ( x ) , G 3 ( x ) G_{12}(x),G_{23}(x),G_3(x) G12(x),G23(x),G3(x)均小于等于 0 时,我们无法确定地判定样本所属的类别,样本落入了不可识别区域 I R IR IR。
由此可见,两两可分的多分类线性判别,不可识别区域比绝对可分的情况大大减少了,性能比绝对可分要好。
那么它有没有缺点呢?我们可以来计算一下多分类问题所需的判别函数数量。如果样本集一共有 k k k 个类别,那么两两可分的线性判别一共需要多少个判别函数呢?对,这是个组合问题, k k k 个类别需要 C k 2 C_k^2 Ck2 个判别函数,而相应的绝对可分线性判别,则只需要 k k k 个判别函数。所以,当多分类问题的类别数较多时,采用两两可分的方式,判别函数的数量会大大增加。这是线性分类器性能提升所付出的代价。
4.3 最大值可分方式
图11:
两两可分的线性判别减少了不可识别区域,提升了线性分类器的性能。如果想进一步减少不可识别区域,甚至消除不可识别区域,可以使用另一种线性判别的分类决策规则,称为“最大值可分”。在最大值可分中,样本集中的每个类别对应有一个判别函数,而一个样本将被划分到取值最大的那个判别函数所对应的类别中,即当
G
m
(
x
)
=
max
1
≤
i
≤
k
[
G
i
(
x
)
]
G_m(x)=\max\limits_{1\le i\le k}[G_i(x)]
Gm(x)=1≤i≤kmax[Gi(x)]
有:
x
∈
ω
m
x\in \omega_m
x∈ωm
需要注意的是:此时特征空间中的分类决策边界,不再是由 G i ( x ) = 0 G_i(x)=0 Gi(x)=0 构成的超平面,而是由 G i ( x ) − G j ( x ) = 0 G_i(x)-G_j(x)=0 Gi(x)−Gj(x)=0 构成的 w i w_i wi 和 w j w_j wj 类之间的两两分类决策边界。
也就是说, G i j ( x ) = G i ( x ) − G j ( x ) = 0 G_{ij}(x)=G_i(x)-G_j(x)=0 Gij(x)=Gi(x)−Gj(x)=0,才是两两可分情况下的判别函数。可以发现,在最大值可分的情况下,不可识别的区域消失了,判别函数的数量也仅仅与样本集中的类别数量一样。
问题只是:如何求取到最大值可分的判别函数?这比找到样本集两个类别之间的分类决策边界来确定判别函数,需要更多的求解工作量。
5 线性判别函数的几何意义
前面我们学习了线性判别函数的基本形式,即
G
(
x
)
=
w
T
x
+
w
0
G(x)=w^Tx+w_0
G(x)=wTx+w0 。我们可以用
G
(
x
)
G(x)
G(x)大于 0 或者小于 0,来判别样本位于线性分类决策边界的哪一侧,从而完成对样本的分类决策。当样本带入判别函数,得到
G
(
x
)
=
0
G(x)=0
G(x)=0 时,该样本位于线性决策边界上,也就是说,该样本与决策边界的距离为 0。直观地可以发现,当一个样本距离分类决策边界越远时,判别函数的绝对值也应当越大,也就是说判别函数是样本到决策超平面距离远近的一种度量。
那么判别函数的几何意义究竟如何呢?下面以二类问题为例来进行分析。
图12:
如果判别函数可以将两类分开,则决策边界方程为:
G
(
x
)
=
w
T
x
+
w
0
=
0
G(x)=w^Tx+w_0=0
G(x)=wTx+w0=0
如图12,设样本
x
x
x 距离决策边界的距离为
r
r
r,则向量
x
x
x 可以表示为其在决策边界上的投影点所代表的向量
x
p
x_p
xp 和向量
r
(
w
/
∣
∣
w
∣
∣
)
r(w/||w||)
r(w/∣∣w∣∣)的和,即:
x
=
x
p
+
r
w
∣
∣
w
∣
∣
x=x_p+r\frac{w}{||w||}
x=xp+r∣∣w∣∣w
代入判别函数中,可得到
G
(
x
)
=
w
T
x
p
+
w
0
+
r
w
T
w
∣
∣
w
∣
∣
G(x)=w^Tx_p+w_0+r\frac{w^Tw}{||w||}
G(x)=wTxp+w0+r∣∣w∣∣wTw
因为
x
p
x_p
xp 正好在分类决策边界上,所以
w
T
x
p
+
w
0
=
0
w^Tx_p+w_0=0
wTxp+w0=0
又
w
T
w
=
∣
∣
w
∣
∣
2
w^Tw=||w||^2
wTw=∣∣w∣∣2
因此得到
G
(
x
)
=
r
∣
∣
w
∣
∣
G(x)=r||w||
G(x)=r∣∣w∣∣
即
r
=
G
(
x
)
∣
∣
w
∣
∣
r=\frac{G(x)}{||w||}
r=∣∣w∣∣G(x)
由此可见,样本 x x x 到决策边界的距离 r r r 正比于判别函数 G ( x ) G(x) G(x)的值,判别函数的符号代表了距离 r r r 的符号,表示该模式位于决策边界的正侧还是负侧。
更一般的情况,权向量 w w w 仅代表决策超平面的法线方向,其长度不会影响决策边界在特征空间中的位置,完全可以取 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1 ,此时的判别函数值就是样本到决策边界的距离,这就是线性判别函数的几何意义。
所以,线性判别函数的值,不仅具有正负判别的意义,而且能够表示样本距离分类决策边界的远近。一般情况下,我们当然希望各个类别的样本分布都离分类决策边界远一些,这样可以避免由于数据采集的误差导致分类错误。线性判别函数值的这种几何意义,对于我们评判线性分类器性能的优劣提供了一个标准,也被用于支持向量机等线性分类器的算法优化中。
参考:
[1] 中国大学mooc 人工智能之模式识别 高琪,李位星,冯肖雪, 北京理工大学
THE END.
感谢阅读。