机器学习之MCMC算法(转载)
转载地址:https://www.cnblogs.com/jiangxinyang/p/9358822.html 侵删
1、MCMC概述
从名字我们可以看出,MCMC由两个MC组成,即蒙特卡罗方法(Monte Carlo Simulation,简称MC)和马尔科夫链(Markov Chain ,也简称MC)。之前已经介绍过蒙特卡洛方法,接下来介绍马尔科夫链,以及结合两者的采样算法。
2、马尔科夫链
马尔科夫链的概念在很多地方都被提及过,它的核心思想是某一时刻状态转移的概率只依赖于它的前一个状态。
我们用数学定义来描述,则假设我们的序列状态是...Xt−2, Xt−1, Xt, Xt+1,...,那么我们的在时刻Xt+1的状态的条件概率仅仅依赖于时刻Xt,即:
既然某一时刻状态转移的概率只依赖于它的前一个状态,那么我们只要能求出系统中任意两个状态之间的转换概率,这个马尔科夫链的模型就定了。状态转移情况如下图所示
则状态转移矩阵可以表示为
此时,我们给定一个初始状态,然后经过该状态转移矩阵的转换,最终会收敛到一个稳定的状态,具体如马尔科夫链定理所示
由于马尔科夫链能收敛到平稳分布, 于是有了一个想法:如果我们能构造一个转移矩阵为P的马氏链,使得该马氏链的平稳分布恰好是p(x), 那么我们从任何一个初始状态x0出发沿着马氏链转移, 得到一个转移序列 x0, x1, x2,⋯xn, xn+1⋯, 如果马氏链在第n步已经收敛了,于是我们就得到了 π(x) 的样本xn, xn+1⋯(也就是从第n步收敛时开始,之后的x都服从同一个平稳分布,我们可以将这个分布设定为我们的目标采样分布)。
从上面可以看出马尔科夫链的平稳分布收敛主要依赖于状态转移矩阵,所以关键是如何构建状态转移矩阵,使得最终的平稳分布是我们所要的分布。想做到这一点主要依赖于细致平稳定理
3、MCMC采样和M-H采样
在MCMC采样中先随机一个状态转移矩阵Q,然而该矩阵不一定能满足细致平稳定理,一次会做一些改进,具体过程如下
MCMC采样算法的具体流程如下
然而关于MCMC采样有收敛太慢的问题,所以在MCMC的基础上进行改进,引出M-H采样算法
M-H算法的具体流程如下
M-H算法在高维时同样适用
一般来说M-H采样算法较MCMC算法应用更广泛,然而在大数据时代,M-H算法面临着两个问题:
1)在高维时的计算量很大,算法效率很低,同时存在拒绝转移的问题,也会加大计算量
2)由于特征维度大,很多时候我们甚至很难求出目标的各特征维度联合分布,但是可以方便求出各个特征之间的条件概率分布(因此就思考是否能只知道条件概率分布的情况下进行采样)。
4、Gibbs采样
因此可以得出在二维的情况下Gibbs采样算法的流程如下
而在多维的情况下,比如一个n维的概率分布π(x1, x2, ...xn),我们可以通过在n个坐标轴上轮换采样,来得到新的样本。对于轮换到的任意一个坐标轴xi上的转移,马尔科夫链的状态转移概率为P(xi|x1, x2, ..., xi−1, xi+1, ..., xn),即固定n−1个坐标轴,在某一个坐标轴上移动。而在多维的情况下Gibbs采样算法的流程如下
由于Gibbs采样在高维特征时的优势,目前我们通常意义上的MCMC采样都是用的Gibbs采样。当然Gibbs采样是从M-H采样的基础上的进化而来的,同时Gibbs采样要求数据至少有两个维度,一维概率分布的采样是没法用Gibbs采样的,这时M-H采样仍然成立。
机器学习之MCMC算法(转载)相关推荐
- 【机器学习】adaboost算法
[机器学习]adaboost算法 转载自:https://blog.csdn.net/guyuealian/article/details/70995333(算法原理与实例结合讲解很好!) 一.Ada ...
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法...
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- 收藏 | 机器学习模型与算法最全分类汇总!
题图 | AltumCode 机器学习模型与算法包括线性回归.对数几率回归.LASSO回归.Ridge回归.LDA.k近邻.决策树.感知机.神经网络.支持向量机.AdaBoost.GBDT.XGBoo ...
- 强化学习ppt_机器学习原理、算法与应用配套PPT第四部分(深度学习概论、自动编码器、强化学习、聚类算法、半监督学习等)...
本文是SIGAI公众号文章作者雷明编写的<机器学习>课程新版PPT第四部分,包含了课程内容的深度学习概论,自动编码器,受限玻尔兹曼机,聚类算法1,聚类算法2,聚类算法3,半监督学习,强化学 ...
- DNS通道检测 国内学术界研究情况——研究方法:基于特征或者流量,使用机器学习决策树分类算法居多...
http://xuewen.cnki.net/DownloadArticle.aspx?filename=BMKJ201104017&dbtype=CJFD <浅析基于DNS协议的隐蔽通 ...
- python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)
本文转自博客园,作者为hsm_computer 原文链接:https://www.cnblogs.com/JavaArchitect/p/11717998.html在笔者的新书里,将通过股票案例讲述P ...
- 机器学习中的算法(2)-支持向量机(SVM)基础
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- 机器学习中的算法-支持向量机(SVM)基础
机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...
- 机器学习样本处理算法(二)详细特点描述
转载自 https://www.jianshu.com/p/054654aeae4f 交叉验证.留一交叉验证.自助法 机器学习包括许多算法:线性回归.逻辑回归.决策树.SVM.随机森林.GBDT等等. ...
- 机器学习中的算法:支持向量机(SVM)基础
前言: 最近一段时间看了看关于SVM(Support Vector Machine)的文章,觉得SVM是一个非常有趣,而且自成一派的方向,所以今天准备写一篇关于关于SVM的文章. 关于SVM的论文.书 ...
最新文章
- 自编码器及相关变种算法简介
- 自由自在休闲食品实现奶茶妹的创业梦
- ITK:遍历具有成形邻域的图像区域
- YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
- 阿里巴巴上线静态开源站点搭建工具 Docsite
- 在ubuntu上搭建开发环境9---Ubuntu删除ibus出现的问题及解决
- 软件工程六大设计原则总结,案例演示
- C/C++—— #include“stdafx.h”详解
- php短链接api,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
- 2学习率调整_Keras的Adam优化器参数理解及自适应学习率
- 可蠕虫 DarkRadiation 勒索软件瞄准 Linux 和 Docker 实例
- Error:Could not find common.jar (android.arch.core:common:1.0.0)
- 怎么用计算机扫描照片,怎么扫描图片上的文字-无需扫描仪,教你三招轻松搞定文字识别!...
- 【无人驾驶系列一】激光雷达(LiDAR)在无人驾驶技术中的应用
- OpenWrt 无线桥接
- OpenCv抽取视频帧和时间戳[综合代码后续添加]
- OpenCV小案例——批量图片合成为视频
- 【Python】Python基本概念、print()输出函数、标准数据类型、type()函数与isinstance()函数、数据类型转换、变量与变量名的命名规则、注释
- 李开复 ---- 给中国学生的第七封信:21世纪最需要的7种人才
- 电脑开始菜单如何删除项目详细教程