开这个坑慢慢写吧…

Langevin dynamic 和 Hamiltonian Monte Carlo

众所周知,sampling在Bayeisan中十分重要。比较高级的方法之一就是基于随机微分方程的抽样,例如这里的Langevin和HMC(Hamiltonian Monte Carlo)。

Langevin dynamic

下面是一个目标分布是标准正态分布的Langevin算法的小实验。分别是运行长度为100000、长度为1000000、更改噪声尺度 得到的结果:

  • langevin的理论中,步长满足一定条件下,离散化导致的误差被加入的随机噪声掩盖,后期MH拒绝可能性yanhua会很低,几乎可忽略。
  • 此类算法要求的计算量很不小。在分布容易模拟的情况下千万不要用。
  • 增加噪声的尺度会直接影响最后的分布更加不集中。课件噪声在这个过程中起到很重要的作用。

Hamiltonian Monte Carlo

HMC领域一个重要的文章是Tianqi Chen大佬写的那篇Stochastic Gradient Hamiltonian Monte Carlo。

相比于引入摩擦这个概念,我觉得作者在离散化和SDE间的转换更有意思。固定了步长ϵ\epsilonϵ后,导致的误差本来是O(ϵ2)O(\epsilon^2)O(ϵ2),直接连续化到SDE对应的并不是一个布朗运动噪声(对应的东西应该并不存在),所以需要更换一种方法。作者将O(ϵ2)O(\epsilon^2)O(ϵ2)的离散方差解释为布朗运动N(0,ϵVdt)N(0, \epsilon Vdt)N(0,ϵVdt)的ϵ\epsilonϵ离散。最终和Langevin结合起来,因此可以扔掉MH step.

上述内容有一个有趣的问题:连续化的SDE里的噪音一直带有ϵVdt\epsilon VdtϵVdt的方差,ϵ\epsilonϵ是前面的离散步长。

作者在不考虑ϵ\epsilonϵ为离散步长的前提下,继续对SDE做分析,加入同样带有ϵ\epsilonϵ的摩擦力项。发现得到的SDE是满足目标分布平稳的,再对之做ϵt\epsilon_tϵt​的离散。

逻辑有点儿复杂,之后再想想合理性怎么解释。

# target: Normal(0,1)library(ggplot2)# Langevin
L = 100000
e = 0.001x <- c(0)
for(i in 1:L)
{x[i+1] = x[i] + e/2*(-x[i]) + sqrt(e)*rnorm(1)
}X = x[as.integer(L/2):L]
ggplot()+geom_histogram(aes(x=X,colour="Langevin dynamic",..density..),binwidth = 0.2)+geom_line(aes(x=seq(-3,3,0.1),y=dnorm(seq(-3,3,0.1)),colour="True density"))# more stepsL = 1000000
e = 0.001x <- c(0)
for(i in 1:L)
{x[i+1] = x[i] + e/2*(-x[i]) + sqrt(e)*rnorm(1)
}X = x[as.integer(L/2):L]
ggplot()+geom_histogram(aes(x=X,colour="Langevin dynamic",..density..),binwidth = 0.2)+geom_line(aes(x=seq(-3,3,0.1),y=dnorm(seq(-3,3,0.1)),colour="True density"))# double noise. Wrong result. L = 1000000
e = 0.001x <- c(0)
for(i in 1:L)
{x[i+1] = x[i] + e/2*(-x[i]) + 2*sqrt(e)*rnorm(1)
}X = x[as.integer(L/2):L]
ggplot()+geom_histogram(aes(x=X,colour="Wrong Langevin dynamic",..density..),binwidth = 0.2)+geom_line(aes(x=seq(-3,3,0.1),y=dnorm(seq(-3,3,0.1)),colour="True density"))

Langevin dynamic 和 Hamiltonian Monte Carlo相关推荐

  1. Stochastic Gradient Hamiltonian Monte Carlo论文笔记

    Abstract 哈密​​尔顿蒙特卡罗(HMC)抽样方法提供了一种机制,用于在Metropolis-Hastings框架中定义具有高接受概率的远程建议,从而比标准随机游走建议更有效地探索状态空间.近年 ...

  2. 论文笔记 Stochastic Gradient Hamiltonian Monte Carlo (SGHMC)

    随机梯度哈密顿量蒙特卡罗 0.摘要 Hamiltonian Monte Carlo (HMC) 采样方法提供了一种机制,用于在 Metropolis-Hastings 框架中定义具有高接受概率的远距离 ...

  3. Hamiltonian Monte Carlo抽样算法的初步理解

    Hamiltonian Monte Carlo抽样算法的初步理解 接受拒绝采样算法 MCMC回顾 Hamiltonian dynamics 拉格朗日方程 从牛顿方程出发推导拉格朗日方程 勒让德变换 哈 ...

  4. 如何自己去写一个鼠标驱动_为什么要用哈密顿采样器(Hamiltonian Monte Carlo),以及如何自己写一个...

    背景介绍:(了解采样的可以跳过) 1)为什么需要采样: 简单的分布,比如高斯.exponential.gamma等等的样本都可以直接用numpy.random生成,但复杂的分布需要采样器生成.在贝叶斯 ...

  5. HMC(Hamiltonian Monte Carlo抽样算法详细介绍)

    Hamiltonian Monte Carlo简介 Hamiltonian dynamics的物理含义 Simulating Hamiltonian dynamics the Leap Frog Me ...

  6. 哈密尔顿蒙特卡洛(Hamiltonian Monte Carlo)

    哈密尔顿蒙特卡洛(Hamiltonian Monte Carlo) Metropolis-Hastings 采样方法的一个问题是它会展现出随机漫步式的行为,而随机漫步对参数空间的探索效率并不高--平均 ...

  7. 5 蒙特卡洛方法 (Monte Carlo Method)

    [上一篇 4 动态编程(Dynamic Programming, DP)] [下一篇 6 Temporal-Difference (TD) Learning ] 与上一节动态编程(DP)方法不同的是, ...

  8. ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)

    Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference 蒙特卡洛法和时序差分学习 Note 10 蒙特卡洛法和时序差分学习 Monte Car ...

  9. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例

    强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...

最新文章

  1. POJ2135 来回最短路(简单费用流)
  2. C/S和B/S两种架构区别与优缺点分析
  3. PaaS平台应用的12要素原则
  4. harmonyos 2.0怎么升级,HarmonyOS 2.0正式发布 分布式能力获得全面升级
  5. 超不清视频播放器-用Python将视频转成字符
  6. Allegro PCB 如何测量距离?比如走线之间的距离
  7. mysql 判断质数_java之判断输入的数是否为素数
  8. 【数据结构与算法】【算法思想】【MySQL数据库索引】B+树
  9. Microsoft.Web.RedisSessionStateProvider 运行异常问题
  10. MEF 编程指南(二):定义可组合部件和契约
  11. Vivado中常用的几种仿真浅论
  12. 【数据库系统】考虑题4所示的日志记录,假设开始时A、B、C的值都是0 (1) 如果系统故障发生在14之后,写出系统恢复后A、B、C的值
  13. 分页虚拟存储管理——页面置换算法例题
  14. 石川圖 / 鱼骨图 / 關鍵要因圖 / 因果圖
  15. 可由线性表示且表达式唯一_一个向量能由另一个向量组线性表示,且表示式唯一的等价条件是什么?...
  16. Android O 安卓启动时间优化分析
  17. 【网络编程】大端模式和小端模式
  18. 爬了1000张清纯妹子私房照,我流鼻血了...
  19. HYBBS2.3轻论坛M-TOUCH模板源码
  20. 古希腊数学家毕达哥拉斯数学题

热门文章

  1. 高通新 CEO 上任,高调放话对标苹果 M1!
  2. hdu 1548 A strange lift (BFS)
  3. STM32F407--芯片解读
  4. win10系统使用蓝牙鼠标时自动断开连接?
  5. 解决Please make sure you have the correct access rights and the repository exists 问题
  6. QT程序启动画面gif动画有静止背景的解决方法
  7. 面向对象的三大要素和五大原则
  8. 海思屏幕HAL代码解析
  9. windows 任务相关 删除任务
  10. 夜天之书 #78 共建的神话