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

例如mentripolis hasting . 或者簡單到acceptance - rejection, 又或者用它來求積分。

有什麼樸素而又簡單的思想提高了你的智商?


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

  1. 細緻平衡,數學上看起來low,不過上升到物理的對稱後就很有趣了,同構象遍歷性有關。
  2. 蒙特卡洛方法和路徑積分的聯繫。對應一個基於蒙卡的採樣演算法,都有一個路徑積分表示,偏門歪道。
  3. Jarzynski 等式,這個巨屌,可用於非平衡採樣。比如,MCMC鏈的重要性採樣中,一般要間隔比較長的採樣步取樣,以避免樣本關聯,Jarzynski 等式允許你去掉這個限制,後期有技巧重構給定的分布。有啥用?不談物理上的影響,機器學習有個叫:對比分歧法k-cd,其中k是採樣步,實踐中,這不需要太大的原因,同這個原理是有聯繫的。
  4. 路徑的蒙特卡洛採樣技術, 不是採樣一個點,是採樣一條路徑,比較有名的是path sampling,用於化學反應上中的過渡路徑搜索。
  5. 副本交換採樣演算法,一些複雜的採樣優化也要用到。

  6. 目前看過最屌的最偏門的:超對稱採樣演算法,沒錯,就是粒子物理中的超對稱,確實有人用到蛋白質構象搜索上去(http://arxiv.org/pdf/cond-mat/0611781.pdf)。早期在langevin方程中發現,同hessian矩陣有關。


剛開始學MC的時候,印象最深的還是importance sampling。


  • slice sampler:如果目標密度函數較複雜但可以拆成若干簡單函數的乘積,那可以對拆出來的每一項運用acceptance-rejection的思路,相對Metropolis-Hastings方法最大的優勢就是不需要絞盡腦汁構造proposal distribution

  • approximate Bayesian computation:最近開始流行起來的、用來應對複雜模型下likelihood function未知的情況,簡直比MCMC還要「傻瓜」還要「暴力」


simulated annealing


hamiltonian monte carlo


Adaptive Monte Carlo Localization,自適應粒子濾波定位演算法,機器人定位最穩定的演算法。

adaptive指的是用kld演算法控制粒子數,暫且不談。談一下蒙特卡羅定位部分。

大概就是猜一下機器人可能出現的位置(運動模型),在這些位置附近隨機撒一些粒子,然後看一下如果機器人在這兒,能得到實際觀測到的數據的可能性有多大(似然),最後選一個可能性最大的點作為機器人的實際位置。(或者是位置關於權重(歸一化後的似然)的加權平均)。

這種演算法有什麼好處呢?好處就是符合直覺,任何感測器都能用,而且一旦演算法收斂了以後精度很高,計算量也很小,不存在累計誤差。見過很多自動定位機器人使用的都是這種演算法。


謝邀!

gibbs sampling, MCMC

關注大數據,歡迎加我們微信 idacker


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

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


基於bayes graph模型的gibbs sampling

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


GPUMCD(GPU based Monte Carlo Dose calculation)

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

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


Particle Monte Carlo


Direct simulation Monte Carlo(DSMC)


推薦閱讀:

量子蒙特卡洛方法是什麼?
布豐用投針實驗估計了 π 值,那麼用什麼簡單方法可以估計自然對數的底數 e 的值?
如何用一個1-8隨機生成器製作一個1-7隨機數生成器?

TAG:數學 | 智商 | 統計 | 蒙特卡洛積分 | 蒙特卡洛方法 |