关闭

Pattern Recognition and Machine Learning 第四章 线性分类模型

标签: 模式识别机器学习
316人阅读 评论(0) 收藏 举报
分类:

标签: 机器学习


线性分类模型

分类的目标是将输入变量 x 分到 K 个离散的类别Ck中的某一类。线性分类模型中决策面是x的线性函数,为 D 维输入空间中的 (D − 1) 维超平面。

采用决策论分类时,也是要先推断(即训练学习)再做决策。有三种方法得到决策:

  1. 判别函数,不用概率,直接定义函数进行分类
  2. 生成式法p(x,Ck)p(x)p(x|Ck)p(Ck|x)
  3. 判别式法,直接从数据求p(Ck|x)

判别函数

将x分类到Ck的映射函数,只讨论线性判别函数。

区别两类

y(x⃗ )=wTx⃗ +w0{0<0x⃗ C1x⃗ C2

分界面y(x⃗ )=0,其中w0决定了分界面与原点的距离为w0||w||

区别多类

区别K类,若分界面是区分A和A¯的,则要K-1个分界面;若分界面是区别A和B的,需要K(K1)2个分界面。但都会出现无法区分的区域。

故规定K类判别函数,由K个线性函数组成

yk(x⃗ )=wTkx⃗ +wk0{>yj(x⃗ )elsej,xCkxCk

yk(x⃗ )yj(x⃗ )两两确定一个D-1维超平面

(wkwj)Tx⃗ +(wk0wj0)=0
且平面是单连通和凸的。(可以通过在平面上任取两点,两点连线上的点一定在该平面上来证明)

Fisher线性判别法

选择已经分好类的点,对每一类的点求一个均值作为这一类的特征,如m⃗ 1,m⃗ 2。要区分两类时,就找一个单位向量w使得wT(m⃗ 2m⃗ 1)最大,则可以尽可能地将两类分开。

也有可能两个类别在原始二维空间中x⃗ 1,x⃗ 2可以完美地被分开,但是当投影到连接它们的均值的直线上时,就有了一定程度的重叠。如果类概率分布的协方差矩阵与对角化矩阵差距较大,那么这种问题就会出现。这也是因为降维以后信息丧失导致的。

Fisher提出的思想是最大化一个函数,这个函数能够让类均值的投影分开得较大,同时让每个类别内部的方差较小,从而最小化类别的重叠。

将D维x投影到一维y,y=wTx⃗ ,类内均值为m⃗ =ix⃗ iN,投影后类内方差为s2=i(yim)2.选择投影向量w后判别函数

J(w)==(m2m1)2s21+s22=wTSBwwTSWw
其中SB为类间协方差(Between-class),SW为类内协方差(within-class)
SB=(m⃗ 2m⃗ 1)(m⃗ 2m⃗ 1)T
SW=xiC1(x⃗ im⃗ 1)(x⃗ im⃗ 1)T+xiC2(x⃗ im⃗ 2)(x⃗ im⃗ 2)T

对判别函数求导,得最大化条件为
(wTSBw)SWw=(wTSWw)SBw
其中括号内的都为标量,则
wS1W(m⃗ 2m⃗ 1)

该结果被称为Fisher线性判别函数( Fisher linear discriminant ),虽然严格来说它并不是一个判别函数,而是对于数据向一维投影的方向的一个具体选择。然而投影的数据可以接下来被用于构建判别函数。

对于多分类的 Fisher 判别函数,见书…


概率生成式模型

对类条件概率密度p(x|Ck)和类先验概率分布p(Ck) 建模,然后使用这两个概率密度通过贝叶斯定理计算后验概率密度 p(Ck|x)

常用函数σ(a),logistic sigmoid函数

σ(a)=11+exp(a)
是个挤压函数,把无穷大定义域缩小到[0,1]。
对于二类,代入
a=lnp(x|C1)p(C1)p(x|C2)p(C2)
p(x|Ck)=σ(a)

对于多类,代入
ak=ln(p(x|Ck)p(Ck))
p(Ck|x)=exp(ak)jexp(aj)
即为归一化的指数函数,也是softmax函数,为max函数的一个平滑版本。当有相对特大的ak时,有p(Ck)=1.

连续变量

假设各个类别的协方差矩阵相同,p(x|Ck)=(x|μk,Σ)

对于二元类,p(C1|x)=σ(wTx+w0)
对于多类,ak(x)=wTkx+wk0,也可以划到类似于二元类的形式。

求得的决策边界对应于后验概率 p(Ck|x) 为常数的决策面,因此由 x 的线性函数给出,从而决策边界在输入空间是线性的。先验概率密度p(Ck)只出现在偏置参数 w0 中,因此先验的效果是平移决策边界,即平移后验概率中的常数轮廓线。

如果不假设各个类别的协方差矩阵相同,允许每个类条件概率密度p(Ck|x)有自己的协方差矩阵Σk,那么之前二次项消去的现象不会出现,从而我们会得到x的二次函数,这就引出了二次判别函数。在分界面上有明显的线性和非线性的差别。

高斯分布在等高线图中,若协方差矩阵是任意的,则呈任意方向的椭圆形状;若为对称矩阵,则呈长轴与x轴平行的椭圆形;若为对角矩阵,则为圆形。(前面貌似有看到这个性质)

离散变量

每个变量有2种取值0或1,做出朴素贝叶斯1(naive Bayes)的假设,特征值被看成相互独立的,以类别Ck为条件。若有D个数据,得到

p(x|Ck)=Di=1μxiki(1μki)1xi
其中对于每个类别,都有 D 个独立的参数。代入ak(x)
ak(x)=i=1D{xiln μki+(1xi)ln(1μki)}+ln p(Ck)
是输入变量的线性函数,结果相似。

如果不知道先验类分布和条件密度怎么办?
由数据学习联合概率密度分布P(x,Ck),边缘化求出来。


概率判别式模型

显式地使用一般的线性模型的函数形式,然后使用最大似然法直接确定它的参数。优点是只需要调节更少的参数。

logistic 回归2

使用统计学的术语,这个模型被称为logistic回归,但这是一个分类模型而不是回归模型。

C1的后验概率可以写成作用在特征向量ϕ的线性函数上的 logistic sigmoid 函数的形式,即

p(C1|ϕ)=y(ϕ)=σ(wTϕ)
使用最大似然方法来确定参数,对于一个数据集ϕn,tn,tn{0,1}ϕn=ϕ(xn),yn=p(C1|ϕn),似然为
p(t|w)=ΠNn=1ytnn(1yn)1tn
求导为取似然函数的负对数的方式,定义一个误差函数,产生了交叉熵(cross-entropy)误差函数,形式为
E(w)=ln p(t|w)=n=1N{tnln yn+(1tn)ln(1yn)}
为凸函数,有最小值。求出参数w即可。

缺点:最大似然方法对于线性可分的数据集会产生严重的过拟合现象。通过引入先验概率,然后寻找 w 的MAP解,或通过给误差函数增加一个正则化项,这种奇异性就可以被避免。

对于多类,类似于离散多元变量的推导,再结合前面的softmax函数,求最大似然。


贝叶斯logistic回归

(无风不起浪,并且好饿……)

对logistic回归做贝叶斯推断是不可行的。

步骤如下:

  1. 确认一个先验形式,如高斯分布
  2. 对w的后验做Laplace近似,得到近似的高斯分布
  3. 用反probit函数近似logistic sigmoid得到预测分布
  4. 给定决策后得到预测
    (+_+)

  1. 对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。参考文章,朴素贝叶斯分类
  2. 海哥的作文来了,Logistic回归和梯度上升算法
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45632次
    • 积分:1208
    • 等级:
    • 排名:千里之外
    • 原创:72篇
    • 转载:2篇
    • 译文:1篇
    • 评论:41条
    最新评论