科班出身,贝叶斯护体,正本清源,故拿”九阳神功“自比,而非邪气十足的”九阴真经“;html
如今看来,此前的八层功力都为这第九层做基础;git
本系列第九篇,助/祝你早日hold住神功第九重,加入血统纯正的人工智能队伍。github
小喇叭:本系列文章乃自娱自乐,延缓脑细胞衰老;只“雪中送炭”,不提供”全套服务“。app
九阳神功第九章《Gaussian Processes for ML》机器学习
若是,非统计机器学习是入门,统计机器学习是进阶,那么“高斯过程”就算是机器学习的高级阶段,能发paper。ide
国内相关的书,没发现。(有数学系的同窗给推荐么?)post
推荐相关的还算易懂的paper一篇: Generic Inference in Latent Gaussian Process Models学习
对高斯过程的了解过程当中,让我深入的明白,要发国际paper的同窗都有着怎样的学习生涯套路。字体
菜鸡们来瞧瞧这位,Stanford cs231n 2016的lecturer,语速感人,成就经典。人工智能
血统纯正的学习路线:
2011-2015: Stanford Computer Science Ph.D. student Deep Learning, Computer Vision, Natural Language Processing. Adviser: Fei-Fei Li.
Summer 2011: Google Research Internship Large-Scale Unsupervised Deep Learning for Videos
2009-2011: University of British Columbia: MSc Learning Controllers for Physically-simulated Figures. Adviser: Michiel van de Panne
2005-2009: University of Toronto: BSc Double major in Computer Science and Physics
请注意本科时期的double major,which帮助奠基大牛潜质。
学纯数搞人工智能有点纸上谈兵;
学计科搞人工智能有点后劲不足;
CS+Physics真乃绝配!
言归正传,基本上学习的路线是:GP for Regression, GP for Classification, Latent Gaussian Process Models。
百度到的东西基本都是GP for Regression,可见广大吃瓜群众基本停留在这套路线的初级阶段,后二者确实须要功力,即便只知其一;不知其二也不便卖弄风骚。
此处一篇:浅谈高斯过程回归 应该是根据youtube视频课程所总结,写得挺好。在此基础上我将在此加一点补充,但愿有助理解。
原本想把本身懂的这么一点东西总结于此,但最近release了一门神课,很对味,故正在重点follow中。
这篇浅谈高斯过程回归已经将(预测)基本计算过程展示了一遍,这里就再也不赘述。读完该连接后,抛出一个问题:
蓝色字体的协方差值是如何给出的?怎么定义会更好?
f是高斯,y也是高斯。根据二元高斯的条件分布计算方法:[Bayes] Why we prefer Gaussian Distribution
直接求得p(f*|y) 【等价 p(f*|X, y, x*)】的预测公式以下:
常见的结论就是:这个预测结果(指望)是个“输入的线性组合”,同时也是个“kernel的线性组合”。
如下求y的边缘分布:【过程略,较复杂】
常见的结论就是:这个能用于hyperparameter learning,也就是θ = {sigma, C}的学习,以下所示。
其实就是相关性的选择问题,学习这个K内部的东西。为什么要计较这三部分?
想必也是个“权衡问题”,以下图。
From: http://www.gaussianprocess.org/gpml/chapters/RW5.pdf
适当的选择超参,能得到一个极大的marginal likelood。
这也叫作“model selection”。
参考“回归”,学习“分类”。
没有了噪声sigma的概念,f(y|f)变为了sigmoid,故成了non-linear,p(f|X,y)成了恼人的non-gaussian。
那咱们就定一个高斯q(f|X,y)来近似p(f|X,y);天然而然引出Laplace Approximation【暂略】。
一个思考的技巧:
计算时能够暂且将f做为回归中y的角色,那么以下看去就将对应的回归结论中的噪声sigma去掉便可。
但咱们终究仍是要p(f*|X, y, x*),也就是须要加入一个“f given y的关系”,便是上述说起的近似高斯技巧。
与“回归”对比,是否感受总有点复杂?为何搞复杂了呢?
计算结果以下:
p(f*|X,y,x*) = N(f*| K(x*)TK-1b, K(x*,x*)-K(x*)T[K-1-K-1ΣK-1]K(x*))
接下来就是“预测”问题,一般有两种策略:Average and MAP
可见虽然求出了f*,但依然没法逃避“f* --> y*”这段non-gaussian的过程。
此时,便天然而然得想到用mcmc去估计积分结果。
这一部分是超高级内容,只是简单聊一聊,仰望一下。
想一想PCA,隐变量的意义是压缩,这里将要说的隐变量,也就是inducing variables也是如此。
要计算这个东西,是O(N3),因此有必要想办法减少计算量。
可采用decomposition的方法,例如使用inducing variables:u。
以上即是缘由之一。下图中的f之间用粗线表示“f之间是全链接”。
原理详见原论文(上图标题),以下来个例子瞧瞧。
至少咱们知道有了u,z这样的概念,并且维度比N要低不少。
在Subset of Regressors (SR) approximation中,假设了covariance function:
与标准GP相比,看上去精简了“相关性”的计算。将上式替代到标准GP回归时的结论便可获得以下:
计算过程较复杂,其中会涉及到以下这个公式的运用 from Maxtrix Cookbook:
就到这里,由于inducing variables的引入,展开了一大片坑,能够阅读该连接深刻了解:Generic Inference in Latent Gaussian Process Models
本篇写得至关基础, 大体写个学习进阶套路,一来确实须要至关的数学功底,二来更想花时间follow (STATS 385)。
再次强调下,本系列不提供“全套服务”,只帮助整理下我的近期的知识体系,若有兴趣,请点击文章中说起的各个亲测的高质量连接。
那么,就到这里吧。
相关连接:
Ref: http://www.cnblogs.com/hxsyl/p/5229746.html
Ref: https://zhuanlan.zhihu.com/p/24388992