PRML学习笔记---线性分类模型(生成模型 & 判别模型)

本文深入探讨了逻辑回归模型的原理及应用,包括二分类问题的解决方法、类后验概率的建模过程,以及如何通过最大似然估计求解模型参数。此外,还介绍了两种高效的求解算法——梯度下降法和迭代再加权最小二乘法。

本偏笔记主要针对线性分类模型中的logistic regression 以及 multiclass logistic regression

Logistic Regression Model

逻辑回归模型是针对二类的分类模型,本质上其建模了类的后验概率

1.其由来(Probabilistic Generative Models)

根据贝叶斯公式,类的后验概率为:

p(C1|x)=p(x|C1)p(C1)p(x|C2)p(C2)+p(x|C1)p(C1)(1.1)(1.1)p(C1|x)=p(x|C1)p(C1)p(x|C2)p(C2)+p(x|C1)p(C1)

假设我们定义如下一个式子:
a=lnp(x|C1)p(C1)p(x|C2)p(C2)(1.2)(1.2)a=lnp(x|C1)p(C1)p(x|C2)p(C2)

那么恰有:
σ(a)=11+exp(a)=p(C1|x)(1.3)(1.3)σ(a)=11+exp(−a)=p(C1|x)

也就是说,当我们做了式(1.2)(1.2)这样一个特殊的变量替换or换元后,类的后验概率可以用logistic sigmoid建模。实际上,我们知道logistic regression模型在做决策时:

y=C1,y>0.5C2,y<0.5randomGuess,y==0.5(1.4)(1.4)y={C1,y>0.5C2,y<0.5randomGuess,y==0.5

而当逻辑回归模型当输出为0.5时,也就是a=lnp(x|C1)p(C1)p(x|C2)p(C2)=lnp(C1|x)p(x)p(C2|x)p(x)=lnp(C1|x)p(C2|x)=0.5a=lnp(x|C1)p(C1)p(x|C2)p(C2)=lnp(C1|x)p(x)p(C2|x)p(x)=lnp(C1|x)p(C2|x)=0.5, 换言之两类当后验概率相等时,无法做出决策。

2.其求解(Maximum likelihood)

如果输入变量是连续的

假设类条件概率密度(class-conditional distribution)服从高斯分布,并且两类的协方差一致。在这样的前提假设下,据式(1.2)(1.2)可化为

a=wTx+w0(2.1)(2.1)a=wTx+w0

其中
w=Σ1(μ1μ2)(2.2)(2.2)w=Σ−1(μ1−μ2)

w0=12μT1Σ1μ1+12μT2Σ1μ2+lnp1p2(2.3)(2.3)w0=−12μ1TΣ−1μ1+12μ2TΣ−1μ2+lnp1p2

则式(1.3)(1.3)可化为
p(C1|x)=σ(a)=σ(wTx+w0)(2.4)(2.4)p(C1|x)=σ(a)=σ(wTx+w0)

其中μ1μ1μ2μ2分别为C1C1C2C2类分布的期望,ΣΣ 为分布的协方差。

也就是说在我们假定类条件密度分布服从高斯分布的前提下,最终类的后验概率是式(2.4)(2.4).可以看到最终的决策边界是线性超平面,也即wTx=0wTx=0

要求类的后验,可以先求类的先验和类的条件密度分布的参数,再由贝叶斯公式(等价于直接使用式(2.2)(2.2)(2.3)(2.3),(2.4)(2.4))。

假设当下训练数据集为{xn,tn}{xn,tn},且类别编码方式

tn=1,C10,elsetn={1,若为C10,else

那么完全数据的对数似然函数为:
lnp(t,X|π,μ1,μ2,Σ)=lni=1N[π(xn|μ1,Σ)]tn[π(xn|μ2,Σ)]1tn(2.5)(2.5)lnp(t,X|π,μ1,μ2,Σ)=ln∏i=1N[πN(xn|μ1,Σ)]nt[πN(xn|μ2,Σ)]1−tn

求解可得:
μ1=1N1i=1Ntnxn(2.6)(2.6)μ1=1N1∑i=1Ntnxn

μ2=1N2i=1N(1tn)xn(2.7)(2.7)μ2=1N2∑i=1N(1−tn)xn

Σ=S=N1NS1+N2NS2(2.8)(2.8)Σ=S=N1NS1+N2NS2

其中
Si=1NinCi(xnμ1)(xnμ1)T(2.9)(2.9)Si=1Ni∑n∈Ci(xn−μ1)(xn−μ1)T

也就是说利用最大似然求解,类条件密度分布的期望为该类的数据的均值,而协方差则为各类协方差的加权平均

3.换个角度求解(Probabilistic Discriminative Models)

实际上,除了利用最大似然求解先验以及类的条件密度分布的参数后,隐式地利用式(2.2),(2.3),(2.4)(2.2),(2.3),(2.4)求解外,还有另一种求法。既然我们已经知道了类的后验概率可以在一定的假设下写作式(2.4)(2.4),那么此时我们可以直接利用训练数据通过最大似然显式地求解参数www0w0

3.1 梯度下降

要利用随机梯度下降或者批梯度下降求解,我们需要获得的便是梯度

假设我们手中的训练集为{ϕn,tn}{ϕn,tn},此处ϕn=ϕ(xn)ϕn=ϕ(xn)可视为对原始输入做了特征提取。那么似然函数为:

p(t|w)=n=1Nytnn{1yn}1tn(3.1)(3.1)p(t|w)=∏n=1Nyntn{1−yn}1−tn

其中
yn=p(C1|ϕn)=σ(wTϕn)(3.2)(3.2)yn=p(C1|ϕn)=σ(wTϕn)

那么损失函数便可定义为:
E(w)=lnp(t|w)=n=1N{tnlnyn+(1tn)ln(1yn)}(3.3)(3.3)E(w)=−lnp(t|w)=−∑n=1N{tnlnyn+(1−tn)ln(1−yn)}

注意到这个误差函数叫交叉熵损失函数

其关于参数ww的导数为:

E(w)=n=1N(yntn)ϕn(3.4)(3.4)∇E(w)=∑n=1N(yn−tn)ϕn

3.2迭代再加权最小二乘法

对于参数ww 的求解除了一般的梯度下降,我们还可以使用更有效的迭代算法,这便是IRLS(IteRative reweighted least squares)。这个算法是基于Newton-Raphson Iterative optimization scheme:

w(new)=w(old)H1E(w)(3.5)(3.5)w(new)=w(old)−H−1∇E(w)

其中HH为误差函数关于参数ww的二阶导

这是一种局部二次近似,我们可以从线性回归模型来看看:
在线性回归模型中,我们知道对数似然函数是参数ww的二次函数,其有解析解(Normal Equation),但是在利用梯度下降求解的时候,我们是逐步去逼近这个最优解(解析解)。但是如果我们用局部二次近似,便可以一步到位

E(w)=n=1N(wTϕntn)ϕn=ΦTΦwΦTt∇E(w)=∑n=1N(wTϕn−tn)ϕn=ΦTΦw−ΦTt

E(w)=n=1NϕnϕTn=ΦTΦ∇∇E(w)=∑n=1NϕnϕnT=ΦTΦ

w(new)=w(old)(ΦTΦ)1{ΦTΦwoldΦTt}=(ΦTΦ)1ΦTt(3.6)(3.6)w(new)=w(old)−(ΦTΦ)−1{ΦTΦwold−ΦTt}=(ΦTΦ)−1ΦTt

那么对于logistic regression而言:

E(w)=n=1N(yntn)ϕn=ΦT(yt)(3.7)(3.7)∇E(w)=∑n=1N(yn−tn)ϕn=ΦT(y−t)

E(w)=H=n=1Nyn(1yn)ϕnϕTn=ΦTRΦ(3.8)(3.8)∇∇E(w)=H=∑n=1Nyn(1−yn)ϕnϕnT=ΦTRΦ

其中RR是一个对角阵,Rnn=yn(1yn)Rnn=yn(1−yn)
w(new)=w(old)(ΦTRΦ)1ΦT(yt)=(ΦTRΦ)1ΦTRZ(3.9)(3.9)w(new)=w(old)−(ΦTRΦ)−1ΦT(y−t)=(ΦTRΦ)−1ΦTRZ

其中
Z=ΦwoldR1(yt)(3.10)(3.10)Z=Φwold−R−1(y−t)

直接求解的好处

Multi-class logistic regression

More general

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值