写在前面 本文是本人自学PRML过程中整理思路用,水平有限,如有错误请各位前辈及时指出,感激不尽…
x : 标量 x : 向量 X : 矩阵 ϕ: 函数,输入为一个样本的原始特征向量,输出为向量中的值的任意非线性组合 Φ : M 维向量,所有 ϕ 组成的向量(即每个样本经 ϕ 映射得到的新特征向量) Φ : N×M 矩阵,每个样本对应的 Φ 组成的矩阵
回归问题的目标:在给定 M 维输入变量 x 的情况下,预测一个或者多个连续目标(target)变量 t 的值。
考虑一个数据集 X={x1,...,xN}T,对应目标值 t={t1,...tN}
首先,我们要搞一个概率分布 p(t | x) 出来,并假设这些数据点是独立的从该分布中抽取的。来看线性回归:
简单线性回归 y(x,w)=w0+w1x1+w2x2+...+wDxD其中 x=(x1,...,xD)T 。
PRML里说:
通过将一组输入变量的非线性函数进行线性组合,我们可以获得一类更加有用的函数,被称为基函数(basis function)人话: 比如原来的每一个样本 x=(x1,...,xD)T ,我可以不直接输入 x1,x2... ,可以变成: x1,x21,x2,x22,x1x2... 形式不限(类比基变换)。
令 ϕj(x) 为第 j 列值,则变换后: y(x,w)=w0 ∑j=1M−1wjϕj(x)
ϕj(x) 被称为基函数(basis function)
参数 w0 为偏置参数(参考 y=ax+b 中的 b ,不同于统计学中的偏置),通常定义一个额外的基函数 ϕ0(x)=1,这时:
y(x,w)=∑j=0M−1wjϕj(x)=wTΦ(x)其中 w=(w0,...,wM−1)T,Φ=(ϕ0,...ϕM−1)T 。
实际应用中可能会对原始数据进行特称抽取,原始样本为向量 x ,特征向量就可以用 {ϕj(x)} 表示。关于基函数,PRML里还介绍有: * 高斯基函数 * sigmoid基函数 (怎么哪都有你sigmoid?黑人问号 * tanh函数 (logistic sigmoid的基友 * 傅立叶基函数 * 小波 … (Orz 不懂怎么选基,慢慢来吧)
现在假设:目标变量 t 由确定的函数y(x,w) 给出。 当然这么直接硬上有点僵硬,上高斯噪声,即:
t=y(x,w)+ϵ 其中 ϵ 是一个均值为0、精度(方差倒数)为 β 的高斯随机变量。则 t 的分布由条件分布 p(t |x,w,β) 给出:
p(t |x,w,β)=(t |y(x,w),β−1)可以看到,给定x时,t的分布是单峰的,一般实际数据更复杂一些,用单峰去拟合可能效果不会很好(也就是说即使是加了这么个噪声,也就比僵硬好那么一点,PRML后面会讲到混合条件高斯分布,可以描述多峰, = = 我还没看到…)
有了这个条件分布之后怎么办?当然希望似然函数越大越好(个人理解:背后的直觉是给定条件分布参数 X 后,应选择参数w,β使得到对应目标向量 t 的概率最大)。
似然函数(条件是各样本独立同分布):
p(t | X,w,β)=∏n=1N(tn | y(xn,w),β−1) 其中 y(xn,w)=wTΦ(xn) 则: p(t | X,w,β)=∏n=1N(tn | wTΦ(xn),β−1)想对此式求关于 w,β 的最大值,看着就想报警,不过先驱们已经给出了答案,取似然函数的对数(这里对数是单调函数,最大化某个函数的对数等价于最大化这个函数。原本想试着用convex optimization里的理论推导下,发现根本不会(捂脸….从新看吧),得:
ln p(t | X,w,β)==∑n=1Nln (tn | wTΦ(xn),β−1)N2ln β−N2ln 2π−β12∑n=1N{tn−wTΦ(xn)}2 注意,第三项就是传说中的sum-of-squares error function从这我才对之前不知道在哪看到的那句:
在条件高斯噪声分布的情况下,线性模型的似然函数的最大化等价于平方和误差函数的最小化。有了直观认识。
我们继续: 对对数似然函数求 w 的偏导(注意,我们要同时关于 w 和 β 来最大化该对数似然函数,但是在高斯分布的情况下, w 的解和 β 无关,因此我们可以先估计 wML ,再用 wML 求得 βML ):
∂ln p(t | X,w,β)∂w=β∑n=1N{tn−wTΦ(xn)}Φ(xn)T令其为0,可得:
∑n=1NtnΦ(xn)T=wT∑n=1NΦ(xn)Φ(xn)T wML=(ΦTΦ)−1ΦTt这里 Φ 是 N×M 的矩阵(我在这里晕了好久,后来根据维度带进去算一下就豁然开朗,另见文章开头的符号对照表)
观察 (ΦTΦ)−1ΦT 是不是很熟悉,
Φ†≡(ΦTΦ)−1ΦT 矩阵 Φ 的Moore-Penrose伪逆矩阵。被看作逆矩阵概念对非方阵矩阵的推广。(如果 Φ 可逆,则 (ΦTΦ)−1=Φ−1(ΦT)−1,Φ†≡Φ−1 )同理可求得 βML 值:
1βML=1N∑n=1N{tn−wTMLΦ(xn)}2至此条件分布 p(t | X,w,β) 全部未知参数都已求得,我们就可以愉快的拿它进行预测了……吗?
…
故事远没有结束….
以上,我们使用的是最大似然估计,而最大似然估计的一个缺点就是容易过拟合。
一个比较极端的例子是:假定投掷一枚普通的硬币3次,每次都是正面朝上。一个经典的最大似然模型在估计硬币正面朝上的概率时,结果会是 1,表示所有未来的投掷都会是正面朝上。
我们来推导验证一下:
投掷一枚硬币3次应符合二项分布:
Bin(m | N,μ)=N!(N−m)!m!μm(1−μ)N−m 其中 N!(N−m)!m! 为归一化系数,跟 μ 无关,则似然函数正比于 μm(1−μ)N−m ,即最小化下式: p(m | N,μ)∝∏n=1mμm(1−μ)N−m 取对数: ∑n=1mln (μm(1−μ)N−m) 关于 μ 求导: m2μ−m(N−m)1−μ 令导数为零得: μ=m2mN
当扔三次都是正面向上时 m=N=3 则 μ=1 。
说明我们经过最大似然估计后得到的模型有那么点不靠谱。
怎么办 = =
小意思,看Andrew Ng 在 Coursera上机器学习课入坑,当然知道要引入正则项,但是…
他喵的课上的正则项不是长这样子吗?—— λ2wTw
好像不搭边啊老湿…
那么问题来了,正则项从何而来?不同分布应该怎么选?
来看看贝叶斯方法(下一文可看到,这仅仅是贝叶斯方法中的一步)
贝叶斯定理:
p(w | )=p( | w)p(w)p(w) 背后直觉:观测到 后,通过后验概率 p(w | ) 估计 w 的不确定性。其中 p( | w) 被称为似然函数
则贝叶斯定理可表述为:
posterior∝likelihood×prior贝叶斯定理跟正则化有什么关系?
回头再看上面的主线问题,现在引入系数 w 的先验分布。为了简单(然而此时我并不知道这句为了简单就选择了高斯分布作为先验分布是几个意思!——捂脸…),设为下面形式的高斯分布:
p(w | α)=(w | 0,α−1I)=⟮α2π⟯M+1xexp{−α2wTw}根据贝叶斯定理, w 的后验分布正比于似然函数和先验分布的乘积:
p(w | X,t,α,β)∝p(t | X,w,β)p(w | α)给定数据集,通过寻找最可能的 w 值(即最大化后验概率)来确定 w ——最大后验(maximum posterior),简称MAP
已知:
ln p(t | X,w,β)=N2ln β−N2ln 2π−β12∑n=1N{tn−y(xn,w)}2ln p(w | α)=M+12ln (α2π)−α2wTw 则最大化后验概率就是最小化下式(与 w 无关项都已去掉): β2∑n=1N{y(xn,w)−tn}2+α2wTw
这不就是那个熟悉的 λ2wTw 吗?!( λ 可看成调节两项比例的系数,即 λ=αβ )
原来加上先验概率跟正则化有关!
到这里又有一系列新疑问:
本例的先验分布是高斯分布,对原数据的假设也是高斯分布,这有什么联系?或者原数据是其他分布时,先验分布如何确定?先验分布的不同对正则化项的影响又是什么?即使选定了先验分布的类型,那个超参也是要调的呀!怎么调啊喂!是不是也可以这么说,我需要“拟合“正则项或是先验分布的“分布“,使我可以根据不同的数据集的分布“计算出“不同的先验分布,而现在我只有高斯分布这样一个“样本“,陷入了“过拟合“,而我真正需要的是“泛化“能力。
下面来看第二个“样本“:
PRML上紧跟着二项分布介绍了Beta分布:
Beta(μ | a,b)=Γ(a+b)Γ(a)Γ(b)μa−1(1−μ)b−1 其中 Γ(x) 是Gamma函数: Γ(x)≡∫∞0μx−1e−μdμ (看到Gamma函数我真的给跪了,这特么是啥…Orz) 补:搜了一圈发现在复分析中….好吧,又有得看了 (泪…可验证Beta分布公式是归一化的(不会求系列…捂脸):
∫10Beta(μ | a,b)dμ=1 均值: E[μ]=aa+b 方差: var[μ]=ab(a+b)2(a+b+1)PRML中直接强硬的将Beta分布做为先验分布与二项似然函数怼在了一起(只保留依赖于 μ 的因子),后验概率分布的形式为:
p(μ | m,l,a,b)∝μm+a−1(1−μ)l+b−1
其中 l=N−m 。可以看到上式关于 μ 的函数形式与先验分布相同(当然也跟似然函数相同,难道这就是选先验分布的方式?我仿佛看到了频率派的鄙夷…逃…)
这里还提出了先验关于似然函数的共轭性质,同样还是由于“样本“数量问题,我还没有get到“共轭“的精髓…
通过与Beta分布定义式的比较,可以得到后验概率分布的归一化系数(原来你们归一化都是这么玩的啊喂…摔):
p(μ | m,l,a,b)=Γ(m+a+l+b)Γ(m+a)Γ(l+b)μm+a−1(1−μ)l+b−1对比原二项分布:
Bin(m | N,μ)=N!(N−m)!m!μm(1−μ)N−m观察公式,发现即使出现之前假设的极端情况,扔3次全为正面朝上,即 m=N=3,l=N−m=0,(1−μ) 的系数还保留了 (b−1) ,也就是 (1−μ) 这一项对最后的结果值还有贡献,就避免了出现得出 μ=1 的极端情况——即实现了正则化(二项分布的正则化就是这个鬼样子?= =)。
另一个角度,如果一个数据集里有 m 次观测为 x=1 ,有 l 次观测为 x=0 ,那么从先验概率到后验概率, a 的值变大了m,b的值变大了 l 。这让我们可以简单地把先验概率中的超参数 a 和 b 分别看成 x=1 和 x=0 的有效观测数(effective number of observation)。注意, a 和 b 不一定是整数。
然后…作者又跳到了用后验概率扮演先验概率,实现顺序方法… 我还是先不跟着跳了….
另一样本——多项式分布与Dirichlet distribution(狄利克雷分布,看到这个名字我也是蛮雷的)
首先来看多项式分布,书中是这么一步步引出多项式分布的: 使用”1-of-K”表示法,将变量表示成一个K维向量 x ,向量中的一个元素 xk 等于1,剩余元素等于0。
例如,有一个能取 K=6 种状态的变量,这个变量的某次特定的观测恰好对应于 x3=1 的状态,那么随机变量 x 就可以表示为:
x=(0,0,1,0,0,0)T (怎么总感觉位置索引不是从0开始有点别扭 = =)这样的向量满足 ∑Kk=1xk=1 。如果用参数 μk 表示 xk=1 的概率,那么 x 的分布就是:
p(x | μ)=∏k=1Kμxkk其中 μ=(μ1,...,μK)T (我真的不会打 μ 的粗体)
上式表示的概率分布(注意并不是多项式分布)可以看成伯努利分布对于多个输出的一个推广(书中这种联系性的介绍真是biang!)
均值:
E[x | μ]=∑xp(x | μ)x=(μ1,...μK)T=μ现考虑一个有N个独立观测值 x1,...,xN 的数据集 ,对应的似然函数为:
p( | μ)=∏n=1N∏k=1Kμxnkk=∏k=1Kμ(∑nxnk)k=∏k=1Kμmkk其中 mk=∑nxnk 。可以看到,似然函数对于样本点的依赖只是通过K个 mk ,表示样本中 x_k=1 xk=1 的次数,被称为这个分布的充分统计量(sufficient statistics)。
找 \mu μ 的最大似然解: maximum\ ln\ p(\mathcal{d}\ |\ \mathbf{\mu})
maximum ln p(d | μ) subject\ to\ \sum_{k=1}^{K}\mu_k=1 subject to ∑k=1Kμk=1使用拉格朗日乘数法,即最大化:
∑k=1Kmk ln μk+λ(∑k=1Kμk−1)令上式关于 μk 的导数为零,有:
μk=−mkλ将上式代入限制条件 ∑Kk=1μk=1 中,解得 λ=−N ,即最大似然解为:
μMLk=mkN 表示N次观测中, xk=1 的观测所占的比例(即样本特征矩阵在列方向上求和再归一化)。搞了一通事也没见到多项式分布的影子…
下面,重点来了…
考虑 m1,...mK 在参数 μ 和观测总数 N 的条件下的联合分布(还记得这里的 mk 是什么吗?相当于我们对特征矩阵按列求和,其中第k项的值):
Mult(m1,...,mk | μ,N)=(Nm1,...,mK)∏k=1Kμmkk该式即为多项式分布(multinomial distribution)。归一化系数是把N个物体分成大小为 m1,...,mK 的K组的方案总数,定义为:
(Nm1,...,mK)=N!m1!m2!...mK! 其中 ∑Kk=1mk=N 。Dirichlet distribution(狄利克雷分布)
书上写到:现在我们介绍多项式分布的参数 μk 的一组先验分布。通过观察多项式分布的形式,我们看到,共轭先验为
p(μ | α)∝∏k=1Kμαk−1k其中 0≤μk≤1 且 ∑kμk=1 , α=(α1,...αK)T 。 (我仿佛看到了你们选先验分布的标准,但是那个指数减1是为什么?)
还有一句—— {μk} 空间上的分布被限制在K − 1维的单纯形(simplex)当中。 起初没有看懂是什么意思,后来想到 μk 的和为1,就是已经用掉了一个维度,所以分布只能是在K-1维。
归一化:
Dir(μ | α)=Γ(α0)Γ(α1)...Γ(αK)∏k=1Kμαk−1k 其中 α0=∑Kk=1αk 。 这被称为Dirichlet distribution(狄利克雷分布) (这个Gamma函数真是神奇诶,写完了解下)之后就是老套路,用这个”雷”分布做先验分布,多项式分布为似然函数,两者相乘,去掉无关项,得:
p(μ | ,α)∝p( | μ)p(μ | α)∝∏k=1Kμαk+mk−1k后验分布的形式又变成了“雷“分布,说明“雷“分布确实是多项式分布的共轭先验(套路到这里我才懂…)。
与“雷“分布原公式比较得出归一化系数(这也是套路…):
p(μ | ,α)=Dir(μ | α+m)=Γ(α0+N)Γ(α1+m1)...Γ(αK+mK)∏k=1Kμαk+mk−1k 其中 m=(m1,...mK)T 。至此,关于先验分布选择问题“拟合“ 基本完成——那个先验分布的超参到底该怎么选啊!翻遍了都没有啊
考虑最小二乘的矩阵表示:
∥t−Φw∥22 Φ:N×M t:N×1 w:M×1若 N<M 或 Φ 不满秩, Φw 张成N维空间内的一个M维解空间, t 为N维空间内任一向量,求其与解空间内向量的最小欧式距离。即为 t 与 t 在解空间内的正交投影间的距离,投影矩阵:
P=Φ(ΦTΦ)−1ΦT对比一下即知道:
wML=(ΦTΦ)−1ΦTt参考文献 [1]Christopher Bishop. Pattern Recognition And Machine Learning[M]. Springer, 2007.