PRML学习总结(1)——Introduction
1.1 Example: Polynomial Curve Fitting
对于训练数据集x≡(x1,…,xN)T,t≡(t1,…,tN)T,其由sin(2πx)加上一定的噪声生成,采用多项式曲线拟合:
y(x,w)=w0+w1x+w2x2+…+wMxM=j=0∑Mwjxj
其中M代表改模型的最高次幂,也就是代表模型的复杂度。有了数据跟模型后,接下来就是需要训练模型,而训练模型需要一个目标函数,我们可以最小化以下目标函数:
E(w)=21n=1∑N{y(xn,w)−tn}2
不难发现,该目标函数的最小值为0,当且仅当曲线穿过所有训练数据时才满足最小值。而且该函数为关于w的二次函数,那么在最小化该函数时很容易得到一个解析解得w⋆。
现在需要关注另一个模型,那就是模型选择问题,即M到底选择多少才合适,不同的M,模型的表达能力也不同,太小则模型的拟合能力不足,太大则会过拟合,如下图所示。

当过拟合后,对于新来的测试数据,我们将会得到非常差的结果,这并不是我们想要的,这归根结底就是在模型选择上出了问题。为了定量地分析在新的数据上,模型的泛化能力,通常采用均方根误差进行度量:
ERMS=2E(w⋆)/N
利用此误差,可以得到训练数据和测试数据的ERMS:

从上图可以发现,当M较小时,模型的拟合能力不足,导致测试和训练的误差都很大,当M=9时,模型就会陷入过拟合,即训练误差为0,而测试误差很大,最合适的M∈[3,8]。
我们的数据最理想的拟合函数应该为sin(2πx),而该函数展开后,其幂次数应该是包括了无穷多次幂,按照我们的想法,模型应该是随着M的增加,拟合得越好。但是却出现了过拟合,我们可以进一步探索我们模型中所学出来的最优值为多少。

从结果可以看出,随着M的增加,所得到的参数的绝对值很越来越大的,正是在这样变化大的参数下,导致最终拟合的曲线波动很大。我们也可以进一步看看模型与训练数据量的关系

从上图可以发现,增大训练数据量可以有效地减少过拟合。但是现实生活中我们的数据是很有限的,因此如何让模型保持一定的复杂性和灵活性,且不会出现过拟合是一个需要解决的问题。正则化正好可以解决这个问题。也就是在目标函数中加入对参数的惩罚项:
E(w)=21n=1∑N{y(xn,w)−tn}2+2λ∥w∥2
其中λ控制正则项和原目标函数之间的重要性。这样就不可避免地为模型又引入了一个参数,在M=9时,不同的λ拟合结果如下

从上图可以看出,当λ太大时,即参数的绝对值大小将会在很大程度上得到惩罚,因此最后拟合结果近似一条在0附近的线。更加定量地看待引入正则项的好处,得到如下表

可以看出引入正则项能够在一定程度上限制模型的复杂度,从而能够减少过拟合。在确定M,λ时,往往将数据分为训练数据和验证数据,但是对于数据非常少的情况,这种方式将会很“浪费”有效的数据!
1.2 Probability Theory
这一部分主要介绍一些概率的基本概念,这儿简要提出这几个概念,详细的内容参照书中内容。
The Rules of probability
sum rule p(X)=Y∑p(X,Y)
product rule p(X,Y)=p(Y∣X)p(X)
Bayes’ Theorem
p(Y∣X)=p(X)p(X∣Y)p(Y)
posterior ∝ likelihood × prior
Curve fitting re-visited
介绍了一些基本的概率概念后,现在再回看之前的曲线拟合问题,我们可以建模如下
p(t∣x,w,β)=N(t∣y(x,w),β−1)
可以形象地表示为下图

对于模型中的参数w,β,我们利用训练数据{x,t}进行最大似然估计,一般来说我们都假设数据是独立的,因此
p(t∣x,w,β)=n=1∏NN(tn∣y(xn,w),β−1)
转化为log
lnp(t∣x,w,β)=−2βn=1∑N{y(xn,w)−tn}2+2Nlnβ−2Nln(2π)
对于w,发现优化的目标与一开始的目标函数一致,这儿记为wML。对β求导,可以得到
βML1=N1n=1∑N{y(xn,wML)−tn}2
当确定了w,β之后,就可以得到预测概率
p(t∣x,wML,βML)=N(t∣y(x,wML),βML−1)
以上的方法为最大似然估计(点估计)ML,接下来我们在参数上引入一个先验概率
p(w∣α)=N(w∣0,α−1I)=(2πα)(M+1)/2exp{−2αwTw}
其中α为超参数。利用贝叶斯公式,我们可以得到β的后验概率
p(w∣x,t,α,β)∝p(t∣x,w,β)p(w∣α)
需要说明的一点是,此时的β我们也考虑为超参。也是一个预先给定的值。不像之前通过最大似然估计出来。
在后验上进行最大点估计,也就是最大后验估计(点估计),MAP。最终结果为
2βn=1∑N{y(xn,w)−tn}2+2αwTw
这个结果正是之前说的正则化方式!!!
无论是ML还是MAP,它们都是点估计!点估计有个致命的弱点是会导致过拟合!而全贝叶斯的观点是,我们不需要对参数进行点估计,我们只要得到其后验概率,然后在预测概率上,我们利用积分积掉参数部分,这样就不会涉及点估计就能得到预测概率!
p(t∣x,x,t)=∫p(t∣x,w)p(w∣x,t)dw
最终可得
p(t∣x,x,t)m(x)s2(x)=N(t∥m(x),s2(x))=βϕ(x)TSn=1∑Nϕ(xn)tn=β−1+ϕ(x)TSϕ(x)
其中
S−1=αI+βn=1∑Nϕ(xn)ϕ(x)T
ϕi(x)=xi for i=0,…,M
1.3 Model Selection
在1.1中,我们发现不同的M导致模型的泛化能力也不同,因此如何选择一个恰当的模型是一个很重要的问题。往往采用的方式为交叉验证的方式

但是这种方式最大的问题就是效率太低,需要对模型进行很多次训练!最理想的情况下就是对模型就行一次训练就能达到效果!这一类方法将在后续讲到。
1.4 The Curse of Dimensionality
为了更加深刻地了解这个问题,首先引入一个数据集

这个数据集中的数据有12个维度,且有三个类别,上图展示了x6,x7的二维分布图。当我们要判断图中黑色交叉点到底是属于哪一类时,可以发现该点周围大部分都是红色或是绿色的点,因此很大程度上可以判断为属于这两个类别,或是可以说不可能属于蓝色点那一类,因为离得太远了!因此我们可以利用这样的最近邻方式判断点到底属于哪一类。我们可以把该空间划分为规则的块,同一块中的点最多的点决定改块的类别!
该方法有个致命的缺点是,随着维度的增加,这样划分出来的块的数量将会呈指数增长!

不仅如此,在高维空间中,一个单位超球体的体积大部分都集中在一个球体表面!高维所带来的一系列问题都可以称为维数灾难。在低维所构建的模型,一般来说泛化到高维空间中会导致效果很差!但是在现实生活中,我们的数据往往处于低维的流形中,因此可以借助于其他手段处理高维的数据!
1.5 Decision Theory
概率理论告诉我们对不确定进行度量,而决策理论则告诉我们怎么利用这个不确定度进行最优决策!下面以一个医疗问题入手,对于一个病人的X光照图片x,需要判断该病人是(C1)否(C2)得了癌症。
Minimizing the misclassification rate
我们的目标是尽可能最小化错分率。定义决策域Rk表示在这个区域中的x属于Ck类。
p( mistake )=p(x∈R1,C2)+p(x∈R2,C1)=∫R1p(x,C2)dx+∫R2p(x,C1)dx
为了最小化以上表达式,如果存在p(x,C1)>p(x,C2),那么我们应该让x属于C1。p(x,Ck)=p(Ck∣x)p(x),由于p(x)都一样,所以最小化错分率,就等同于最大化后验概率。
对于K分类问题,定义为最大化正确分类率
p( correct )=k=1∑Kp(x∈Rk,Ck)=k=1∑K∫Rkp(x,Ck)dx
发现同样等同于最大后验概率!
Minimizing the expected loss
在现实生活中,有些问题更加复杂,对于上面的医疗诊断问题来说,误诊为癌症比误诊为健康好!因此可以适当地错分为癌症,但要最大程度上减少错分为健康!处理这个问题,其实就是进行加权!对于该问题,我们可以引入这样的权重

Lkj代表属于Ck的而被判别为Cj所引入的权重。从上图可以看出对误分为健康的权重很大。
E[L]=k∑j∑∫RjLkjp(x,Ck)dx
按照上面一样的推导,对于某一个新的点x,我们只需要找到j类使得下式最小即可
k∑Lkjp(Ck∣x)
The reject option

Inference and decision
之前我们将分类问题划分为两个阶段:inference和decision。inference stage:利用训练样本得到后验概率p(Ck∣x),decision stage 利用得到的这个后验概率进行决策。
总共有以下三种形式(按照难度减少):
a) generative model
首先infer p(x∣Ck),然后infer p(Ck),然后利用贝叶斯公式
p(Ck∣x)=p(x)p(x∣Ck)p(Ck)
得到后验概率,其中
p(x)=k∑p(x∣Ck)p(Ck)
同样的我们也可以直接建模联合概率分布p(x,Ck)。在得到了后验概率后就可以利用决策论进行类别划分。
b) discriminative models
直接建模后验概率分布p(Ck∣x)
c) discriminant function
直接找一个判别函数f(x),将输入x直接映射到类别标签,在二分类的情况下,我们可以令f=0代表C1类,而f=1代表C2类。
Loss functions for regression
以上讨论的是分类模型的损失函数,这个部分主要讨论回归问题的损失函数
E[L]=∬L(t,y(x))p(x,t)dxdt
一般来说,我们取平方误差
L(t,y(x))={y(x)−t}2
如果我们的y(x)为任意函数的话,我们利用变分可以得到
δy(x)δE[L]=2∫{y(x)−t}p(x,t)dt=0
y(x)=p(x)∫tp(x,t)dt=∫tp(t∣x)dt=Et[t∣x]
这个函数称为回归函数,下图为回归函数的具体意义

回归函数还可以按照如下方式得到
{y(x)−t}2={y(x)−E[t∣x]+E[t∣x]−t}2={y(x)−E[t∣x]}2+2{y(x)−E[t∣x]}{E[t∣x]−t}+{E[t∣x]−t}2
先对t进行积分,则获得
E[L]=∫{y(x)−E[t∣x]}2p(x)dx+∫{E[t∣x]−t}2p(x)dx
为了使上式最小,则能得到回归函数。上式右边的第二部分为t在p(x)上的方差,是固有噪声,不可消除!
与分类问题类似,回归问题也可以按照先难后易有三种解决回归问题的方法:
a)直接建模p(x,t),然后得到p(t∣x),最后得到回归函数;
b)直接建模p(t∣x);
c)建模一个映射函数y(x)
1.6 Information Theory
简要介绍一些关于信息论的概念
Entropy
H[x]=−∫p(x)lnp(x)dx
Conditional Entropy
H[y∣x]=−∬p(y,x)lnp(y∣x)dydx
H[x,y]=H[y∣x]+H[x]
Relative entropy and mutual information
KL divergence
KL(p∥q)=−∫p(x)lnq(x)dx−(−∫p(x)lnp(x)dx)=−∫p(x)ln{p(x)q(x)}dx
需要注意的是KL(p∥q)̸=KL(q∥p),且KL(q∥p)⩾0,当且仅当q(x)=p(x)时,取等。下面从KL散度来推导最大似然估计,假设我么有个未知分布p(x),我们利用q(x∣θ)去近似这个未知分布,则
KL(p∥q)≃n=1∑N{−lnq(xn∣θ)+lnp(xn)}
右边的第二部分与θ无关,只需要看第一部分,这部分正好就是最大似然估计项!!最小KL散度就是在最大似然函数!
下面开始介绍互信息,其是在KL散度上定义的,用于衡量x,y与独立的距离!
I[x,y]≡KL(p(x,y)∥p(x)p(y))=−∬p(x,y)ln(p(x,y)p(x)p(y))dxdy
I(x,y)⩾0,当且仅当独立时取等。
互信息与熵有如下关系
I[x,y]=H[x]−H[x∣y]=H[y]−H[y∣x]