PRML学习笔记—线性回归模型
说句题外话,做笔记是个好习惯(快则慢,慢则无,尤其在今下这个快餐式的社会,真的越浮躁越不能沉淀下来)。这本书在手里已经两年多了,这一次才是真真地好好读了,好好推了公式,好好去贯穿理解了,做这个笔记的初衷一是为了让自己养成一个好习惯,二是方便自己以后查阅,三希望共同学习PRML的同学能够相互交流共同进步:
线性回归模型
回归问题是机器学习中监督学习下的一个问题。
最简单的线性回归模型:
即是输入样本的特征的线性组合。它即是参数的线性函数,也是样本的线性函数。
这样的模型局限性非常大,不够灵活。
其实线性回归模型的“线性“在于模型是参数的线性函数。
更一般的线性回归模型(引入基函数Basis Function):
其中基函数可以看作是对原始样本的某种预处理或特征提取。这样的回归模型更为灵活,比如当
基函数取ϕj(X)=Xjϕj(X)=Xj(这里假设X是一维),我们知道不同次幂的弯曲程度不同,那么这些基函数的加权组合便可以形成曲线。
常见的一些基函数包括:
. Gaussian Basis Function:
. Sigmoidal Function
其中:
. tanh function
其实阿墨也不知道一般基函数是怎么选取的…
线性回归模型的求解
模型已经有了,那么奔向幸福生活的道路还远吗?哈哈哈,终于到了模型学习部分,也就是参数求解。这里呢,首先是频率学派的一贯风格—最大似然(当然PRML这本书是贝叶斯学派的,所以肯定会一步步递进到那里的,别急,待我们弄清楚一切来龙去脉)
最大似然
首先引入高斯白噪声ϵ∼(ϵ|0,β−1)ϵ∼N(ϵ|0,β−1),那么待预测的目标tt:
那么似然函数(假设数据i.i.d即独立同分布):
自然地,对数自然函数:
其中 ED(w)=12∑Nn=1{tn−wTϕ(xn)}2ED(w)=12∑n=1N{tn−wTϕ(xn)}2
有没有发现: 最大似然( maxlnp(t|w,β)maxlnp(t|w,β) )就等价于最小二乘( minED(w)minED(w) ),当然前提是噪声是一个高斯白噪声
当然具体求解,既可以利用 normal Equationsnormal Equations :
其中Φ∈RN∗MΦ∈RN∗M为设计矩阵.
也可以用least-mean-squares 即LMS (也即使用随机梯度下降stochastic gradient descent algorithm最小化损失函数ED(w)ED(w) )
用随机梯度下降可以序列学习(适应数据以流的形式到来的情形)
Regularized Least squares
最大似然(or 最小二乘)完全从数据出发,所以会陷入一个非常不好的地方就是过拟合(Overfitting)。为了控制过拟合,最简单的便是在目标上关于模型参数的惩罚项Ew(w)Ew(w) 去限制模型的复杂度:
如:Ew(w)=∑Mj=1|wj|qEw(w)=∑j=1M|wj|q
常见的形式有一范和二范等:

上图很好地说明了一范和二范两种惩罚项的作用,其中一范倾向于求得稀疏解(即参数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|t)∝p(w)∗p(t|w)p(w|t)∝p(w)∗p(t|w):
其中
仔细观察SnSn和mnmn:
首先高斯分布的众数也就是它的期望,那么最大后验wMAP=mNwMAP=mN。当先验假设S0=α−1IS0=α−1I且α→0α→0,也就是说先验分布几乎接近于均匀分布,且取值范围非常广,此时我们可以看到mnmn就是wMLwML。而当没有数据时,mnmn就是m0m0。
书中这幅可视化的图便是对贝叶斯学习最好的阐述,也是对贝叶斯序列学习的最直观的认识(下一批数据到来时,先前的后验可视为先验)。
贝叶斯回归也可以用序列学习求解哦
那么我们再来看看后验分布的对数化:
这里假设m0=0m0=0,S0=α−1IS0=α−1I
有没有似曾相识。没有,没关系,让阿墨来一语点醒梦中人:这不就是带了正则惩罚项的目标函数吗:E(w)=ED(w)+λEw(w)=12∑Nn=1{tn−wTϕ(xn)}2+α2wTwE(w)=ED(w)+λEw(w)=12∑n=1N{tn−wTϕ(xn)}2+α2wTw
也就是说最大化后验就等价于最小化带正则惩罚的损失函数,且λ=αβλ=αβ。也就是说贝叶斯回归里已经考虑了对模型复杂度进行惩罚。而这个正则化因子λλ则是由ββ和αα决定。
很自然地,我们也会想问这个超参数ββ和αα又是怎么来的呢。难道和λλ一样人为设定几组,然后用额外的数据来进行比较,那这个似乎和Regularized Least squares就没啥区别了,怎么体现出贝叶斯的优势呢?别急,让我们进入到贝叶斯模型比较或模型证据…
模型证据
假设有L个模型,并且数据来自于其中某个模型(未知,我们不确定是哪一个),我们的不确定性仅能通过先验表达,另一方面数据也会给出一部分证据,那么我们关注的则是模型的后验:
在我们对模型一无所知的时候,一般为了不引入偏差,会假设所有模型都是等可能的,那么此时完全就由数据说话了,完全由似然来决定哪个模型更可能,此时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 )。
当然按照贝叶斯的原则,一旦我们知道了模型的后验,此时预测分布便为:
也就是各个模型预测分布的加权平均。
可以不这样做吗,当然可以。一个简单的近似,用最可能的模型的预测分布进行预测,也就是贝叶斯的模型选择:所谓最可能的模型,那就是模型证据或说边缘似然函数最大的那个。我们再来看看这个蒙着面纱的模型证据到底有什么作用
模型证据:
假设该模型下,后验集中分布在某一个值处(peak),同时先验集中均匀分布在ΔwpriorΔwprior范围内,那么
简单的近似下(假设模型有M个可调参数):
显然模型越复杂,该式中的第一项会很高(越复杂对数据的拟合会越好),但是后一项会越负得越高(ΔwpriorΔwprior >ΔwposteriorΔwposterior, ∝M∝M);若模型复杂度越低,则反之。显然最优的模型复杂度,需要在这两项上进行折衷,由最优的模型证据决定。
哇,也就是说贝叶斯的模型比较框架下,模型证据或者说这个边缘似然函数会favor支持中等复杂度的模型,通过最大化模型证据,我们便可以一并求得最优复杂度模型的参数ww和超参数ββ,αα。
说了这么多,接下来该是付出实际行动的时候了(举个实际的应用)。
最终建立的预测分布:
当然由于假设了必然有某个模型会占绝对优势(p(α,β|t)p(α,β|t)有一个peak在α̂ α^,β̂ β^),那么
而由于引入的超参数的超先验为均匀分布,那么这个α̂ ,β̂ )α^,β^)便是由最大化边缘似然也即模型证据求得。
似然:
先验:
则边缘似然:
最大化对数边缘似然求得:
其中:
显然这不是一个显式的解,需要迭代求解直至收敛。
题外,今天一起共读PRML的小伙伴说他觉得关于αα和ββ的求解有点子问题,阿墨才细看了下,似乎是奇怪,但现在还不知道为什么。苍天阿,到底为什么,为什么,为什么?待解救ing…
![]()
敲公式好麻烦,大家将就看下阿墨但草稿,书中求导结果只有前三项…不明白阿不明白