您如何向外行人解释Markov Chain Monte Carlo(MCMC)?


240

也许是这个概念,为什么要使用它,还有一个例子。


14
这里是我的话题最喜欢的纸:citeseerx.ist.psu.edu/viewdoc/...

在此站点上,您将找到一个很好的MCMC图形表示形式和一些有用的链接。
谢尔盖

3
要理解MCMC算法,您必须了解它的真正用途以及如何收敛到给定的分布。我在博客中介绍了整个直觉及其应用。您可以在此处访问它们:mlwhiz.com/blog/2015/08/19/MCMC_Algorithms_Beta_Distribution mlwhiz.com/blog/2015/08/21/MCMC_Algorithms_Cryptography
Rahul Agarwal

Answers:


223

首先,我们需要了解什么是马尔可夫链。考虑以下来自维基百科的天气示例。假设任何一天的天气只能分为两种状态:晴天和多雨。根据过去的经验,我们了解以下内容:

P(Next day is Sunny|Given today is Rainy)=0.50

由于第二天的天气晴朗或阴雨,因此:

P(Next day is Rainy|Given today is Rainy)=0.50

同样,让:

P(Next day is Rainy|Given today is Sunny)=0.10

因此,它遵循:

P(Next day is Sunny|Given today is Sunny)=0.90

可以将上述四个数字紧凑地表示为一个过渡矩阵,该过渡矩阵表示天气从一种状态迁移到另一种状态的概率,如下所示:

P=[SRS0.90.1R0.50.5]

我们可能会问几个问题,其答案如下:


问题1:如果今天天气晴朗,那么明天可能是什么天气?

A1:因为我们不确定要发生什么,所以我们可以说的最好的情况是,有可能性可能是晴天,有可能性会下雨。10 90%10%


问题2:从今天起两天怎么样?

A2:一日天气预报:晴天,下雨。因此,从现在起两天后:10 90%10%

第一天可能是晴天,第二天也可能是晴天。发生这种情况的可能性是:。0.9×0.9

要么

第一天可能会下雨,第二天可能会晴天。发生这种情况的可能性是:。0.1×0.5

因此,两天内天气晴朗的可能性是:

P(Sunny 2 days from now=0.9×0.9+0.1×0.5=0.81+0.05=0.86

同样,下雨的概率为:

P(Rainy 2 days from now=0.1×0.5+0.9×0.1=0.05+0.09=0.14


在线性代数(转换矩阵)中,这些计算对应于从一个步骤到下一个步骤的转换中的所有排列(晴天到晴天(),晴天到多雨(),多雨到晴天()或雨到雨())及其计算的概率:S 2 R R 2 S R 2 RS2SS2RR2SR2R

在此处输入图片说明

在图像的下部,我们看到如何根据零时间(现在或下雨)的每个状态(晴天或阴雨)的概率(概率质量函数)来计算未来状态(或)的概率或)作为简单矩阵乘法。t + 2 P M F t 0t+1t+2PMFt0

如果继续这样预报天气,您将注意到最终第天天气预报(其中非常大(例如))将满足以下“平衡”概率:ñ 30nn30

P(Sunny)=0.833

P(Rainy)=0.167

换句话说,您对第天和第天的预测保持不变。此外,您还可以检查“平衡”概率是否不取决于今天的天气。如果开始时假设今天天气晴朗或阴雨,您将获得相同的天气预报。n + 1nn+1

上面的示例仅在状态转换概率满足多个条件的情况下才有效,在此我将不再讨论。但是,请注意此“不错”的马尔可夫链的以下特征(不错=转移概率满足条件):

不管初始的起始状态如何,我们最终都会达到状态的平衡概率分布。

马尔可夫链蒙特卡洛(Markov Chain Monte Carlo)利用以下功能:

我们想要从目标分布生成随机抽奖。然后,我们确定一种构造“好的”马尔可夫链的方法,以使其平衡概率分布成为我们的目标分布。

如果我们可以构建这样的链,那么我们可以从某个点任意开始,并多次迭代马尔可夫链(就像我们如何预测次天气)。最终,我们生成的抽奖会好像来自目标分布。n

然后,我们在舍弃了一些初始绘图(即蒙特卡洛分量)之后,通过取绘图的样本平均值来估算感兴趣的数量(例如平均值)。

有几种方法可以构建“不错的”马尔可夫链(例如,吉布斯采样器,Metropolis-Hastings算法)。


2
这是写得很好的答案。但是,在讨论过渡矩阵的那一刻,它可能会引起外行的注意。
rraadd88 '18

1
好答案。我认为,尽早(或更详细地)说明最终目标是确定一定数量的利息(例如,推断参数的均值或众数)这一事实将很有帮助。这是对的吗?
奥斯汀·辛

101

我认为从(独立链)Metropolis-Hastings算法中可以得到一个很好而简单的直觉。

首先,目标是什么?MCMC的目标是从某种概率分布中抽取样本,而不必知道其在任何点的确切高度。MCMC实现此目的的方式是在该分布上“徘徊”,使得在每个位置花费的时间与分布的高度成比例。如果正确设置了“徘徊”过程,则可以确保达到此比例(花费的时间和分布高度之间)。

直观地讲,我们想要在某个(块状)表面上走动,以使我们在每个位置花费的时间(或抽取的样本数)与该位置处的表面高度成比例。因此,例如,我们希望在海拔100m的山顶上花费两倍的时间,比在海拔50m的附近山上花费更多的时间。令人高兴的是,即使我们不知道曲面上点的绝对高度,也可以执行此操作:我们只需要知道相对高度即可。例如,如果一个山顶A的高度是山顶B的两倍,那么我们想在A上花费的时间是在B上花费的时间的两倍。

Metropolis-Hastings算法的最简单变体(独立链采样)按以下方式实现:假设在每个(离散)时间步中,我们选择一个随机的新“建议”位置(在整个表面上均匀选择)。如果建议的位置比我们现在的位置高,请移至该位置。如果建议的位置较低,则以概率p移至新位置,其中p是该点的高度与当前位置的高度之比。(即,掷硬币的概率为p,获得正面;如果正面出现,则移至新位置;如果正面出现,则留在我们所在的位置)。记录您在每个时间步骤中所到过的位置,该列表(渐近地)将在表面的每个部分中花费的时间比例正确。

提议新地点的方案和接受规则更为复杂,但基本思想仍然是:(1)选择一个新的“提议”地点;(2)找出与您目前所在位置相比,该位置高低多少;(3)以尊重位置花费时间与位置高度成比例的总体目标的方式概率地留在该位置或移动到该位置。

这有什么用?假设我们有一个天气概率模型,该模型使我们能够评估A * P(天气),其中A是一个未知常数。(这种情况经常发生-许多模型很容易以无法确定A是什么的方式来表述)。因此,我们无法精确地评估P(“明天有雨”)。但是,我们可以运行一会儿MCMC采样器,然后询问:哪些样本(或“位置”)中的一部分最终处于“明天下雨”状态。这部分将是(基于模型的)概率天气预报。


6
+1。我认为,“游荡”是本页列出的最直观的类比。
朱巴卜

“不必知道它的确切高度”这不是MCMC的核心限制。
JeremyKun

我的确希望这种解释出现在教科书中,这样我们就不必花太多时间猛烈地了解MH的工作。
星期一

89

我可能会说这样的话:

“每当我们要谈论概率时,我们实际上是在集成密度。在贝叶斯分析中,我们得出的许多密度在分析上都不是易处理的:您只能集成它们-如果可以将它们集成在一起-遭受了很多苦难,所以我们要做的是大量模拟随机变量,然后从模拟的随机数中找出概率。如果我们想知道X小于10的概率,我们可以算出模拟随机变量所占比例小于10,并将其用作我们的估计值。这是“蒙特卡洛”部分,它是基于随机数的概率估计值。有了足够的模拟随机数,该估计值非常好,但是仍然本质上是随机的。

“那么为什么要使用“马尔可夫链”?因为在某些技术条件下,您可以生成一个无记忆的过程(也称为马尔可夫过程),该过程具有与您要模拟的随机变量相同的极限分布。您可以迭代任何一个生成相关随机数(仅基于这些数字的当前值)的各种不同类型的模拟过程的数量,并且可以确保一旦汇总了足够的结果,您将得到一堆看起来像“好像”您已经设法以某种方式从想要了解的复杂分布中获取了独立样本。

“因此,例如,如果我想估计标准正态随机变量小于0.5的概率,则可以从标准正态分布中生成一万个独立实现,并计算小于0.5的数字;例如,我得到6905少于10000个样本中的0.5个;我对P(Z <0.5)的估计为0.6905,与实际值相差不大,这就是蒙特卡洛估计。

我从程序中得到的数字列表将像生成正常随机变量的大量抽奖一样分布。这将为我提供标准正态随机变量的马尔可夫链蒙特卡罗模拟。如果我用它来估计概率,那将是MCMC的估计。”


7
这是一个很好的解释,但不适用于非技术性的外行。我怀疑OP想要知道如何向聘请您进行统计分析的MBA进行解释!您如何将MCMC描述为充其量只是充其量能理解标准偏差(虽然方差可能太抽象)的人?
哈兰2010年

10
@Harlan:这是一条很难跨越的界限。如果有人不至少知道一个随机变量是什么,为什么我们可能要估算的概率,并具有密度函数的一些朦胧的想法,那么我不认为这可能的有意义解释MCMC的如何或为何对他们来说,只有“什么”,在这种情况下,可以归结为“这是一种通过仿真在数值上解决否则无法解决的问题的方法,例如大量抛硬币以估计它落在头上的可能性”。
Rich

1
+1为最后一段。用最少的技术就能很好地传达这个想法。
ub

很酷的解释。我认为这对非技术人员来说很棒。
SmallChess 2015年

疑问-在最后一段中,为什么数字列表似乎来自正态分布?是因为中心极限定理吗?此外,如果我们想模拟其他分布怎么办?
Manoj Kumar 2015年

37

想象一下,您想找到一种更好的策略,在棋盘游戏《大富翁》中击败您的朋友。将游戏中最重要的内容简化为以下问题:人们最常使用哪些属性?答案取决于棋盘的结构,游戏规则和两个骰子的投掷次数。

回答问题的一种方法是这样。扔骰子并遵循规则时,只需在棋盘上跟随一块棋子即可。计算您在每个物业上登陆的次数(或编程计算机为您完成工作)。最终,如果您有足够的耐心或在计算机中对规则进行了足够好的编程,则可以很好地了解哪些属性可以带来最多的业务。这应该可以帮助您更频繁地获胜。

您要做的是马尔可夫链蒙特卡洛(MCMC)分析。董事会定义规则。您下一个到达的位置仅取决于您现在的位置,而不是您以前去过的地方,并且特定概率由两个骰子的掷骰分布决定。MCMC将这种想法应用于数学或物理系统,例如明天的天气或气体分子随机散布的花粉粒将最终出现的地方。


1
听起来听起来像是简单的蒙特卡洛模拟,但是马尔可夫链呢?马尔可夫链与该蒙特卡洛模拟有何关系?
Emran Hussain 2015年

@Emran Graham Cookson的答案似乎已经解释了Monopoly和Markov连锁店之间的联系。
Glen_b '16

可以将垄断建模为马尔可夫链,其中每个属性/空间都是一个节点/状态。当您在任何特定空间上时,都有各种可能移至下一个12个空间(如果使用2个骰子)-这些是马尔可夫链中的边/连​​接。计算每个边缘/连接的概率很容易:gwydir.demon.co.uk/jo/probability/calcdice.htm#sum

32

好的,这是我对非正式和粗略解释的最佳尝试。

马尔可夫链是一个随机过程,其特征是未来仅取决于过程的当前状态,而不取决于过去,即它是无记忆的。股票交易是随机过程的一个例子。马尔可夫链的一个例子是像“大富翁”或“蛇和梯子”这样的棋盘游戏,您的未来位置(掷骰子之后)将仅取决于掷骰前的开始位置,而不取决于您以前的任何位置。马尔可夫链的教科书示例是“酒鬼漫步”。想象一下一个喝醉了的人只能向左或向右移动一个步伐。醉汉以相等的概率向左或向右移动。这是一个马尔可夫链,醉汉的未来/下一个职位仅取决于他目前的位置。

蒙特卡洛方法是一种计算算法(简单地是指令集),可以从正在研究的某个过程中随机采样。它们是估计难以确定或难以找到的东西的一种方法。它们基本上是某种数学或物理过程的计算机模拟形式。蒙特卡洛的绰号来自娱乐场和随机数生成之间的类比。回到前面的棋盘游戏示例,也许我们想知道是否对Monopoly棋盘上的某些属性的访问比对其他属性的访问更为频繁。蒙特卡洛实验将涉及重复掷骰子并计算您落在每个属性上的次数。它也可以用于计算数值积分。(非常非正式地,我们可以将积分视为某些函数图下的面积。)蒙特卡洛积分在高维函数上的工作原理非常好,方法是对函数点进行随机采样并在这些不同点上计算某种类型的平均值。通过增加样本数量,大数定律告诉我们可以通过覆盖越来越多的函数来提高近似精度。

可以将这两个概念组合起来,以解决贝叶斯推断,计算生物学等领域中的一些难题,这些领域需要计算多维积分来解决常见问题。想法是构造一个马尔可夫链,该马尔可夫链在多个步骤后收敛到所需的概率分布。然后将经过大量步骤后的链状状态用作所需分布的样本,并重复该过程。有许多不同的MCMC算法,它们使用不同的技术来生成马尔可夫链。常见的包括Metropolis-Hastings和Gibbs Sampler。


1
确实是一个很好的解释。只有一种混乱没有消除。如您所说,“其想法是构造一个收敛到所需概率分布的马尔可夫链”。听起来我们已经知道各州的稳态概率分布,那么为什么我们需要构造马尔可夫链。马尔可夫链的目的是为我们提供最初已经具备的稳态分布,不是吗?除非您打算,否则仍然需要马尔可夫链来基于当前状态计算n +1的状态概率。
Emran Hussain

16

贝叶斯黑客方法节选

贝叶斯景观

NNp1p2

Exp(3)Exp(10)

下面的可视化演示了这一点。颜色越深红色,未知物在该位置的可能性就越高。相反,具有深蓝色的区域表示我们的先验对存在的未知数的概率非常低。

在此处输入图片说明

这些是2D空间中的简单示例,我们的大脑可以很好地理解表面。实际上,我们的先验产生的空间和表面的尺寸可能更高。

XX推高原本的地面造高大的山峰。上的量受到先验概率的抵制,因此先验概率越小意味着阻力越大。因此,在上述双指数先验情况下,可能在(0,0)角附近喷发的一座山(或多座山)将比在(5,5)附近喷发的山高得多,因为附近的阻力更大(5,5)。山脉,或更广泛的说,山脉反映了可能找到真实参数的后验概率。

λ

在此处输入图片说明

Uniform(0,5)

黑点代表真实参数。正如上面模拟的那样,即使只有1个采样点,山脉也会尝试包含真实参数。当然,使用1个样本大小进行推断是非常幼稚的,选择如此小的样本大小仅是说明性的。

使用MCMC探索景观

NNN从后分布,而不是分布本身。将山区的类比延伸到极限,MCMC执行的任务类似于反复询问“我发现这个卵石有多大可能来自我正在寻找的山峰?”,并通过返回数千个被接受的卵石来完成其任务,希望重建原始的山。在MCMC和PyMC术语中,返回的“卵石”序列是样本,通常称为跟踪

当我说MCMC进行智能搜索时,我的意思是MCMC 有望会聚到后验概率高的区域。MCMC通过探索附近的位置并以较高的概率进入区域来做到这一点。同样,也许“收敛”不是描述MCMC进程的准确术语。会聚通常意味着朝着空间中的某个点移动,但是MCMC朝着空间中的一个更大区域移动,并在该区域中随机行走,从该区域中采集样本。

首先,将数千个样本返回给用户可能听起来像是描述后验分布的一种无效方法。我认为这是非常有效的。考虑其他可能性:

  1. 返回“山范围”的数学公式将涉及描述具有任意峰和谷的N维表面。
  2. 返回景观的“峰值”虽然在数学上是可能的,并且做一件有意义的事情作为最高点,对应于最可能的未知数估计,但忽略了景观的形状,我们之前认为这对于确定后验置信度非常重要未知。

除了计算原因外,返回样本的最主要的原因可能是我们可以轻松地使用“大数定律”来解决否则很难解决的问题。我将此讨论推迟到下一章。

执行MCMC的算法

有大量执行MCMC的算法。最简单的说,大多数算法可以如下概括地表示:

1. Start at current position.
2. Propose moving to a new position (investigate a pebble near you ).
3. Accept the position based on the position's adherence to the data 
and prior distributions (ask if the pebble likely came from the mountain).
4. If you accept: Move to the new position. Return to Step 1.
5. After a large number of iterations, return the positions.

这样,我们就朝着存在后验分布的区域大体上移动,并在旅途中少量地收集样本。一旦达到后验分布,我们就可以轻松收集样本,因为它们很可能都属于后验分布。

如果MCMC算法的当前位置处于极低概率的区域中(通常是算法开始时的情况(通常在空间中的随机位置),则算法将在可能不位于后部的位置移动)但比附近的其他地方都要好。因此,算法的第一步不反映后验。


2
我知道问题是与特定的MCMC有关,而不是与贝叶斯推断有关,但是在贝叶斯景观的背景下,我发现MCMC非常容易理解。
Cam.Davidson.Pilon

10

因此,这里有大量的答案可以从统计/概率教科书,维基百科等中得到解释。我认为他们在市场部。如果我不得不向他们解释任何技术性的问题,则可以应用“显示不告诉”规则。考虑到该规则,我可能会向他们展示这样的内容。

这里的想法是尝试编码一种我可以教自己拼写的算法,而不是通过学习所有数百(数千个)规则来完成,例如在以无声e结尾的单词中添加结尾时,请删除最后一个e如果结尾以元音开头。无效的原因之一是我不知道这些规则(我什至不确定我刚才引用的规则是否正确)。相反,我将通过显示一堆正确拼写的单词并让其从这些单词中提取规则来教它进行拼写,这或多或少是机器学习的本质,而与算法无关-模式提取和模式识别。

成功标准是正确拼写该算法从未见过的单词(我意识到这完全是偶然的,但是营销人员不会发生,所以我会忽略-再加上我将拥有该算法尝试拼写一个单词而不是一个单词,所以可能不太会被一些幸运的猜测所欺骗。

大约一个小时前,我从优秀的古腾堡计划网站(赫尔曼·黑塞小说《悉达多》)下载(作为纯文本文件)。我将用这本小说中的单词来教算法如何拼写。

因此,我在下面编码了一次扫描这本小说的算法,一次扫描三个字母(每个单词的末尾都有一个附加字符,即“空白”或单词的末尾)。三个字母的序列可以告诉您很多信息,例如,字母“ q”几乎总是跟着“ u”;“ ty”序列通常出现在单词的结尾;z很少这样做,依此类推。(注意:我可以很容易地给它输入整个单词,以便训练它说完整的句子-完全一样的想法,只是对代码进行了一些调整。)

不过,这些都不涉及MCMC,它是在训练后发生的,当我们给算法几个随机字母(作为种子)并开始形成“单词”时。该算法如何构建单词?想象一下,它的块为“ qua”;接下来会添加什么字母?在训练过程中,该算法从小说中的所有数千个单词中构建了一个庞大的字母序列频率矩阵。该矩阵中的某个位置是三个字母的块qua和可能遵循该序列的字符的频率。该算法根据可能跟随字母的频率选择字母。因此,算法下一步选择的字母取决于(并且仅取决于)其字构建队列中的最后三个字母。

这就是马尔可夫链蒙特卡罗算法。

我认为,最好的方式来说明其工作原理是基于不同程度的培训来显示结果。通过更改算法使算法新颖的通过次数来改变训练水平-通过的次数越多,其字母序列频率矩阵的保真度就越高。下面是经过新颖的“悉达多”训练后的结果-该算法以100个字符的字符串形式输出了结果。


一遍小说《悉达多》

然后,whoicks ger会全神贯注于他的立场,否则你会迷恋于artim糊涂的污秽中。

(直接说,它学会了几乎完美的威尔士语;我没想到这一点。)


经过两遍小说之后:

ack wor prenskinith show was a twor seened th nothead theatin land rhatingle is theov


10次​​通过后:

尽管但现在应该祈祷喝水她的狗杠杆疼痛的脚每个都不是记忆力较弱。


这是代码(在Python中,我几乎可以确定这可以使用MCMC软件包在R中完成,其中只有3-4行有几行)

def create_words_string(raw_string) :
  """ in case I wanted to use training data in sentence/paragraph form; 
      this function will parse a raw text string into a nice list of words;
      filtering: keep only words having  more than 3 letters and remove 
      punctuation, etc.
  """
  pattern = r'\b[A-Za-z]{3,}\b'
  pat_obj = re.compile(pattern)
  words = [ word.lower() for word in pat_obj.findall(raw_string) ]
  pattern = r'\b[vixlm]+\b'
  pat_obj = re.compile(pattern)
  return " ".join([ word for word in words if not pat_obj.search(word) ])

def create_markov_dict(words_string):
  # initialize variables
  wb1, wb2, wb3 = " ", " ", " "
  l1, l2, l3 = wb1, wb2, wb3
  dx = {}
  for ch in words_string :
    dx.setdefault( (l1, l2, l3), [] ).append(ch)
    l1, l2, l3 = l2, l3, ch
  return dx

def generate_newtext(markov_dict) :
  simulated_text = ""
  l1, l2, l3 = " ", " ", " "
  for c in range(100) :
    next_letter = sample( markov_dict[(l1, l2, l3)], 1)[0]
    simulated_text += next_letter
    l1, l2, l3 = l2, l3, next_letter
  return simulated_text

if __name__=="__main__" :
  # n = number of passes through the training text
  n = 1
  q1 = create_words_string(n * raw_str)
  q2 = create_markov_dict(q1)
  q3 = generate_newtext(q2)
  print(q3)

12
您已经建立了一个用于英语拼写的马尔可夫模型,并将其拟合到数据中。但是从拟合模型中采样的不是 MCMC。(从中采样的“期望分布”是什么?显然,不是在“英语中正确拼写的单词”上的分布,因为该模型在训练后仍然会出错)。我并不是要批评这项运动;这很好地展示了语言的马尔可夫链模型。但是,MCMC的关键思想是设计一个马尔可夫链,以使其平衡分布与您所想到的某种分布相对应,而且实现这一点并不明显。
jpillow'7

2

MCMC通常用作原始蒙特卡洛模拟技术的替代方法。MCMC和其他蒙特卡洛技术都用于评估困难积分,但MCMC可以更广泛地使用。

例如,统计中的一个常见问题是计算与某些概率/随机模型有关的平均结果。MCMC和蒙特卡洛技术都可以通过生成一系列模拟结果来解决此问题,我们可以使用这些结果来估计真实均值。

MCMC和原始蒙特卡洛技术都可以工作,因为与给定结果相等的模拟的长期比例将等于该结果的模型化概率。因此,通过生成足够的模拟,两种方法所产生的结果将是准确的。

*我说的是平等的,尽管总的来说我应该谈论可测量的集合。但是,外行对此可能不感兴趣*

但是,虽然原始的蒙特卡洛(Monte Carlo)涉及产生许多独立的模拟,每个模拟都根据建模的分布进行分配,但MCMC涉及生成随机游动,该游动在长期内以所需的频率“访问”每个结果。

因此,MCMC的诀窍是选择一个随机游动,它将以所需的长期频率“访问”每个结果。

一个简单的示例可能是从一个模型进行模拟,该模型表示结果“ A”的概率为0.5,结果“ B”的概率为0.5。在这种情况下,如果我在位置“ A”开始随机游走并规定在每个步骤中以0.2(或其他任何大于0的概率)切换到另一个位置,则可以确定随机游走大约50%的步数会访问“ A”和“ B”中的每一个步数,这与我们的模型所规定的概率一致。

这显然是一个非常无聊的例子。但是,事实证明,MCMC通常适用于难以应用标准蒙特卡洛或其他技术的情况。

您可以在此处找到涵盖其基本内容以及其工作原理的文章:

http://wellredd.uk/basics-markov-chain-monte-carlo/


我们正在尝试以问题和解答的形式建立永久的高质量统计信息存储库。我们试图避免仅链接的答案,而答案会受到链接腐烂的影响。因此,这本身不是评论,而是评论。如果可以的话,您可以扩展它吗,也许在链接上提供信息的摘要(或者我们可以将其转换为注释)。
Glen_b

1

我是一名DNA分析师,使用完全连续的概率基因分型软件来解释DNA证据,我必须向陪审团解释其工作原理。诚然,我们过分简化,我意识到其中一些过分简化以提高整体理解为名牺牲了特定细节的准确性。但是,在陪审团了解如何在没有学术学位和多年专业经验的情况下将这一过程用于DNA解释的背景下,他们得到了要点:)

背景:该软件使用大都市黑斯廷斯(Hastings)MCMC和模仿DNA分布图已知行为的生物学模型(该模型是基于实验室分析已知条件下许多DNA分布图(代表未知案例中遇到的范围)而生成的验证数据而建立的。有8个独立的链,我们评估收敛性以确定是否重新运行以增加预存和后期接受(默认Burnin 100k接受和post 400k接受)

当起诉/辩护询问有关MCMC的信息时:我们解释说它代表马尔可夫链蒙特卡洛(Monte Carlo),代表用于复杂问题解决的特殊算法类别,该算法只是一个花哨的词,指的是一系列过程或例程由计算机执行... mcmc算法的工作原理是提出一个解决方案,对该解决方案进行仿真,然后评估该仿真对所观察到的实际证据数据的镜像程度。不能很好地拟合观察结果的模拟...在许多重复的拟议解决方案的抽样/猜测中,马尔可夫链从低概率解决方案向高概率解决方案发展,从而更好地拟合/解释了所观察到的证据特征,直到最终达到平衡实现,意味着该算法对新提案进行抽样的能力有限,从而大大提高了概率

当被问及大都市黑斯廷斯:我们解释说这是MCMC算法的改进,描述了其接受或拒绝提案的决策过程...通常以“热/冷”儿童游戏的类比来解释,但我可能考虑过使用“陪审团特别年轻时,请向右或向左滑动!!!:p但是,使用我们的冷/热比喻,我们总是接受热猜测,偶尔会接受一小部分时间的冷猜测,并解释了有时接受冷猜测的目的是为了确保链条采样的可能性更大。反对在实际平衡之前陷入一个特定的建议

进行编辑以添加/阐明:通过热/冷的类比,我们解释说,在儿童游戏中,领导者选择房间内的目标对象/区域,而玩家轮流猜测相对于其当前站立/位置的移动方向。领队告诉他们如果是很热的话就改变他们的位置/移动,如果是很冷的话他们就失去转弯/保持位置。同样,在我们的软件中,移动/接受的决定仅取决于提案的可能性,而不是当前保持位置的可能性...但是,目标是由儿童游戏中的领导者预先定义/知道的,而我们软件中的目标不是预先定义的-完全未知(这也是为什么它

就像我说的那样,为了提高理解力,超级基础知识和绝对缺乏技术细节-我们努力在中等教育水平上进行解释。随时提出建议。我将合并它们。


0

这个问题很广泛,但答案往往很随意。另外,您也可以看到本文,其中简要介绍了一系列MCMC算法,包括Metropolis-Hastings算法,Gibbs采样,Metropolis-in-Gibbs和辅助变量方法,切片采样,递归建议,方向采样,Langevin和作者讨论了哈密顿蒙特卡洛,NUTS采样,伪边际Metropolis-Hastings算法以及伪边哈密顿蒙特卡洛。

这里给出可靠的评论

我会发现更多时间以stackexchange的格式来阐述其内容。


0

f(x,y)=z=x2+2xy(x,y)f(x,y)f(x,y)

f(x,y,z,t,s,...,zzz)

该视频(从5:50开始)非常直观。

假设您要对该图片中绿色(多维)分支上的点进行采样。如果在整个黑色超空间上投掷点并检查其值,那么您正在浪费大量的采样(搜索)能量。因此,控制您的采样策略(可以自动执行)以选择更靠近绿色分支的点(这很重要)会更有意义。一次偶然地(或控制地)被击中即可发现绿枝,其余的采样工作(红点)将在随后产生。红色吸引到绿线的原因是因为马尔可夫链转换矩阵可以用作您的采样引擎。

因此,用外行的话来说,MCMC是一种节能(低成本)的采样方法,特别是在巨大的“黑暗”(多维)空间中工作时。

在此处输入图片说明


1
我认为我们对“外行人”有不同的定义
Neil McGuigan

哈哈哈 我也可以为“外行人”添加蒙特卡洛,但是采样/蒙特卡洛不是问题。
阿米尔(Amir)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.