关闭

4.1 判别函数

标签: 机器学习模式识别PRML贝叶斯方法
292人阅读 评论(0) 收藏 举报
分类:

4.1 判别函数

1、二分类

线性判别函数的最简单的形式是输⼊向量的线性函数,即:

y(x)=ωTx+ω0

其中 ω 被称为权向量( weight vector ), ω0 被称为偏置( bias )。通常来说,当 y(x)>0 时,将 x 分类为 C1,当 y(x)<0 时,将 x 分类为 C2,当 y(x)=0 时, x位于决策边界中。
对于任意决策边界中的点 x1x2,有 y(x1)=0y(x2)=0,即:ωT(x1x2)=0,可知 ω 与决策边界中的所有向量都正交,因此 ω 决定了决策面的方向。
对于决策边界中的点 xy(x)=0 ,所以原点到决策面的垂直距离为:
ωTxω=ω0x

因此,ω0 决定了决策面的位置。
为了简化表示,可以引入“虚输入”x0=1
y(x)=ωTx

2、多分类

基本思路是把多个二分类器组合起来构成K(K>2)分类器。
1、“1对其他”( one-versus-the-rest ):构造K个二分类器,每个分类器把属于 Ck 的和不属于 Ck 的区分开。
2、“1对1”( one-versus-one )分类器:构造 K(K1)2 个二分类器,用于区分K个类别中每两类的组合。
但这两种方法都会产生不能准确分类的现象,即不同分类器将同一目标分至不同类别。

通过引⼊⼀个 K 类判别函数,我们可以避免这些问题。这个 K 类判别函数由 K 个线性函数组成,形式为:

yk(x)=ωTkx+ωk0

对于点 x ,如果对于任意 jk,都有 yk(x)>yj(x),那么就将它分类为 Ck ,于是 CkCj 的决策边界为 yk(x)=yj(x),对应的超平面为:
(ωkωj)Tx+(ωk0ωj0)=0

这样的判别函数的决策区域总是单连通的,并且是凸的,解决了上述问题。

下面介绍几种学习线性判别函数的参数的⽅法。

3、用于分类的最小平方方法

类似于之前所讲的线性回归,对于分类问题也可以用最小平方方法求解参数值,每个类 Ck 都有自己的线性描述:

yk(x)=ωTkx+ωk0

使用向量可以把这些线性方程合并:
y(x)=WTx

其中 W是一个矩阵,第 k 列由 {ωk0,ωTk} 构成,x 是对应的增广输入向量 {1,xT}T
现在通过最小平方方法确定参数 W,考虑一个训练集 {xn,tn},定义矩阵 T,他的第 n 行为 tTn,定义矩阵 X ,他的第n行是 xTn ,那么平方误差函数可以写为:
ED(W)=12Tr{(XWT)T(XWT)}

令上式关于 W 的导数为0,
W=(XTX)1XTT=XT

其中 X 是矩阵 X 的伪逆矩阵。于是得到了判别函数:
y(x)=WTx=TT(X)Tx

虽然最小平方法给出了精确的解析解,但它的分类结果并不乐观,首先,它受离群点的影响较大,如图:

这里写图片描述

其次,即使没有离群点,最小平方法的分类结果也不够准确,如图:

这里写图片描述

因为最小平方法对应于高斯分布下的最大似然法,但二值目标向量的概率分布显然不是高斯分布。

4、Fisher线性判别函数

现在从降维的角度考虑线性模型,首先考虑二分类的情况,我们把 y=ωTx 投影到一维空间,如果我们在 y 上设置⼀个阈值,然后把 y<ω0 的样本分为 C1 类,把其余的样本分为 C2 类,那么我们就得到了之前讨论的标准的线性分类器。虽然大部分样本被正确分类,但是有小部分 x 在决策边界附近有重叠,即在降维后丢失了部分信息。这是降维的副作用,但我们可以通过调整权向量 ω 来使重叠部分尽量小。
考虑⼀个⼆分类问题,这个问题中有 C1 类的 N1 个点以及 C2 类的 N2 个点。因此两类的均值向量为:

m1=1N1nC1xn,m1=1N2nC2xn

为了使两个类距离最大,可以调整 ω 使下式的值最大:
m2m1=ωT(m2m1)

Fisher 提出的思想是最⼤化⼀个函数,这个函数能够让类均值的投影分开得较⼤,同时让每个类别内部的⽅差较⼩,从⽽最⼩化了类别的重叠。

这里写图片描述

当把 x 投影到一维 y 空间后,类内方差为:

s2k=nCk(ynmk)2

我们可以把整个数据集的总的类内⽅差定义为 s21+s22 ,Fisher 准则根据类间⽅差和类内⽅差的⽐值定义,即:
J(ω)=(m2m1)2s21+s22

根据以上公式可以把它简写为对 ω 的依赖:
J(ω)=ωTSBωωTSWω

其中,SB 是类间协方差矩阵:
SB=(m2m1)(m2m1)T

SW 是类内协方差矩阵:
SW=nC1(xnm1)(xnm1)T+nC2(xnm2)(xnm2)T

J(ω) 关于 ω 求导,可知 J(ω) 取得最大值的条件是:

(ωTSBω)SWω=(ωTSWω)SBω

由于我们只关注 ω 的方向而不关心大小,可以忽略标量因子 (ωTSBω)(ωTSWω),得到:
ωS1W(m2m1)

这个结果成为Fisher线性判别函数,虽然准确来说它并不是一个函数而是选择投影的一种标准,但可以通过投影的数据构建判别函数。

5、与最小平方的关系

最⼩平⽅⽅法确定线性判别函数的⽬标是使模型的预测尽可能地与⽬标值接近。相反, Fisher 判别准则的⽬标是使输出空间的类别有最⼤的区分度。可以证明,对于二分类问题,Fisher判别准则是最小平方的一个特例。
考虑一个二分类问题,我们让属于 C1 的⽬标值等于 N1N,其中 N1 是类别 C1 的模式的数量, N 是总的模式数量。这个⽬标值近似于类别 C1 的先验概率的导数。对于类别 C2 ,我们令⽬标值等于 N2N ,其中 N2 是类
C2 的模式的数量。
平方和误差函数可以写为:

E=12n=1N(ωTxn+ω0tn)2

E 关于 ωω0 的导数为0:
n=1N(ωTxn+ω0tn)=0

n=1N(ωTxn+ω0tn)xn=0

通过:
n=1Ntn=N1NN1N2NN2=0

可以得到:
ω0=ωTm

经过一些简单的计算,可以得到:
(SW+N1N2NSB)ω=N(m1M2)

注意到,ω 总是在 m2m1 的方向上,因此:
ωS1W(m2m1)

得到了上一节的结果。

6、多分类的Fisher判别函数

7、感知器算法

感知器算法是Rosenblatt提出的一个线性判别模型。它对应一个二分类模型,输入向量 x 首先通过固定的非线性变换得到特征向量 ϕ(x) ,这个特征向量用于构造一个一般的线性模型:

y(x)=f(ωTϕ(x))

其中非线性激活函数 f(x) 是一个阶梯函数:
f(x)={1,x01,x<0

注意到,之前的章节中对与二分类结果 tn 空间的定义为 {0,1},在感知器算法中我们改为了 {1,1}
接下来选择评估参数 ω 的误差函数。最简单的方法是对误分类的数据进行简单计数,但这样做会使得学习算法不会很简单,因为这样做会使误差函数变为 ω 的分段常函数,从⽽当 ω 的变化使得决策边界移过某个数据点时,这个函数会不连续变化。这样做还使得使⽤误差函数改变 w 的⽅法⽆法使⽤,因为在⼏乎所有的地方梯度都等于零。
因此我们将选择另一种误差函数,被称为感知器准则( perceptron criterion )。我们原本的目标是求解参数 ω 使得对属于 C1 类的 x 都有 ωTϕ(x)>0, 对属于 C2 类的 x 都有 ωTϕ(x)<0。而当我们把输出空间重新定义为 {1,1} 时,我们的目标就可以简化成对任意 xn,都有 ωTϕ(xn)tn>0。感知器准则应用了这个结论,它只关注被误分类的 x,试图最小化 ωTϕ(xn)tn,因此,感知器准则可以表示为:

Ep(ω)=nMωTϕntn

其中 M 是被误分类的 x 的集合。
对这个误差函数使用随机梯度下降法:
ω(γ+1)=ωγηEp(ω)=ωγ+ηϕntn

其中 η 是学习率,γ 是迭代次数。
下图说明了误分类的样例对参数 ω 的影响过程:

这里写图片描述

如果 x 被正确分类,权向量 ω 保持不变。如果被误分类,对于类别1,我们将向量 ϕ(x) 加到权向量上,对于类别2,我们从权向量中减去向量 ϕ(x)。这就是感知器学习的过程。
可以证明,在权值更新过程中,同一个误分类的样例对权向量的影响在逐渐减小,因为根据上式有:

ω(γ+1)Tϕntn=ω(γ)Tϕntn(ϕntn)Tϕntn<ω(γ)Tϕntn

此外,权向量的改变会使得某些之前正确分类的样本变为误分类。因此感知器学习规则并不保证在每个阶段都会减⼩整体的误差函数。

感知器收敛定理( perceptron convergence theorem )表明,如果存在⼀个精确的解(即,如果训练数据线性可分),那么感知器算法可以保证在有限步骤内找到⼀个精确解。但找到精确解的步骤可能非常多,而且在迭代过程中我们并不能判断是在缓慢收敛还是问题本身不是线性可分的,因为对于线性不可分的数据集,感知器永远无法收敛。另外,训练集可能有多个精确解,而感知器最终得到哪个解是不确定的。

除了上述缺陷,感知器最大的问题在于使用了固定基函数的线性组合。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20380次
    • 积分:529
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:0篇
    • 译文:6篇
    • 评论:4条
    文章分类
    最新评论