您的位置:首页 > 其它

PRML阅读笔记

2016-03-05 08:30 204 查看
1.最前面

作为一个搞机器的人,因为毕设的需要,接触了图像处理和机器视觉的知识。渐渐地发现,只会一些最基本的图像处理的知识,是没有资格谈论这门学科的。在研一的时候,被推荐这本书,由于当时接触的模式识别和机器学习的知识并不多,凭着自己的兴趣在学习。当时这本书还是一本英文书,很多词汇即使翻译成中文也不知所云,于是读读停停,读到第七章稀疏向量机,再也读不下去了。前面几章的东西也忘记的厉害,最后只得作罢。

在工作之后,由于对现在工作的方向不太满意,总寻思着能够换回原来的方向,于是捡起了这本书,啃过完全不知所云的图模型,来到第九章EM算法,第十章近似推断,发现这两章开始试图将前面的知识做高屋建瓴的融合时,我明白了,这的确是一本好书。尽管下一张采样方法初读时仍是云里雾里,但是捱过之后就是我比较熟悉的PCA和ICA。下一章HMM是N多最新领域研究热点,似乎高峰上的白雪皑皑的顶尖折射最亮丽的阳光就在我的眼前。我终于在工作不到半年之后(2016.01.06)强行刷到最后一章。

有意思的是,在工作之后,我利用晚上回来的时间,周末的时间把这本书读完了,这在我研究生两年期间都没有做到的事情我居然做完了。想到室友当时说,你真宅,周末也不出去玩玩。现在我终于可以笑一笑了。

诚然,也许我再也不可能换回原来的方向,想想也许是有点伤感,但回过头来想,这本书,你真的读透了吗?我心里十分清楚,图模型和采样方法那两章读到最后什么操行我是非常没有底气的。而且整本书回过头来想想,似乎也没有什么头绪。

于是年前年后接把之前看的云里雾里的图模型、采样方法以及觉得很牛但是说不出所以然的变分近似三章刷了一遍。紧接着在最近十多天又把书从第二章刷到第十三章HMM,准备找工作了。我知道前面仍是一片沼泽,也许我没有出路。

我找到一份模式识别的工作了,总体来说,还算不错。

2.PRML框架(一)——MLE到MAP坎坷之路

机器学习和模式识别的几乎所有解决的问题,就两件事:建模与优化。

而这本被称作殿堂级的宝书从来到尾都是在做贝叶斯脑残粉的事情。整本书基本上就一个模型,频率学派眼中的极大似然估计(MLE)和贝叶斯学派钟爱的极大后验分布(MAP)。尽管第七章支持向量机(SVM)并不是属于这一类,但相关向量机(RVM)仍是贝叶斯方法的体现。除了最后一章组合模型和第八章图模型属于比较通用的部分外,整本书的模型就是MLE之后MAP。即使是神经网络(NN)也被纳入到了贝叶斯方法之内。

下面根据这个框架,理清这本书的结构安排:

第一章,机器学习的基本概念。这一章的知识其实属于比较重要的,对于机器学习中常见的过拟合,模型选择的问题介绍的还算通俗易懂。但属于自己看看,时常回过头翻翻那种,但没什么过多可说的。

第二章,概率分布。这一章的知识几乎应用后面每一章中,极其重要。主要包括二项分布,多项分布,高斯分布,以及一统这几个分布的指数族分布。二项分布和多项分布对应于后面章节的二分类和多分类问题。高斯分布除了应用在最直观的回归问题上,也是凭借中心极限定律和大数定律坐稳了几乎各个问题的核心部分的位置。

似然,直面解释,似乎是真的。这个词究竟是什么意思呢?举例来说,一枚硬币,抛了10次,有9次是正面,抛了100次,有95次是正面。围观群众就心中开始怀疑这枚硬币做了手脚。那么这个猜测到底是不是靠谱呢?如果大家心中的疑惑是正确的,发生这件事情可能性为多大呢?这就是似然,根据某种猜测得到观察数据的可能性。即给定某种条件出现观察数据的几率。

显然二项分布和多项分布就是给定某一类时出现观测集的概率,高斯分布则是真实数据为条件,出现了观测数据(观测数据有噪声)的概率。

如果只关注现有采集数据的分析属于频率学家的观点,这样的观点在贝叶斯学派们看来简直是有因噎废食的嫌疑:如果只抛1次硬币,恰好是正面,就说硬币做手脚了岂不是贻笑大方(过拟合问题)?频率学家说只要你的观测的数据集足够大,这种过拟合的问题就可以被避免。但是,世界上有很多数据是无法大量获取的,也是无法做大量实验得到的,要么不可能实现(如冰盖融化的速率,数据极其有限),要么是采集数据成本过高(所以说大数据时代,数据都是有价值的)。贝叶斯学派认为已有的知识是可以拿来使用的,这样就能解决数据量的问题,书中分别引入了三种分布各自的先验分布,如二项分布对应的先验分布为beta分布,多项分布对应的先验分布为direclet分布,高斯分布为多参数模型比较复杂,它根据不同的假设得到的先验分布有高斯分布,gamma分布以及多维下的Gaussian-wishart分布。这些分布的后验分布与先验分布形式完全一样,只是参数有所不同。在后面很多章解决的具体问题中,都是几乎使用这两种观点下的概率分布建立概率模型。

当然贝叶斯学派的先验分布被频率学派广为诟病的是:贝叶斯学派引入的先验分布并不是真正的经验知识,甚至为了数学上的方便,强行给了形式化的先验分布。这样的先验分布没有任何价值,反而污染了现有的观测数据。于是大家为了解决这个问题又不想带来过拟合问题,开始探索无先验信息分布。

在线性回归问题(第三章)和线性分类问题(第四章)之前,需要理清这两章的思路。建立线性模型之后,需要求解模型中的参数,正如前文所述,会使用两种观点来解决问题。在模型以及模型参数获得之后,就可以进行预测了。

需要解释的是线性模型并不是关于原始输入空间的线性模型,而是在新的映射空间的线性模型。新的空间各个基向量为原始输入的映射(可以是线性,也可以是非线性),对这些基向量进行线性组合,得到空间中的一个向量。这自然涉及到线性空间的表达性问题。若你的新空间基向量比数据点还多,就出现了

第三章,建立线性模型之后,注意线性模型是将样本的自变量在新的映射空间的值做线性组合得到输出值。输出值本质上和样本的因变量target值其实是没有关系的。引入了t=f(y)关系,在回归问题上,我们习惯使用了示性函数t=I(y)将空间输出值与样本的target的值认为是相同的,这样在预测的时候,将待预测的输入变量输入到线性模型中得到的值就可以认为是预测的输出变量。更重要的是,这种示性函数会保持整个模型的线性性质,会带来极大方便。接下来假设观测值存在随机噪声,认为服从高斯分布,建立起似然函数,最大化似然函数得到模型参数(MLE)。最大化似然函数会带来过拟合问题,引入先验分布,得到贝叶斯回归。这里由于都是线性函数,高斯分布的性质反复使用,就可以得到解析解。先验分布引入的时候又会引入超参,超参的选取又引来争议,于是对超参的求解带来了证据近似的迭代方法。

第四章,同样是线性模型,但是在分类问题上,模型的输出值是连续的,因为基函数连续,且是线性组合,模型输出值仍是连续的,而分类问题样本的target值是离散的。于是这之间就不能使用示性函数了。强行仍使用空间输出值就是最小平方法和Fisher线性判别函数法(后者是前者的一个特例),设置阈值进行二值离散化(+1, -1)的感知机算法。生成式概率模型和判别式模型采用的是logistics 回归函数。强行使用原来的空间输出值带来的问题就是,分类问题原本只关心对错(正反例),这里变成了五十步笑百步的问题,对离群点缺乏robust。设置二值离散化问题是缺乏连续性(指的是误差函数不能始终朝着好的方向进行)。而logistics回归函数连续性较好,本质上也是二项分布和多项分布相关。但是除了最小平方法,其他方法都引入了非线性函数,导致整个大模型线性性质被破坏。无论是MLE和MAP,其结果都不是高斯分布,在判别式概率模型时进行优化的方法就变成了梯度下降法迭代求解,因为它没有解析解了。在预测分布时,后验分布已不再是高斯分布,为了使用高斯分布的性质,对其使用了laplace近似,将其近似成高斯分布,当然还有其他的近似了。

在介绍了线性回归和线性分类问题之后,以后各章讲到新的方法时都会先求解回归问题,再讲分类问题。

引入线性模型中基函数之后,模型的计算量变得十分庞大,陷入维度灾难的困局。从第五章到第七章着手解决这个问题。因此在每一章需要关注的除了回归问题,线性问题,MLE和MAP之外,还应关注是如何简化计算量,避免维度灾难的问题。

第五章,神经网络,以前学过神经网络,因此在读这章的时候有些先入为主的意识让我在理清这一章的思路时陷入了误区。在典型的两层神经网络中,隐含层到输出层的表达(不包括激活函数)就是y = w‘h(A’x),h(A’x)为隐含层激活函数,我们把它看成激活函数phi(x),那么它与线性模型y = w‘phi(x)形式完全一致,这也正是隐含层数目个数决定神经网络灵活性的根本原因。我们注意到庞大的基函数的家族在这里都具有统一的形式h(),而基函数映射的多样性则交给激活函数h的输入中A来体现,也就是说基函数数目由隐含层的数目决定,而基函数的映射多样性有一个可调节的激活函数代替,从而避免显示选择繁杂的基函数,使得神经网络表达的结果简洁,而计算量却大大降低了。

神经网络的激活函数为非线性的,因为神经网络的连接就是代表线性求和模型,如果激活函数仍是线性,得到的只是一个线性模型,而这个模型与第三章的模型没有任何区别,也就失去了神经网络强大的的表达能力。在除了输出层引入了非线性激活函数之外,在隐含层同样引入了非线性激活函数。这使得模型本身就是非线性模型,由于引入了非线性,这里就遇到和第四章几乎一模一样的问题,参数学习的时候需使用迭代法求解。由于对神经网络而言,其梯度的求解有种很美妙的方法,即反向传播法。反向传播法极其美妙,因为它和前馈传播是对称的,在计算梯度把最后输出层看成输入层,输入层看做输出层。5.4节Hessian矩阵引入有点突兀,但是你了解到非线性这个问题在贝叶斯神经网络时带来的不能使用良好的线性性质时你就想起了laplace近似,而laplace近似成高斯分布时,是需要求二阶导数——Hessian矩阵。神经网络的激活函数多选为非线性的logistics函数,主要是看重了求解梯度时,这种函数的导数结果太美妙了。

由此可以看出这几章层层相扣的多么紧密。第三章用第二章的高斯分布的性质,第四章和第三章仅仅是t=f(y)的选取不同带来了诸多问题,由此引入了近似和梯度下降法求解的方法,而第五章的模型已不再是线性模型,也正是另一个非线性问题。

第六章,由于学习的最终目标是想预测结果,而并不关心模型是什么样的,模型只要预测的结果好就可以了。于是我们在这一章引入了核函数,核函数可以衡量数据样本之间的相关性。核函数的引入避开了中间如线性模型中系数矩阵,因此能大大简化计算量。而线性模型中映射空间选择困难症到这里就只剩下高斯核,线性核,二次核或者它们的组合,这本身也是一种简化。那么核方法中学习的参数只有核函数中的参数,以及可能引入的先验中的参数。在这种基础上,引入了强大的高斯过程框架。高斯过程框架假定模型输出y(不是观测到的目标值t)服从高斯分布。任意两个样本数据点的n,m的函数值y(x)的相关性(即协方差)可由核函数来表达。而模型学习和预测正是探讨这些数据是如何关联的以及如何利用关联性去预测。利用第二章高斯分布中的联合分布即可实现对新的数据点进行直接预测。因此在将高斯分布用于分类问题时,其中关键的一步转化推导可以用到图模型来解释,核方法其实有点数据序列的味道,模型函数值输出y是其中的潜在变量,而目标变量是观测变量。除了给前面的laplace近似之外,不得不给第八章图模型也称赞一个。

关联性有强有弱,在学习的时候,如果发现某写样本点与其他大多数样本点关系保持很弱的关系,几乎可有可无。那么在整个训练集中,就处于可以放弃的状态,这就是稀疏向量机的思想。

第七章,稀疏向量机在运用核函数简化运算的同时,试图解决放弃那些对结果影响很小的数据点。比如在二分类的时候,决定分界面的只有处于两类中间的数据点,而离分界面很远的数据点几乎没有什么影响作用,这就是SVM中的能够稀疏的原因,而其中的支持向量正是那些起着重要作用的数据点。SVM问题在形式化的时候数学技巧很强,KKT条件的限制与支持向量不约而同的走到了一起。这是下一个本书框架或者机器学习框架中的模型与优化问题,到时再展开。RVM相关向量机就是典型的第六章核方法的关联性的应用,这里在似然函数的基础上,引入了每一个权值w参数的高斯分布的精度先验alpha,在超参的学习的过程中,如果超参alpha极小,那么该权值分布太宽广,也就是这一项基函数阳光普照,特征不明显,对数据集的预测没有什么作用,选择抛弃,由此可以实现对模型的高效剪枝。RVM在应用于回归问题还是分类问题还是那个t=f(y)带来的那一点差异:分类问题要使用梯度迭代法进行求解,laplace近似在内的近似。

(待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: