这一章主要介绍线性分类模型,包括生成模型和判别模型
线性模型:决策面是输入向量x的线性函数,决策面是D维输入空间的D-1维超平面
所谓分类线性模型,是指决策⾯是输⼊向量 x 的线性函数,因此被定义为 D 维输⼊空间中的 (D−1) 维超平⾯。如果数据集可以被线性决策⾯精确地分类(没有任何样本被错分),那么我们说这个数据集是线性可分的
一般线性模型如下:
其中, f 被称为激活函数,而它的反函数被称为链接函数,这个模型被称为推广的线性模型。如果 f 是非线性函数,则模型是分类模型,如果 f 是恒等函数,则它是回归模型。
判别函数是⼀个以向量 x 为输⼊,把它分配到 K 个类别中的某⼀个类别(记作 Ck )的函数。这里主要考虑线性判别函数,即那些决策面是超平面的判别函数
线性判别函数最简单的形式如下:
这里作者推导了点到超平面的距离。因为是分类超平面,所以超平面上的点 x 满足 y(x)=0 ,而且权向量 w 必然与平面上的向量正交。
首先,对于任意的点 xn ,可以分解为
其中, xn⊥ 是x在超平面上的投影,r是点到超平面的距离。
则有:
因此,点到超平面的距离为:
现在考虑吧线性判别函数推广到 K>2 个类别。这里有三种方法构建模型
(1)one-vs-rest:考虑K-1个分类器,每个分类器解决一个二分类问题,即是否属于类别 Ck
(2)one-vs-one:引入 K(K−1)2 个二元判别函数,每一对类别设置一个判别函数。
但是这两种都会使得输入空间存在无法分类的区域,如下图。也就是说,部分样本可能无法分类到某个类别
(3)引入K类判别函数,每个判别函数都是线性函数:
然后对于点 x , 如果对于所有的 j≠k 都有 yk(x)>yj(x) , 那么就把它分到 Ck 。于是类别 Ck 和 Cj 之间的决策⾯为 yk(x)=yj(x) ,并且对应于⼀个 (D−1) 维超平⾯,形式为:
这种方法下,输入空间将不存在模糊区域
下面首先尝试用最小平方误差法求解分类问题。
假设要分类K个类别,构建K个线性模型,则对应的判别函数为:
其中, W˜ 是一个矩阵,第 k 列由 D+1 维向量 w˜k=(wk0,wTk)T 组成, x˜ 是对应的增⼴输⼊向量 (1,xT)T ,它带有⼀个虚输⼊ x0=1
现在考虑一个数据集 {xn,tn} ,定义矩阵 T ,它的第n行是向量 tTn ,定义矩阵 X˜ ,它的第n行为 x˜Tn ,则平方和误差函数为:
求导并令导数为0可得:
其中, X˜† 是 X˜ 的伪逆矩阵
则判别函数为:
优点:对参数给出了精确地解析解
缺点:对于离群点缺少鲁棒性;会惩罚了“过于正确”的预测,因为他们
在正确的⼀侧距离决策边界太远了;它来自于数据呈高斯分布的假设,当假设不成立,效果会相当差
它的目的是使类均值的投影分开的较大,同时让每个类别内部的方差较小,从而最小化类别的重叠,如图:
首先考虑二分类的情况。假设有D维输入向量x,将它投影到一维如下:
一般在y上设置一个阈值,把 y≥−w0 的样本分类为 C1 ,其余样本为 C2 。则两类的均值为:
此时,投影的类间均值距离为:
则投影后各类的类内方差为:
不妨把整个数据集的类内方差定义为 s21+s22 ,则Fisher准则为类间方差与类内方差的比值,如下:
简单改写为:
其中, SB 为类间协方差矩阵, SW 为类内协方差矩阵
对 J(w) 求导并令导数为0可得:
调整后
这个结果就是Fisher线性判别函数,它是对数据投影方向的一个选择,可用于构建最开始的判别函数。
值得注意的是,最小平方误差是Fisher准则的一个特例,具体证明书上有写这里省略
现在将二分类的情况推广到多分类,假设输入空间的维度D大于类别数量K(不然都没法投影),引入 D′ 个线性特征 yk=wTkx ,其中 k=1,...,D′ 。则用向量形式表示:
其中,矩阵 W 的列为权向量 {wk}
此时,有
其中
注意,这里全部都是原有特征空间上的处理
现在需要找到类间协方差矩阵的推广,先考虑整体的协方差矩阵
其中,m为全体数据的均值
这个整体的协⽅差矩阵可以分解为类内协⽅差矩阵,加上另⼀个矩阵 SB ,它可以看做类间协⽅差矩阵。
其中
现在,考虑投影空间上定义类似的矩阵
其中
最后可以构建对应的Fisher准则,有
注意,可以通过理论推导证明,这种方法不能找到多于K-1个投影特征,这也是为什么输入空间维度D必须大于类别数量K的原因
这个模型中,输⼊向量 x ⾸先使⽤⼀个固定的⾮线性变换得到⼀个特征向量 ϕ(x) ,这个特征向量然后被⽤于构造⼀个⼀般的线性模型
其中,非线性激活函数 f 是阶梯函数
这里因为非线性激活函数是分段的,用最小平方误差准则运算繁琐,这里模型给出了感知机准则
显然,这个判别准则就是是预测结果与真实标签 t 的乘积,只有错分类的时候才为负,因此错分类时,准则产生的损失为正
可以采用随机梯度下降算法那求解:
生成模型将对类条件概率密度 p(x|Ck) 和类先验概率分布 p(Ck) 建模,然后使⽤这两个概率密度通过贝叶斯定理计算后验概率密度 p(Ck|x)
对于二分类而言,有
其中
而 σ 是logistic sigmoid函数
对于多分类的情形(分K类)
其中
这个其实是softmax的形式
首先假设类条件概率密度是高斯分布,然后假设所有类别协方差矩阵相同(只是为了简化运算和推导),则类条件概率如下:
根据引言推导的一般结论,可得
其中
对于K个类别的情形
其中
这里可以看出,无论是二分类还是多分类, a(x) 涉及到的都是x的线性函数,而原本高斯函数指数上是一个二次项,能去掉二次项的原因是协方差矩阵相同的假设,这会导致分布的椭圆形在方向上保持一致,是的分类平面为线性
这里主要分析二分类的情况,假设有一个数据集 {xn,tn} ,其中 n=1,...,N , tn=1 表示属于类别 C1 , tn=0 则属于类别 C2 。假设每个类别都服从高斯类条件概率,而且协方差矩阵相同,则有
构建似然函数,将是伯努利分布的形式
转化为对数似然函数,对各个参数分别求导并令导数为0可得
这里推导过程主要是分析清楚对数似然函数中包含各个参数的项分别是什么,然后逐一求解,推导过程省略了。这里主要想表达的是,各个后验概率的意义。 π 的似然解表示的是对应类别的样本所占的比例; μk 的似然解表示的是对应类别的特征向量的均值
这里就是说离散特征对比连续特征在结果上会有区别
考虑二元的特征值 xi∈{0,1} ,则如果特征向量是D维的,假设D维特征相互独立,则有
可以得到对应的结果
注意,无论输入是高斯分布的还是离散输入,后验概率都是线性模型与logistic sigmoid或者softmax激活函数给出的。
因为我们知道大部分的分布都可以写成指数族分布的形式,这里考虑指数族分布的情况下,后验概率的形式。
指数族分布的形式如下:
考虑 u(x)=x 的情况,有
那么,对于二分类,有
对于多分类,有
他们都是x的线性函数
生成式模型的过程是分别寻找类条件概率密度和类别先验,然后使⽤贝叶斯定理。而判别式模型的过程是直接最⼤化由条件概率分布 p(Ck|x) 定义的似然函数。
这里讨论的模型类似回顾问题的模型,采用固定的基函数,尽管基函数的存在可能会导致样本类别重叠区域的增加(增加了 p(Ck|x)≠1 的情况),但恰当地选择非线性变换能然后概率的建模过程变得简单
因为概率生成模型的形式告诉我们,后验概率可以写成logistic sigmoid嵌套线性模型的形式,因此我们从这个模型入手:
对于⼀个数据集 ϕn , tn ,其中 tn∈{0,1} 且 ϕn=ϕ(xn) ,并且 n=1,...,N ,似然函数可以写成
其中, t=(t1,...,tN)T 且 yn=p(C1|ϕn) 。去负对数后,形成交叉熵误差函数
求导可得:
这里,数据点n对导数的贡献是⽬标值和模型预测值之间的“误差” yn−tn 与基函数向量 ϕn 相乘。
最大似然求解的不足:
(1)产生严重过拟合;因为它的解的超平面为 σ=0 ,等价于 wTϕ=0 。因为是度量概率高低的,这个解会尽可能远的把数据集分成两类,这就导致 w 的大小趋于无穷大,因此函数在特征空间变得很陡峭,接近一个跳变得阶梯函数,是的后验概率满足 p(Ck|x)=1
(2)这种解法无法区分某个解优于另⼀个解,并且在实际应⽤中哪个解被找到将会依赖于优化算法的选择和参数的初始化,可以通过加入正则化项避免。
其实上面的最大似然方法无法得到解析解,因为logistic sigmoid是非线性函数,书中介绍了Newton-Raphson方法进行局部二次近似。
它的权值更新形式为:
其中, H 是Hessian矩阵,它的元素由 E(w) 关于 w 的二阶导数组成
因此,对于上面的logistic回归模型的交叉熵误差函数,有
其中, R 为 N×N 的对角矩阵,有:
因此,更新公式变为
其中, Z 是一个N维向量,有
由于权矩阵 R 不是常量,⽽是依赖于参数向量 w ,因此我们必须迭代地应⽤规范⽅程,每次使⽤新的权向量 w 计算⼀个修正的权矩阵 R ,所以这个算法被称为迭代重加权最⼩平⽅(iterative reweighted least squares, IRLS)
考虑多分类的情况,由生成式模型可知,它对应的后验概率是softmax的形式,即
其中
它对应的似然函数为:
其中, ynk=yk(ϕn) , T 是目标变量的 N×K 矩阵,元素为 tnk ,对上式取负对数,有
则
这里,梯度的形式和之前一样,为误差 (ynj−tnj) 与基函数 ϕn 的乘积。同样,它可以用迭代重加权最小平方算法求解。
对于由指数族分布描述的⼀⼤类的类条件概率分布,最终求出的后验类概率
为作⽤在特征变量的线性函数上的logistic(或者softmax)变换。但不是所有的类条件概率密度都可以写成这种形式,这一节给出了相应的例子。
回到一般的线性模型
其中, a=wTϕ
考虑噪声阈值模型,不妨按照下式设置目标值
参数 θ 从概率密度中抽取,则有
这里假设概率密度函数 p(θ) 是零均值、单位房差的高斯概率密度,则对应得到累积分布函数
这个累积分布函数被称为逆probit函数,它也可以写成
其中
基于probit激活函数的一般线性模型被称为prbit回归
这个函数的形状有点类似sigmoid,如下图,但是它比sigmoid对离群点更加敏感。原因是它存在参数的平方的形式,当出现离群点时,衰减速度类似 exp(−x2) ,而sigmoid则像 exp(−x) 的形式衰减(这里没看明白)
上面关于logistic回归的推导中,我们发现对数似然函数的导数都是一致的形式:误差 (yn−tn) 与基函数 ϕn 的乘积,其中 yn=wTϕn 。这一节将说明,如果⽬标变量的条件分布来⾃于指数族分布,对应的激活函数选为标准链接函数,那这个结论将具有一般性
考虑将指数族分布的假设应用于目标变量t
则可以得到 t 的条件均值 y
这里, y 与 η 相关,记作 η=ψ(y)
构建似然函数如下:
则对应对数似然函数关于参数 w 的导数如下:
其中 an=wTϕn , yn=f(an) ,注意,这里意味着 f 是激活函数, f−1 是链接函数。所以
因此, f(ψ(y))=y ,故 f′(ψ)ψ′(y)=1 ,由于 a=f−1(y) ,则 a=ψ ,所以 f′(a)ψ′(y)=1 。最终,误差函数梯度可以转化为:
这是一种简单而且广泛使用的近似框架。它利用泰勒展开的技术,将一个高斯近似为未知的概率分布形式
先考虑单一连续变量z的情况,假设分布 p(z) 定义为
其中, Z=∫f(z)dz 是归一化系数,一般假设未知。拉普拉斯⽅法的⽬标是寻找⼀个⾼斯近似 q(z) ,它的中⼼位于 p(z) 的众数的位置。
首先,我们寻找 p(z) 的众数,即找一个点 z0 ,使得 p′(z0)=0 ,也就是 f′(z0)=0
因为高斯分布的对数是变量的二次函数,下面不妨考虑 l