PRML学习笔记---线性回归模型

本文深入探讨了线性回归模型的基础概念及其在监督学习中的应用,详细讲解了从简单线性回归到引入基函数的更一般模型,并介绍了最大似然估计、正则化最小二乘法以及贝叶斯学习方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PRML学习笔记—线性回归模型

说句题外话,做笔记是个好习惯(快则慢,慢则无,尤其在今下这个快餐式的社会,真的越浮躁越不能沉淀下来)。这本书在手里已经两年多了,这一次才是真真地好好读了,好好推了公式,好好去贯穿理解了,做这个笔记的初衷一是为了让自己养成一个好习惯,二是方便自己以后查阅,三希望共同学习PRML的同学能够相互交流共同进步:

线性回归模型

回归问题是机器学习中监督学习下的一个问题。

最简单的线性回归模型:

y(x,w)=w0+w1x1+w2x2+...+wDxD=wTxy(x,w)=w0+w1x1+w2x2+...+wDxD=wTx

即是输入样本的特征的线性组合。它即是参数的线性函数,也是样本的线性函数。
这样的模型局限性非常大,不够灵活。

其实线性回归模型的“线性“在于模型是参数的线性函数。

更一般的线性回归模型(引入基函数Basis Function):

y(x,w)=w0+w1ϕ1(X)+w2ϕ2(X)+...+wM1ϕM1(X)=wTϕ(x)y(x,w)=w0+w1ϕ1(X)+w2ϕ2(X)+...+wM−1ϕM−1(X)=wTϕ(x)

其中基函数可以看作是对原始样本的某种预处理或特征提取。这样的回归模型更为灵活,比如当
基函数取ϕj(X)=Xjϕj(X)=Xj(这里假设X是一维),我们知道不同次幂的弯曲程度不同,那么这些基函数的加权组合便可以形成曲线。

常见的一些基函数包括:

. Gaussian Basis Function:

ϕj(x)=exp{(xμj)22s2}ϕj(x)=exp{−(x−μj)22s2}

. Sigmoidal Function
ϕj(x)=σ(xμjs)ϕj(x)=σ(x−μjs)

其中:
σ(α)=11+exp(α)σ(α)=11+exp(−α)

. tanh function

其实阿墨也不知道一般基函数是怎么选取的…

线性回归模型的求解

模型已经有了,那么奔向幸福生活的道路还远吗?哈哈哈,终于到了模型学习部分,也就是参数求解。这里呢,首先是频率学派的一贯风格—最大似然(当然PRML这本书是贝叶斯学派的,所以肯定会一步步递进到那里的,别急,待我们弄清楚一切来龙去脉)

最大似然

首先引入高斯白噪声ϵ(ϵ|0,β1)ϵ∼N(ϵ|0,β−1),那么待预测的目标tt:

p(t|x,w,β)=N(t|y(x,w),β1)

那么似然函数(假设数据i.i.d即独立同分布):

p(t|X,w,β)=n=1N(tn|wTϕ(xn),β1)p(t|X,w,β)=∏n=1NN(tn|wTϕ(xn),β−1)

自然地,对数自然函数:
lnp(t|w,β)=n=1Nln(tn|wTϕ(xn),β1)=N2lnβN2ln(2π)βED(w)ln⁡p(t|w,β)=∑n=1Nln⁡N(tn|wTϕ(xn),β−1)=N2ln⁡β−N2ln⁡(2π)−βED(w)

其中 ED(w)=12Nn=1{tnwTϕ(xn)}2ED(w)=12∑n=1N{tn−wTϕ(xn)}2

有没有发现: 最大似然( maxlnp(t|w,β)maxln⁡p(t|w,β) )就等价于最小二乘( minED(w)minED(w) ),当然前提是噪声是一个高斯白噪声

当然具体求解,既可以利用 normal Equationsnormal Equations

wML=(ΦTΦ)1ΦTtwML=(ΦTΦ)−1ΦTt

其中ΦRNMΦ∈RN∗M为设计矩阵.

也可以用least-mean-squaresLMS (也即使用随机梯度下降stochastic gradient descent algorithm最小化损失函数ED(w)ED(w) )

用随机梯度下降可以序列学习(适应数据以流的形式到来的情形)

Regularized Least squares

最大似然(or 最小二乘)完全从数据出发,所以会陷入一个非常不好的地方就是过拟合(Overfitting)。为了控制过拟合,最简单的便是在目标上关于模型参数的惩罚项Ew(w)Ew(w) 去限制模型的复杂度:

E(w)=ED(w)+λEw(w)E(w)=ED(w)+λEw(w)

如:Ew(w)=Mj=1|wj|qEw(w)=∑j=1M|wj|q
常见的形式有一范和二范等:
quote from PRML

上图很好地说明了一范和二范两种惩罚项的作用,其中一范倾向于求得稀疏解(即参数ww 的许多分量会为零,对应的基函数就不起作用,那么模型自然就简化了些)。

问题又来了,现在要寻得最优的模型(复杂度适中)的问题便转换为了寻求一个较好的超参数λλ, 而λλ 本身肯定是不能和参数ww一起寻得的,这样的话就为零了。一个比较典型的做法是留出一部分数据用做验证集来比较不同的λλ 。可是一来,这样数据利用率减小了,数据越少,噪声越突出,这样模型容易捕获到噪声,进而更容易过拟合,同时也增加了复杂度,时间消耗等(毕竟要k-fold cross-validation).

贝叶斯学习

贝叶斯线性回归既考虑了过拟合问题,也能自动地(在求解模型参数ww的同时)寻得最优复杂度,完全不需要留一部分数据出来对复杂度进行考量。真的是666啊,膜拜膜拜。
此外,还是得说一句,就阿墨当下对于贝叶斯派的理解,感觉就是对模型引入了一个不确定性(参数的概率建模。具体就是对模型参数有个先验概率假设p(w)p(w)(事前的偏好),这个先验加上似然p(t|w)p(t|w)就能得到模型参数的后验分布p(w|t)p(w|t)(数据经验事实和事前偏好的交互后的折衷)。不同的先验分布假设自然会导致不同的后验分布估计。

先验分布假设(共轭先验):

p(w)=(w|m0,S0)p(w)=N(w|m0,S0)

后验p(w|t)p(w)p(t|w)p(w|t)∝p(w)∗p(t|w)
p(w|t)=(w|mN,SN)p(w|t)=N(w|mN,SN)

其中
mN=SN(S10m0+βΦTt)mN=SN(S0−1m0+βΦTt)

S1N=S10+βΦTΦSN−1=S0−1+βΦTΦ

仔细观察SnSnmnmn
首先高斯分布的众数也就是它的期望,那么最大后验wMAP=mNwMAP=mN。当先验假设S0=α1IS0=α−1Iα0α→0,也就是说先验分布几乎接近于均匀分布,且取值范围非常广,此时我们可以看到mnmn就是wMLwML。而当没有数据时,mnmn就是m0m0

quote from PRML
书中这幅可视化的图便是对贝叶斯学习最好的阐述,也是对贝叶斯序列学习的最直观的认识(下一批数据到来时,先前的后验可视为先验)。

贝叶斯回归也可以用序列学习求解哦

那么我们再来看看后验分布的对数化:
这里假设m0=0m0=0,S0=α1IS0=α−1I

lnp(w|t)=β2n=1N{tnwTϕ(xn)}2α2wTw+constln⁡p(w|t)=β2∑n=1N{tn−wTϕ(xn)}2−α2wTw+const

有没有似曾相识。没有,没关系,让阿墨来一语点醒梦中人:这不就是带了正则惩罚项的目标函数吗:E(w)=ED(w)+λEw(w)=12Nn=1{tnwTϕ(xn)}2+α2wTwE(w)=ED(w)+λEw(w)=12∑n=1N{tn−wTϕ(xn)}2+α2wTw

也就是说最大化后验就等价于最小化带正则惩罚的损失函数,且λ=αβλ=αβ。也就是说贝叶斯回归里已经考虑了对模型复杂度进行惩罚。而这个正则化因子λλ则是由ββαα决定。

很自然地,我们也会想问这个超参数ββαα又是怎么来的呢。难道和λλ一样人为设定几组,然后用额外的数据来进行比较,那这个似乎和Regularized Least squares就没啥区别了,怎么体现出贝叶斯的优势呢?别急,让我们进入到贝叶斯模型比较或模型证据…

模型证据

假设有L个模型,并且数据来自于其中某个模型(未知,我们不确定是哪一个),我们的不确定性仅能通过先验表达,另一方面数据也会给出一部分证据,那么我们关注的则是模型的后验:

p(Mi|D)p(Mi)p(D|Mi)p(Mi|D)∝p(Mi)p(D|Mi)

在我们对模型一无所知的时候,一般为了不引入偏差,会假设所有模型都是等可能的,那么此时完全就由数据说话了,完全由似然来决定哪个模型更可能,此时p(D|Mi)p(D|Mi)也叫model evidence模型证据,也称为marginal likelihood边缘似然 ( p(D|Mi)=p(D,w|Mi)dwp(D|Mi)=∫p(D,w|Mi)dw )。
当然按照贝叶斯的原则,一旦我们知道了模型的后验,此时预测分布便为:
p(t|x,D)=i=1Lp(t|x,Mi,D)p(Mi|D)p(t|x,D)=∑i=1Lp(t|x,Mi,D)p(Mi|D)

也就是各个模型预测分布的加权平均。

可以不这样做吗,当然可以。一个简单的近似,用最可能的模型的预测分布进行预测,也就是贝叶斯的模型选择:所谓最可能的模型,那就是模型证据或说边缘似然函数最大的那个。我们再来看看这个蒙着面纱的模型证据到底有什么作用

模型证据:

p(D|Mi)=p(D,w|Mi)dw=p(D|w,Mi)p(w|Mi)dwp(D|Mi)=∫p(D,w|Mi)dw=∫p(D|w,Mi)p(w|Mi)dw

假设该模型下,后验集中分布在某一个值处(peak),同时先验集中均匀分布在ΔwpriorΔwprior范围内,那么

p(D)=p(D|w)p(w)dwp(D|wMAP)ΔwposteriorΔwpriorp(D)=∫p(D|w)p(w)dw≈p(D|wMAP)ΔwposteriorΔwprior

简单的近似下(假设模型有M个可调参数):
lnp(D)lnp(D|wMAP)+ln(ΔwposteriorΔwprior)lnp(D|wMAP)+Mln(ΔwposteriorΔwprior)ln⁡p(D)≈ln⁡p(D|wMAP)+ln⁡(ΔwposteriorΔwprior)≈ln⁡p(D|wMAP)+Mln⁡(ΔwposteriorΔwprior)

显然模型越复杂,该式中的第一项会很高(越复杂对数据的拟合会越好),但是后一项会越负得越高(ΔwpriorΔwprior >ΔwposteriorΔwposterior, M∝M);若模型复杂度越低,则反之。显然最优的模型复杂度,需要在这两项上进行折衷,由最优的模型证据决定。

哇,也就是说贝叶斯的模型比较框架下,模型证据或者说这个边缘似然函数会favor支持中等复杂度的模型,通过最大化模型证据,我们便可以一并求得最优复杂度模型的参数ww和超参数ββαα
说了这么多,接下来该是付出实际行动的时候了(举个实际的应用)。

最终建立的预测分布:

p(t|t)=p(t|w,β)p(w|t,α,β)p(α,β|t)dwdαdβp(t|t)=∭p(t|w,β)p(w|t,α,β)p(α,β|t)dwdαdβ

当然由于假设了必然有某个模型会占绝对优势(p(α,β|t)p(α,β|t)有一个peak在α̂ α^,β̂ β^),那么
p(t|t)p(t|t,α̂ ,β̂ )=p(t|w,β̂ )p(w|t,α̂ ,β̂ )dwp(t|t)≈p(t|t,α^,β^)=∫p(t|w,β^)p(w|t,α^,β^)dw

而由于引入的超参数的超先验为均匀分布,那么这个α̂ ,β̂ )α^,β^)便是由最大化边缘似然也即模型证据求得。
似然:
p(t|X,w,β)=n=1N(tn|wTϕ(xn),β1)p(t|X,w,β)=∏n=1NN(tn|wTϕ(xn),β−1)

先验:
p(w|α)=(w|0,α1I)p(w|α)=N(w|0,α−1I)

则边缘似然:

p(t|α,β)=p(t|w,β)p(w|α)dwp(t|α,β)=∫p(t|w,β)p(w|α)dw

最大化对数边缘似然求得:

α=γmTNmNα=γmNTmN

β=1Nγn=1N{tnmTNϕ(xn)}2β=1N−γ∑n=1N{tn−mNTϕ(xn)}2

其中:
γ=iλiα+λiγ=∑iλiα+λi

A=αI+βΦTΦA=αI+βΦTΦ

mN=βA1ΦTtmN=βA−1ΦTt

(βΦTΦ)ui=λiui(βΦTΦ)ui=λiui

显然这不是一个显式的解,需要迭代求解直至收敛。

题外,今天一起共读PRML的小伙伴说他觉得关于ααββ的求解有点子问题,阿墨才细看了下,似乎是奇怪,但现在还不知道为什么。苍天阿,到底为什么,为什么,为什么?待解救ing…这里写图片描述
敲公式好麻烦,大家将就看下阿墨但草稿,书中求导结果只有前三项…不明白阿不明白

话外

偏差方差分解来看模型复杂度(频率学派)

预测分布(完整的贝叶斯学习)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值