作為一種隨機取樣方法,【馬爾科夫鏈蒙特卡羅】(markov chain monte carlo,以下簡稱mcmc)在機器學習,深度學習以及自然語言處理等領域都有廣泛的應用,【是很多複雜演算法求解的基礎】。下面我們就對mcmc的原理做乙個總結。
從名字我們可以看出,mcmc由兩個mc組成,即蒙特卡羅方法(monte carlo simulation,簡稱mc)和馬爾科夫鏈(markov chain ,也簡稱mc)。【要弄懂mcmc的原理我們首先得搞清楚蒙特卡羅方法和馬爾科夫鏈的原理】。隨機模擬也可以叫做【蒙特卡羅模擬(monte carlo simulation)】。
隨機模擬中有乙個重要的問題就是【給定乙個概率分布p(x) , 我們如何在計算機中生成它的樣本】。
一般而言均勻分布 uniform(0,1) 的樣本是相對容易生成的。 通過【線性同餘發生器】可以生成偽隨機數,我們用確定性演算法生成[0,1]之間的偽隨機數序列後,這些序列的各種統計指標和均勻分布 uniform(0,1) 的理論計算結果非常接近。這樣的偽隨機序列就有比較好的統計性質,【可以被當成真實的隨機數使用】。蒙特卡羅原來是乙個賭場的名稱,用它作為名字大概是因為蒙特卡羅方法【是一種隨機模擬的方法】,這很像賭博場裡面的扔骰子的過程。最早的蒙特卡羅方法都是為了【求解一些不太好求解的求和或者積分問題】。1、比如積分:$$ \theta = \int _ ^ f ( x ) d x $$,【如果我們很難求解出f(x)的原函式,那麼這個積分比較難求解】。當然我們可以通過蒙特卡羅方法來模擬求解近似值。如何模擬呢?
2、則乙個簡單的近似求解方法是在[a,b]之間隨機的取樣乙個點。比如x0 ,然後用x0代表在[a,b]區間上所有的f(x)的值。那麼上面的定積分的近似求解為:(b-a)f(x0),當然,用乙個值代表[a,b]區間上所有的 f(x) 的值,這個假設太粗糙。【那麼我們可以取樣[a,b]區間的n個值:x0,x1,...xn-1】 ,用它們的均值來代表[a,b]區間上所有的 f(x) 的值。這樣我們上面的定積分的近似求解為:$$\frac \sum _ ^ f ( x _ )$$參考:
mcmc隨機取樣 - 知乎
系統取樣頻率的一些考慮
系統取樣頻率的一些考慮 在數字訊號處理中,要求待處理的訊號都是離散的,而且還要是經過量化的。但在現實的世界中,比如電壓 溫度等都是連續的量,也即是通常所說的模擬訊號。因此,在進行數字訊號處理之前,需要把這些連續的訊號轉變為數碼訊號。這種轉換由adc來完成。將模擬訊號轉換為數碼訊號,實際上包含著兩部分...
系統取樣頻率的一些考慮
系統取樣頻率的一些考慮 在數字訊號處理中,要求待處理的訊號都是離散的,而且還要是經過量化的。但在現實的世界中,比如電壓 溫度等都是連續的量,也即是通常所說的模擬訊號。因此,在進行數字訊號處理之前,需要把這些連續的訊號轉變為數碼訊號。這種轉換由adc來完成。將模擬訊號轉換為數碼訊號,實際上包含著兩部分...
一些上取樣操作筆記
所謂上取樣簡單的講就是將一幅影象的分別率提高,比如原始影象是256 256,經過2倍的上取樣變為了512 512的影象。最常見的實現方式是插值,比如雙線性插值,立方插值等,還有一些卷積方式的上取樣操作,比如反卷積,亞畫素卷積等。unpooling unpooling是cnn中max pooling的...