标签: 机器学习
线性分类模型
分类的目标是将输入变量 x 分到 K 个离散的类别
Ck
中的某一类。线性分类模型中决策面是x的线性函数,为 D 维输入空间中的 (D − 1) 维超平面。
采用决策论分类时,也是要先推断(即训练学习)再做决策。有三种方法得到决策:
- 判别函数,不用概率,直接定义函数进行分类
- 生成式法:
∑p(x,Ck)→p(x)→p(x|Ck)→p(Ck|x)
- 判别式法,直接从数据求
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(K−1)2
个分界面。但都会出现无法区分的区域。
故规定K类判别函数,由K个线性函数组成
yk(x⃗ )=wTkx⃗ +wk0{>yj(x⃗ )else∀j,x∈Ckx∉Ck
yk(x⃗ )和yj(x⃗ )
两两确定一个D-1维超平面
(wk−wj)Tx⃗ +(wk0−wj0)=0
且平面是单连通和凸的。(可以通过在平面上任取两点,两点连线上的点一定在该平面上来证明)
Fisher线性判别法
选择已经分好类的点,对每一类的点求一个均值作为这一类的特征,如
m⃗ 1,m⃗ 2
。要区分两类时,就找一个单位向量w使得
wT(m⃗ 2−m⃗ 1)
最大,则可以尽可能地将两类分开。
也有可能两个类别在原始二维空间中
x⃗ 1,x⃗ 2
可以完美地被分开,但是当投影到连接它们的均值的直线上时,就有了一定程度的重叠。如果类概率分布的协方差矩阵与对角化矩阵差距较大,那么这种问题就会出现。这也是因为降维以后信息丧失导致的。
Fisher提出的思想是最大化一个函数,这个函数能够让类均值的投影分开得较大,同时让每个类别内部的方差较小,从而最小化类别的重叠。
将D维x投影到一维y,
y=wTx⃗
,类内均值为
m⃗ =∑ix⃗ iN
,投影后类内方差为
s2=∑i(yi−m)2
.选择投影向量w后判别函数
J(w)=类间方差类内方差=(m2−m1)2s21+s22=wTSBwwTSWw
其中
SB
为类间协方差(Between-class),
SW
为类内协方差(within-class)
SB=(m⃗ 2−m⃗ 1)(m⃗ 2−m⃗ 1)T
SW=∑xi∈C1(x⃗ i−m⃗ 1)(x⃗ i−m⃗ 1)T+∑xi∈C2(x⃗ i−m⃗ 2)(x⃗ i−m⃗ 2)T
对判别函数求导,得最大化条件为
(wTSBw)SWw=(wTSWw)SBw
其中括号内的都为标量,则
w∝S−1W(m⃗ 2−m⃗ 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,做出朴素贝叶斯(naive Bayes)的假设,特征值被看成相互独立的,以类别
Ck
为条件。若有D个数据,得到
p(x|Ck)=∏Di=1μxiki(1−μki)1−xi
其中对于每个类别,都有 D 个独立的参数。代入
ak(x)
有
ak(x)=∑i=1D{xiln μki+(1−xi)ln(1−μki)}+ln p(Ck)
是输入变量的线性函数,结果相似。
如果不知道先验类分布和条件密度怎么办?
由数据学习联合概率密度分布
P(x,Ck)
,边缘化求出来。
概率判别式模型
显式地使用一般的线性模型的函数形式,然后使用最大似然法直接确定它的参数。优点是只需要调节更少的参数。
logistic 回归
使用统计学的术语,这个模型被称为logistic回归,但这是一个分类模型而不是回归模型。
C1
的后验概率可以写成作用在特征向量
ϕ
的线性函数上的 logistic sigmoid 函数的形式,即
p(C1|ϕ)=y(ϕ)=σ(wTϕ)
使用最大似然方法来确定参数,对于一个数据集
ϕn,tn,其中tn∈{0,1}且ϕn=ϕ(xn),yn=p(C1|ϕn)
,似然为
p(t|w)=ΠNn=1ytnn(1−yn)1−tn
求导为取似然函数的负对数的方式,定义一个误差函数,产生了
交叉熵(cross-entropy)误差函数,形式为
E(w)=−ln p(t|w)=−∑n=1N{tnln yn+(1−tn)ln(1−yn)}
为凸函数,有最小值。求出参数w即可。
缺点:最大似然方法对于线性可分的数据集会产生严重的过拟合现象。通过引入先验概率,然后寻找 w 的MAP解,或通过给误差函数增加一个正则化项,这种奇异性就可以被避免。
对于多类,类似于离散多元变量的推导,再结合前面的softmax函数,求最大似然。
贝叶斯logistic回归
(无风不起浪,并且好饿……)
对logistic回归做贝叶斯推断是不可行的。
步骤如下:
- 确认一个先验形式,如高斯分布
- 对w的后验做Laplace近似,得到近似的高斯分布
- 用反probit函数近似logistic sigmoid得到预测分布
- 给定决策后得到预测
(+_+)