R and Stan:貝式運算的新星

Sam Chiu
Sam Chiu
Aug 31, 2018 · 5 min read

眾所皆知貝式統計 (Bayesian Statistics) 相較與古典統計而言,在運算上需耗費較多的資源且容易受到硬體限制。隨著電腦運算在近年來的提升,許多複雜的後驗分布 (posterior distribution)的計算從不可能變成可能後,貝式統計也逐漸拾回人們的注目。現代貝氏統計的運算,極度仰賴MCMC (Markov Chain Monte Carlo)來取得後驗分布,其中Metropolis-Hasting或Gibbs Sampler是MCMC最受歡迎的採樣方法。一個好的貝式運算軟體,能夠支援這兩種採樣方法幾乎是必備條件。

講到貝式運算軟體,多數人可能會直接聯想到WinBUGS (Bayesian Inference Using Gibbs Sampler)。約在十多年前,WinBUGS是貝式運算軟體中的主流,但BUGS家族 (WinBUGS、OpenBUGS…)為Component Pascal所寫的特性,一個少許人熟悉的語言,讓BUGS在後續開發與維護上相當不易。爾後,隨著JAGS (Just Another Gibbs Sampler)的出現,貝式軟體使用的情勢也出現變化。JAGS雖然寫法和WinBUGS相似,但JAGS是基於C++所建立的語言。C++廣大的社群以及良好的平台獨立性,再加上MCMC運算速度上的改善,讓JAGS順理成章地取代WinBUGS,成為貝式運算的王者。

不過即便是WinBUGS或是JAGS都是以Gibbs Sampler或Metropolis-Hasting採樣為主的軟體,即便在程式上有了優化,本質上還是會被MCMC的一些缺點所受限。本文欲介紹的主角Stan,是一款以MCMC改善版─Hamiltonian Monte Carlo (HMC)為基礎建立的軟體。


Stan Logo (Source: mc-stan)

Stan的起源

Stan是在2012年開始,由哥倫比亞大學 (University of Columbia)應用統計系的學者為首所開發的貝式運算軟體。Stan的開發者之一Andrew Gelman,是貝式統計的大師,在他的經典教科書《Bayesian Data Analysis》最新版中,也已經全更新由Stan作為程式基礎。Stan的命名,是取自並紀念Monte Carlo方法的先驅─Stanislaw Ulam (他也是著名的曼哈頓計畫參與者之一)。Stan問世至今約5、6年,雖然是一個相對年輕的軟體,但已在學界與產業界逐漸累積人氣。甚至許多使用BUGS或JAGS的舊用戶,也紛紛詢問並已轉換至Stan來建立貝式模型。

一個新工具的開發,不外乎是為了解決現有工具的限制。Stan開發的目的主要是為了解決BUGS與JAGS無法對付的複雜模型,並且加速Monte Carlo模擬的運算速度。為此,Stan相對他的老前輩,有幾個特點與優勢:

  • Stan預設的採樣法是No-U-Turn Sampler (NUTS) ,是一種Hamiltonian Monte Carlo (HMC)的變型。HMC最大的改善是減少傳統MCMC因autocorrelation所帶來的影響。雖然在單次採樣的cost較多,但整體上達到收斂所需的iteration與時間相較MCMC仍可減少許多。
  • Stan支援automatic differentiation variational inference (ADVI),一種自動化variational Bayes inference的演算法。Variational inference相較MCMC在大規模的資料集應用上有明顯優勢,在機器學習與人工智慧的社群也有很廣泛的應用。但一般要針對不同的model部署variational algorithm,並非易事。Stan能夠支援自動化部署, 讓使用者僅須提供模型就能達到viariational inference,是一項很強大的功能。

安裝與支援

Stan是由C++所建立的軟體,可安裝於Windows、Linux、Mac平台。Stan提供多個程式語言的接口,包含R、Python、Matlab、Julia、Scala等。不過雖然Stan理論上提供多個選項,但大多數的Stan使用者與資源還是來自於R的社群。而就如同本文標題所示,筆者也是RStan的愛好者,日後有關於Stan的操作展示,也會基本以RStan為主。本文僅初步介紹Stan的特色,安裝過程會在之後的文章詳細介紹。另外,Stan的官方網站也提供相當詳細的Stan的安裝方式,本文也提供連結予讀者參照:

總結

Stan的官方網站文件齊全,社群論壇也很活躍,雖然發展時間不長卻能夠逐漸成為學業界焦點,歸因其背後有著非常出色的開發者與社群在支持。幾乎可肯定的是,Stan會成為接下來幾年的貝式統計焦點。

Reference

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade