专栏首页浊酒清味抽样理论中有哪些令人印象深刻(有趣)的结论?

抽样理论中有哪些令人印象深刻(有趣)的结论?

我们知道很多蒙特卡洛采样方法是来源于物理,比如最有名的哈密顿蒙特卡洛方法(HMC),就是源自于哈密顿动力学。不过这次我并不打算详细说明哈密顿蒙特卡洛,相关的解读已经很多了。

今天我想讲另一个大家可能不怎么在意的郎之万动力学(Langevin dynamics)采样法,没错就是那位传说和居里夫人有绯闻的郎之万同学。

我们先讲结论,郎之万动力学采样方法源自于布朗运动,同时也是一个变优化为采样的神奇方法。没错就是那个出现在了高中物理课本中的布朗运行。很难想象,一个常见的物理现象竟然会延申出一个采样方法,就让我们看一下到底发生了什么?

布朗运动

朗之万方程描述的是布朗运动,即由于与流体分子的碰撞,粒子的随机运动方程为:

其中

是粒子的位置, 是粒子的质量。右边式子的第一项是流体的粘滞力,第二项就是分子热运动带来的碰撞力,也叫做热涨落。它有个特点就是时间上平均值等于0。通过解方程(1),我们可以得到:

其中

和温度成正比。这个解的意思是,布朗运动粒子平均运动位置离原点(初始点)距离的平方和时间成正比。这个解就是对扩散运动的一个直观解释,随着时间推移,粒子跑的越来越“散”。

额外补充一句就是上面的式子也被叫做爱因斯坦关系,由阿尔伯特·爱因斯坦在1905年和Marian Smoluchowski在1906年独立发现。

重现玻尔兹曼分布

我们知道抽样方法的目标就是抽样一个分布,那么布朗运动和分布又有什么关系呢?

假设粒子在一个势能 中运动,它的运动方程由郎之万动力学描述:

按照(1)式相同的解法,我们会得到关于粒子位置 分布的解:

这个方程就是我们常见的玻尔兹曼分布。通过郎之万方程,我们竟然获得了粒子的分布。

郎之万动力学采样法

我们从布朗运动出发,通过郎之万动力学,架起来动力学和分布的桥梁。接下来就可以利用这个桥梁来采样了:

通过模拟动力学来采样分布,具体而言就是精确模拟粒子在势能以及热涨落中运动,捕捉粒子的位置,作为样本,就会得到想要的分布。

最后要给大家交代的就是“势能”以及“热涨落”怎么来模拟:

热涨落力具有高斯分布,于是我们可以用高斯分布来模拟这个力:

对于贝叶斯分布后验分布,

根据玻尔兹曼分布,其势能就是

于是势能力就可以通过对势能求梯度而获得。

于是当势能和热涨落都可以模拟的情况下,我们就可以通过模拟粒子运动来采样了:

这个公式来自于Bayesian Learning via Stochastic Gradient Langevin Dynamics,具体细节大家可以参考这篇文章:

https://www.ics.uci.edu/~welling/publications/papers/stoclangevin_v6.pdf

最后要补充的就是,如果去掉高斯项

,剩下的部分就是梯度项,不就是我们常见的梯度法(gradient method)来优化目标函数吗?从这个角度而言,在梯度项上面加一个平凡无奇的高斯项就可以化优化为采样,实在是太神奇了!

本文分享自微信公众号 - Python与机器学习之路(gh_39aead19f756),作者:Huangwei AI

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用Python实战Q-learning

    游戏环境包相当于给AI提供各种游戏,以及相应的接口。就像你玩游,需要一个小霸王学习机,再配一个游戏卡。有了这个环境后,你就可以安心编写程序来玩就行了。Windo...

    HuangWeiAI
  • Python第十二课:函数I

    对于一门编程语言而言函数是一个极其重要的元素,一般而言函数可以帮助我们分离各个模块实现分层,让程序员更方便编程的同时也增强了程序的可读性。想象一下如果有一个一千...

    HuangWeiAI
  • Python第十三课:函数II

    在上一课中我们主要学习了函数的输入,我们现在结合前面学到的关于文件的操作来写一些函数达到处理文件的功能。

    HuangWeiAI
  • Excel表格中最经典的36个小技巧,全在这儿了

    技巧1、单元格内强制换行 技巧2、锁定标题行 技巧3、打印标题行 技巧4、查找重复值 技巧5、删除重复值 技巧6、快速输入对号√ 技巧7、万元显示 技巧8、隐藏...

    统计学家
  • HDFS读写流程(重点)

    ①服务端启动HDFS中的NN和DN进程 ②客户端创建一个分布式文件系统客户端,由客户端向NN发送请求,请求上传文件 ③NN处理请求,检查客户端是否有权限上传...

    爱学习的孙小白
  • ACL2019最佳论文冯洋:Teacher Forcing亟待解决 ,通用预训练模型并非万能

    神经机器翻译是自然语言处理中的重要任务。目前的通用做法是,训练时输入源句子(source sentence)和目标句子(target sentence)组成的句...

    机器之心
  • Java transient关键字使用总结

    哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关...

    哲洛不闹
  • 网站优化中“高级抓拍摄影师”的作品——搜索引擎快照问题(上)

    搜索引擎快照就是:搜索引擎在收录我们网站的网页时,对网页进行备份并存在搜索引擎的服务器缓存里。搜索引擎将Spider系统当时所抓取的内容保存起来,称为“搜索引擎...

    大脸猫
  • @Transient 理解

    transient使用小结 1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 2)transient...

    ydymz
  • ECMA-262-3 详解:1、执行上下文

    从来没有深入了解ECMA,网上找了一下,发现早在2010年就有大佬 Dmitry Soshnikov[1] 总结了ECMA中的核心内容,我这里只是翻译记录,加深...

    踏浪

扫码关注云+社区

领取腾讯云代金券