蒙特卡洛方法中,有哪些演算法或者技巧讓你耳目一新,提高智商?
01-18
例如mentripolis hasting . 或者簡單到acceptance - rejection, 又或者用它來求積分。
有什麼樸素而又簡單的思想提高了你的智商?
早期研究過一些,列一些同蒙特卡羅思想相關的原理和演算法,其中一些非常偏門歪道,然而當初知道後是被深深震驚了的。具體wiki或google
- 細緻平衡,數學上看起來low,不過上升到物理的對稱後就很有趣了,同構象遍歷性有關。
- 蒙特卡洛方法和路徑積分的聯繫。對應一個基於蒙卡的採樣演算法,都有一個路徑積分表示,偏門歪道。
- Jarzynski 等式,這個巨屌,可用於非平衡採樣。比如,MCMC鏈的重要性採樣中,一般要間隔比較長的採樣步取樣,以避免樣本關聯,Jarzynski 等式允許你去掉這個限制,後期有技巧重構給定的分布。有啥用?不談物理上的影響,機器學習有個叫:對比分歧法k-cd,其中k是採樣步,實踐中,這不需要太大的原因,同這個原理是有聯繫的。
- 路徑的蒙特卡洛採樣技術, 不是採樣一個點,是採樣一條路徑,比較有名的是path sampling,用於化學反應上中的過渡路徑搜索。
- 副本交換採樣演算法,一些複雜的採樣優化也要用到。
- 目前看過最屌的最偏門的:超對稱採樣演算法,沒錯,就是粒子物理中的超對稱,確實有人用到蛋白質構象搜索上去(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 samplingsample每一個節點的時候,只需要計算和該節點有依賴關係的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隨機數生成器?