本系列为《模式识别与机器学习》的读书笔记。
一,分类线性模型概述
分类的⽬标是将输⼊变量 x 分到 K 个离散的类别 Ck 中的某⼀类。 最常见的情况是, 类别互相不相交, 因此每个输⼊被分到唯⼀的⼀个类别中。因此输⼊空间被划分为不同的决策区域(decision region
),它的边界被称为决策边界(decision boundary
)或者决策⾯(decision surface
)。
分类线性模型是指决策⾯是输⼊向量 x 的线性函数,因此被定义为 D 维输⼊空间中的 (D−1) 维超平⾯。如果数据集可以被线性决策⾯精确地分类,那么我们说这个数据集是线性可分的(linearly separable
)。
在线性回归模型中,使⽤⾮线性函数 f(⋅) 对 w 的线性函数进⾏变换,即
y(x)=f(wTx+w0)(4.1)
在机器学习的⽂献中,f(⋅) 被称为**函数(activation function
),⽽它的反函数在统计学的⽂献中被称为链接函数(link function
)。决策⾯对应于 y(x)=常数,即 wTx+w0=常数,因此决策⾯是 x 的线性函数,即使函数 f(⋅) 是⾮线性函数也是如此。因此,由公式(4.1)描述的⼀类模型被称为推⼴的线性模型(generalized linear model
)(McCullagh and Nelder
, 1989)。
如图4.1,⼆维线性判别函数的⼏何表⽰。决策⾯(红⾊)垂直于 w ,它距离原点的偏移量由偏置参数 w0 控制。

二,判别函数
判别函数是⼀个以向量 x 为输⼊,把它分配到 K 个类别中的某⼀个类别(记作 Ck )的函数。
1,⼆分类
线性判别函数的最简单的形式是输⼊向量的线性函数,即
y(x)=wTx+w0(4.2)
其中 w 被称为权向量(weight vector
),w0 被称为偏置(bias
)。偏置的相反数有时被称为阈值(threshold
)。
考虑两个点 xA 和 xB ,两个点都位于决策⾯上。 由于 y(xA)=y(xB)=0,我们有 wT(xA−xB)=0,因此向量 w 与决策⾯内的任何向量都正交,从⽽ w 确定了决策⾯的⽅向。类似地,如果 x 是决策⾯内的⼀个点,那么 y(x)=0 ,因此从原点到决策⾯的垂直距离为
∥w∥wTx=−∥x∥w0(4.3)
其中,偏置参数 w0 确定了决策⾯的位置。
记任意⼀点 x 到决策⾯的垂直距离 r ,在决策⾯上的投影 x⊥ ,则有
x=x⊥+r∥w∥w(4.4)
利用已知公式和 y(x⊥)=0 可得
r=∥w∥y(x)(4.5)
为方便简洁,引⼊“虚”输⼊ x0=1 ,并且定义 w~=(w0,w) 以及 x~=(x0,x) ,从⽽
y(x)=w~Tx~(4.6)
在这种情况下, 决策⾯是⼀个 D 维超平⾯, 并且这个超平⾯会穿过 D+1 维扩展输⼊空间的原点。
2,多分类
考虑把线性判别函数推⼴到 K>2 个类别。
方法一,使⽤ K−1 个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别 Ck 和不属于那个类别的点分开。这被称为“1对其他”(one-versus-the-rest
)分类器。此方法的缺点在于产⽣了输⼊空间中⽆法分类的区域。
方法二,引⼊ 2K(K−1) 个⼆元判别函数, 对每⼀对类别都设置⼀个判别函数。 这被称为“1对1”(one-versus-one
)分类器。每个点的类别根据这些判别函数中的⼤多数输出类别确定,但是,这也会造成输⼊空间中的⽆法分类的区域。
如图4.2,尝试从⼀组两类的判别准则中构建出⼀个 K 类的判别准则会导致具有奇异性的区域, ⽤绿⾊表⽰。

方法三,通过引⼊⼀个 K 类判别函数,可以避免上述问题。这个 K 类判别函数由 K 个线性函数组成,形式为
yk(x)=wkTx+wk0(4.7)
对于点 x ,如果对于所有的 j=k 都 有 yk(x)>yj(x) ,那么就把它分到 Ck 。 于是类别 Ck 和 Cj 之间的决策⾯为 yk(x)=yj(x),并且对应于⼀个 (D−1) 维超平⾯,形式为
(wk−wj)Tx+(wk0−wj0)=0(4.8)
考虑两个点 xA 和 xB ,两个点都位于决策区域 Rk 中, 任何位于连接 xA 和 xB 的线段上的点都可以表⽰成下⾯的形式
x^=λxA+(1−λ)xB(4.9)
其中,0≤λ≤1 。根据判别函数的线性性质,有
yk(x^)=λyk(xA)+(1−λ)yk(xB)(4.10)
由于 xA 和 xB 位于 Rk 内部,因此对于所有 j=k , 都有 yk(xA)>yj(xA) 以及 yk(xB)>yj(xB) ,因此 yk(x^)>yj(x^) ,从⽽ x^ 也位于 Rk 内部,即 Rk 是单连通的并且是凸的。
如图4.3,多类判别函数的决策区域的说明, 决策边界⽤红⾊表⽰。

3,⽤于分类的最⼩平⽅⽅法
每个类别 Ck 由⾃⼰的线性模型描述,即公式(4.7),其中 k=1,…,K 。使⽤向量记号表⽰,即
y(x)=W~Tx~(4.11)
其中 W~ 是⼀个矩阵,第 k 列由 D+1 维向量 w~k=(wk0,wkT)T 组成,x~ 是对应的增⼴输⼊向量 (1,xT)T, 它带有⼀个虚输⼊ x0=1 。
现在通过最⼩化平⽅和误差函数来确定参数矩阵 W~ ,考虑⼀个训练数据集 {xn,tn},其中 $n = 1,\dots , N $,然后定义⼀个矩阵 T ,它的第 n ⾏是向量 tnT ,定义⼀个矩阵 X~ ,它的第 n ⾏是 x~nT 。这样,平⽅和误差函数可以写成
ED(W~)=21Tr{(X~W~−T)T(X~W~−T)}(4.12)
令关于 W~ 的导数等于零,整理,可以得到 W~ 的解,形式为
W~=(X~TW~)−1X~TT=X~†T(4.13)
其中 X~† 是矩阵 X~ 的伪逆矩阵。即得判别函数,形式为
y(x)=W~Tx~=TT(X~†)Tx~(4.14)
如图4.4,左图给出了来⾃两个类别的数据,⽤红⾊叉形和蓝⾊圆圈表⽰。同时给出的还有通过最⼩平⽅⽅法找到的决策边界(洋红⾊曲线)以及logistic
回归模型给出的决策边界(绿⾊曲线);右图给出了当额外的数据点被添加到左图的底部之后得到的结果,这表明最⼩平⽅⽅法对于异常点很敏感,这与logistic
回归不同。

多⽬标变量的最⼩平⽅解的⼀个重要的性质是:如果训练集⾥的每个⽬标向量都满⾜某个线性限制
aTtn+b=0(4.15)
其中 a 和 b 为常量,那么对于任何 x 值,模型的预测也满⾜同样的限制,即
aTy(x)+b=0(4.16)
因此如果使⽤ K 分类的“1-of-K ”表达⽅式,那么这个模型做出的预测会具有下⾯的性质:对于任意的 x 的值, y(x) 的元素的和等于1。
举例,由三个类别组成的⼈⼯数据集,训练数据点分别⽤红⾊(×)、绿⾊(+)、蓝⾊(◦)标出。 直线表⽰决策边界, 背景颜⾊表⽰决策区域代表的类别。
如图4.5,使⽤最⼩平⽅判别函数,分配到绿⾊类别的输⼊空间的区域过⼩,⼤部分来⾃这个类别的点都被错误分类。

如图4.6,使⽤logistic
回归的结果,给出了训练数据的正确分类情况。

4,Fisher
线性判别函数
假设有⼀个 D 维输⼊向量 x ,然后使⽤下式投影到⼀维
y=wTx(4.17)
如果在 y 上设置⼀个阈值,然后把 y≥−w0 的样本分为 C1 类,把其余的样本分为 C2 类,那么就得到了一个标准的线性分类器。
考虑⼀个⼆分类问题,这个问题中有 C1 类的 N1 个点以及 C2 类的 N2 个点。因此两类的均值向量为
m1=N11n∈C1∑xnm2=N21n∈C2∑xn
如果投影到 w 上,那么最简单的度量类别之间分开程度的⽅式就是类别均值投影之后的距离。这说明可以选择 w 使得下式取得最⼤值
m2−m1=wT(m2−m1)(4.18)
其中,
mk=wTmk
是来⾃类别 Ck 的投影数据的均值。
如图4.7,左图给出了来⾃两个类别(表⽰为红⾊和蓝⾊)的样本,以及在连接两个类别的均值的直线上的投影的直⽅图。注意,在投影空间中,存在⼀个⽐较严重的类别重叠。右图给出的基于Fisher
线性判别准则的对应投影,表明了类别切分的效果得到了极⼤的提升。

Fisher
提出的思想是最⼤化⼀个函数,这个函数能够让类均值的投影分开得较⼤,同时让每个类别内部的⽅差较⼩,从⽽最⼩化了类别的重叠。
投影公式(4.17)将 x 的⼀组有标记的数据点变换为⼀位空间 y 的⼀组有标记数据点。来⾃类别 Ck 的数据经过变换后的类内⽅差为
sk2=n∈Ck∑(yn−mk)2(4.19)
其中,yn=wTxn 。把整个数据集的总的类内⽅差定义为 s12+s22 ,Fisher
准则 根据类间⽅差和类内⽅差的⽐值定义,即
J(w)=s12+s22(m2−m1)2(4.20)
不难推导, J(w) 对 w 的依赖
J(w)=wTSWwwTSBw(4.21)
其中 SB 是类间(between-class
)协⽅差矩阵,形式为
SB=(m2−m1)(m2−m1)T
SW 被称为类内(within-class
)协⽅差矩阵,形式为
SW=n∈C1∑(xn−m1)(xn−m1)T+n∈C2∑(xn−m2)(xn−m2)T
对公式(4.21)关于 w 求导,发现 J(w) 取得最⼤值的条件为
(wTSBw)SWw=(wTSWw)SBw(4.22)
可以发现, SBw 总是在 (m2−m1) 的⽅向上。 更重要的是, 若不关⼼ w 的⼤⼩, 只关⼼它的⽅向, 因此可以忽略标量因⼦ (wTSBw) 和 (wTSWw) 。 将公式(4.22)的两侧乘以 SW−1 ,即得 Fisher
线性判别函数(Fisher linear discriminant
)
w∝SW−1(m2−m1)(4.23)
如果类内协⽅差矩阵是各向同性的,从⽽ SW 正⽐于单位矩阵,那么我们看到 w 正⽐于类均值的差。
构建 Fisher
线性判别函数 ,其⽅法为:选择⼀个阈值 y0 ,使得当 y(x)≥y0 时,把数据点分到 C1 ,否则把数据点分到 C2 。
5,与最⼩平⽅的关系
最⼩平⽅⽅法确定线性判别函数的⽬标是使模型的预测尽可能地与⽬标值接近。相反, Fisher
判别准则 的⽬标是使输出空间的类别有最⼤的区分度。
对于⼆分类问题,Fisher
准则可以看成最⼩平⽅的⼀个特例。作如下假设:让属于 C1 的⽬标值等于 N1N ,其中 N1 是类别 C1 的模式的数量,N 是总的模式数量。这个⽬标值近似于类别 C1 的先验概率的导数。 对于类别 C2 , 令⽬标值等于 −N2N , 其中 N2 是类别 C2 的模式的数量。平⽅和误差函数可以写成
E=21n=1∑N(wTxn+w0−tn)2(4.24)
令 E 关于 w0 和 w 的导数等于零,使⽤对于⽬标值 tn 的表⽰⽅法,可以得到偏置的表达式
w0=−wTm(4.25)
其中,
n=1∑Ntn=N1N1N−N2N2N=0m=N1n=1∑Nxn=N1(N1m1+N2m2)
使⽤对于 tn 的新的表⽰⽅法可得
(SW+NN1N2SB)w=N(m1−m2)(4.26)
由此可见,可以推导出公式(4.23),即权向量恰好与根据Fisher
判别准则得到的结果相同。
6,多分类的Fisher
判别函数
现在考虑Fisher
判别函数对于 K>2 个类别的推⼴。 假设输⼊空间的维度 D ⼤于类别数量 K ,引⼊ D′>1 个线性“特征” yk=wkTx ,其中 k=1,…,D′ 。 为了⽅便, 这些特征值可以聚集起来组成向量 y ,类似地,权向量 {wk} 可以被看成矩阵 W 的列。因此
y=WTx(4.27)
类内协⽅差矩阵推⼴到 K 类,有
SW=k=1∑KSk(4.28)
其中,
Sk=n∈Ck∑(xn−mk)(xn−mk)Tmk=Nk1n∈Ck∑xn
其中 Nk 是类别 Ck 中模式的数量。
为了找到类间协⽅差矩阵的推⼴,使⽤Duda and Hart
(1973)的⽅法,⾸先考虑整体的协⽅差矩阵
ST=n=1∑N(xn−m)(xn−m)T(4.29)
其中 m 是全体数据的均值
m=N1n=1∑Nxn=N1k=1∑KNkmk
其中 N=∑kNk 是数据点的总数。
整体的协⽅差矩阵可以分解为公式(4.28)给出的类内协⽅差矩阵,加上另⼀个矩阵 SB ,它可以看做类间协⽅差矩阵。
ST=SW+SB(4.30)
其中,
SB=k=1∑KNk(mk−m)(mk−m)T
协⽅差矩阵被定义在原始的 x 空间中。现在在投影的 D′ 维 y 空间中定义类似的矩阵
SW=k=1∑Kn∈Ck∑(yn−μk)(yn−μk)TSB=k=1∑KNk(μk−μ)(μk−μ)T
其中,
μk=Nk1n∈Ck∑ynμ=N1k=1∑KNkμk
我们想构造⼀个标量,当类间协⽅差较⼤且类内协⽅差较⼩时,这个标量会较⼤。有许多可能的准则选择⽅式(Fukunaga
, 1990)。其中⼀种选择是
J(W)=Tr{sW−1sB}(4.31)
这个判别准则可以显式地写成投影矩阵 W 的函数,形式为
J(W)=Tr{(WTSWW)−1(WTSBW)}(4.32)
7,感知器算法
线性判别模型的另⼀个例⼦是Rosenblatt
(1962)提出的感知器算法。对应于⼀个⼆分类的模型,输⼊向量 x ⾸先使⽤⼀个固定的⾮线性变换得到⼀个特征向量 ϕ(x) , 这个特征向量然后被⽤于构造⼀个⼀般的线性模型,形式为
y(x)=f(wTϕ(x))(4.33)
其中⾮线性**函数 f(⋅) 是⼀个阶梯函数,形式为
f(a)={+1,−1,a≥0a<0
向量 ϕ(x) 通常包含⼀个偏置分量 ϕ0(x)=0 。对于感知器,使⽤ t=+1 表⽰ C1 ,使⽤ t=−1 表⽰ C2 ,这与**函数的选择相匹配。
为了推导误差函数,即感知器准则(perceptron criterion
), 注意到我们正在做的是寻找⼀个权向量 w 使得对于类别 C1 中的模式 xn 都有 wTϕ(xn)>0 , ⽽对于类别 C2 中的模式 xn 都有 wTϕ(xn)<0 。 使⽤ t∈{−1,+1} 这种⽬标变量的表⽰⽅法,要做的就是使得所有的模式都满⾜ wTϕ(xn)tn>0 。 对于正确分类的模式,感知器准则赋予零误差,⽽对于误分类的模式 xn ,它试着最⼩化 −wTϕ(xn)tn 。因此,感知器准则为
EP(w)=−n∈M∑wTϕntn(4.34)
其中 ϕn=ϕ(xn) 和 M 表⽰所有误分类模式的集合。某个特定的误分类模式对于误差函数的贡献是 w 空间中模式被误分类的区域中 w 的线性函数, ⽽在正确分类的区域,误差函数等于零。 总的误差函数因此是分段线性的。
现在对这个误差函数使⽤随机梯度下降算法。这样,权向量 w 的变化为
w(τ+1)=w(τ)−η∇EP(w)=w(τ)+ηϕntn(4.35)
其中 η 是学习率参数,τ 是⼀个整数,是算法运⾏次数的索引。
感知器学习算法可以简单地表⽰如下:我们反复对于训练模式进⾏循环处理,对于每个模式 xn 计算感知器函数(4.33)。如果模式正确分类,那么权向量保持不变,⽽如果模式被错误分类,那么对于类别 C1 , 我们把向量 ϕ(xn) 加到当前对于权向量 w 的估计值上,⽽对于类别 C2 ,我们从 w 中减掉向量 ϕ(xn)。
如图4.8~4.11,感知器算法收敛性的说明, 给出了⼆维特征空间 (ϕ1,ϕ2) 中的来⾃两个类别的数据点(红⾊和蓝 ⾊)。图4.8给出了初始参数向量 w ,表⽰为⿊⾊箭头,以及对应的决策边界(⿊⾊直线),其中箭头指向被分类为红⾊类别的决策区域。⽤绿⾊圆圈标出的数据点被误分类,因此它的特征向量被加到当前的权向量中,给出了新的决策边界,如图4.9所⽰。 图4.10给出了下⼀个误分类的点,⽤绿⾊圆圈标出,它的特征向量再次被加到权向量上,给出了图4.11的决策边界。这个边界中所有的数据点都被正确分类。



