蒙特卡洛方法中,有哪些演算法或者技巧讓你耳目一新,提高智商?

時間 2021-05-07 02:09:29

1樓:任萍聲

Importance Sampling,Collapsed Gibbs Samling都還屬於入門級的,要說666還得是PMCMC啊

2樓:DONT

正好做個知識點,分享一下蒙特卡洛方法乙個典型的應用:計算π值(或者圓面積等)。

有乙個正方形,和乙個內切圓。

我抓住一把沙子大概10000粒,隨機的撒向正方形內。

那麼落在圓內部的沙子數量和落在正方形內的沙子數量的比值,應該和他們各自的面積是相等的(相似的),都是π/4.

程式設計實現:

1。確定中心圓點,將矩形和圓形的中心作為中心座標點:

將矩形大小確定為邊長=200,對應圓半徑=100

1.1。隨機生成沙子的位置,使用隨機數生成,用隨機數確定沙子的x座標位置、y座標位置

1.2。通過計算沙子位置與原點的距離。判斷沙子在圓內部還是圓外部。

2 。生成乙個二維陣列,4列。

第1列:儲存每一粒沙子的x座標、

第2列:儲存每一粒沙子的y座標

第3列:儲存每一粒沙子距離原點的距離。

第4列:儲存沙子在圓內部還是圓外部,該列根據第3列的距離值確定。

如果距離大於圓半徑,則使用0表示沙子在圓形外部;

如果距離小於等於圓半徑,則使用1表示數字在圓形的內部

3。計算二維陣列第4列的和。得到在圓形內部的沙子數量。

4。根據關係:

圓內部沙子/沙子總數量=π/4

計算πde值:4*圓內部沙子數量/沙子總數量

5。VB的具體實現細節:

Private Sub Command1_Click()

Const r = 1000000

Dim a(r, 4) As Integer

Randomize

Form1.FontSize = 40

For i = 1 To r

For j = 1 To 2

a(i, j) = Int(-100 + Rnd * (100 - (-100) + 1))

Next

Next

For i = 1 To r

a(i, 3) = Sqr(a(i, 1) ^ 2 + a(i, 2) ^ 2)

Next

For i = 1 To r

If a(i, 3) <= 100 Then a(i, 4) = 1

Next

'For i = 1 To 10

' Print a(i, 1); a(i, 2); a(i, 3); a(i, 4)

'Next

Sum = 0

For i = 1 To r

Sum = Sum + a(i, 4)

Next

Print "π的值是:"; 4 * Sum / r

End Sub

3樓:Neal

第乙個應該是 RM.Neal 在2003 年AOS 上提出來的 Slice Sampling,這個方法簡直是MCMC的萬用解

然後我個人很佩服collapsed gibbs sampling,這個方法基本是非引數貝葉斯中最常用的sampling 方法了

4樓:

基於bayes graph模型的gibbs sampling

sample每乙個節點的時候,只需要計算和該節點有依賴關係的prior和likelihood,無需對整個graph進行計算

5樓:Leo C

GPUMCD(GPU based Monte Carlo Dose calculation)

它是一種應用在放療領域的十分快速的MC演算法。

基於CUDA平台,可以同時模擬1E6~1E7個的光子!

6樓:

早期研究過一些,列一些同蒙特卡羅思想相關的原理和演算法,其中一些非常偏門歪道,然而當初知道後是被深深震驚了的。具體wiki或google

細緻平衡,數學上看起來low,不過上公升到物理的對稱後就很有趣了,同構象遍歷性有關。

蒙特卡洛方法和路徑積分的聯絡。對應乙個基於蒙卡的取樣演算法,都有乙個路徑積分表示,偏門歪道。

Jarzynski 等式,這個很神奇,可用於非平衡取樣。比如,MCMC鏈的重要性取樣中,一般要間隔比較長的取樣步取樣,以避免樣本關聯,Jarzynski 等式允許你去掉這個限制,後期有技巧重構給定的分布。有啥用?

不談物理上的影響,機器學習有個叫:對比分歧法k-cd,其中k是取樣步,實踐中,這不需要太大的原因,同這個原理是有聯絡的。

路徑的蒙特卡洛取樣技術, 不是取樣乙個點,是取樣一條路徑,比較有名的是path sampling,用於化學反應上中的過渡路徑搜尋。

副本交換取樣演算法,一些複雜的取樣優化也要用到。

目前看過最偏門的:超對稱取樣演算法,沒錯,就是粒子物理中的超對稱,確實有人用到蛋白質構象搜尋上去(http://

arxiv.org/pdf/cond-mat/

0611781.pdf

)。早期在langevin方程中發現,同hessian矩陣有關。

怎麼通俗理解蒙特卡洛模擬?

wx3a5dc9fd1c5b1c5e 看了樓上的都很專業!但是都不通俗。其實只要記住,蒙特卡洛是個賭城的城市就行了。沒錯。就是賭博。為什麼炸金花三張比對子厲害。多賭就知道了。摘自 得到 小熊軟糖 蒙特卡洛是研究隨機性的方法,從隨機方法中找到確定答案,確定概率的方法。比較經典的乙個實驗,就是 的計算。...

可微蒙特卡洛光線追蹤 演算法 能提公升實時光追效率麼?

pasu 目前都是離線,還沒有實時的應用,也主要應用在inverse problem 具體在渲染方面,大概有兩個,都是基於梯度優化MLT中的光路取樣的接受率 Hessian Hamiltonian Monte Carlo Rendering Langevin Monte Carlo Renderin...

如何通俗地理解 蒙特卡洛方法 ,它解決問題的基本思路是什麼,目前主要應用於哪些領域?

hu zhi 看了現有的幾個回答,發現大家都不太會說話。題主問的是 如何通俗理解 關鍵在於 通俗 兩個字。我來回答樓主如何 通俗 理解 蒙脫卡洛方法 這個方法簡單來說就是 瞎 jb 試 例子 1 你乙個不均勻硬幣正面朝上的概率 p 0 到 1 之間 不知道 p 是多少,你就撒個一百萬次,如果其中 3...