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

标签: 机器学习


线性分类模型

分类的目标是将输入变量 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
且平面是单连通和凸的。(可以通过在平面上任取两点,两点连线上的点一定在该平面上来证明)

扫描二维码关注公众号,回复: 893782 查看本文章

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回归和梯度上升算法

猜你喜欢

转载自blog.csdn.net/danliwoo/article/details/54004625