蒙特卡洛梯度估計方法(MCGE)簡述

2021-01-14 PaperWeekly
動機機器學習中最常見的優化算法是基於梯度的優化方法,當目標函數是一個類似如下結構的隨機函數 F(θ) 時:



優化該類目標函數,最核心的計算問題是對隨機函數 F(θ) 的梯度進行估計,即:



隨機函數梯度估計在機器學習以及諸多領域都是核心計算問題,比如:變分推斷,一種常見的近似貝葉斯推斷方法;強化學習中的策略梯度算法;實驗設計中的貝葉斯優化和主動學習方法等。其中,對於函數期望類目標問題,最常見的是基於蒙特卡洛採樣的方法。



背景知識要了解基於蒙特卡洛採樣的梯度估計方法,首先先了解蒙特卡洛採樣方法和隨機優化方法。



MCS 是一種經典的求解積分方法,公式(1)中的問題通常可以用 MCS 近似求解如下:



其中, 採樣自分布 p(x;θ),由於採樣的不確定性和有限性,這裡  是一個隨機變量,公式(3)是公式(1)的蒙特卡洛估計器(MCE)。這類方法非常適用於求解形式如公式(1)的積分問題,尤其是當分布 p(x;θ) 非常容易進行採樣的時候。


1. 一致性,根據大數定理,當所採樣的樣本數量非常多時,MCE 的估計值將會收斂到積分的真值處。2. 無偏性,MCE 是對所求積分的一個無偏估計,簡單推導如下:


3. 小方差,當幾個估計方法都是無偏估計時,我們通常會選擇方差較小的 MCE,因為更小方差的 MCE 會估計地更準,從而使得優化地效率更高、準確性更好。


4. 可計算性,很多機器學習問題都是高維問題,如何提高 MCE 的可計算性,比如:減少採樣、提高並行能力等變得十分重要。如圖 1 所示,隨機優化問題通常包含兩個過程,一是仿真過程,輸入優化變量,獲得響應值 F(θ),然後計算出,其中是個隨機變量 ;二是優化過程,基於梯度,迭代更新優化變量。不同於確定性優化,隨機優化算法包含兩個部分的隨機性:應用基於蒙特卡洛採樣的梯度估計方法(MCGE)在很多研究領域都起到了核心作用,本節總結一下其在機器學習領域中的典型應用。


變分推斷(Variational Inference, VI)


VI 是貝葉斯推斷中的一大類方法,在統計機器學習(貝葉斯視角)中具有廣泛的應用。從上圖中可以看出,變分推斷 (VI) 的思想非常簡單。假設一個變分分布簇,在概率空間中找到一個離真實分布最近的分布。VI 巧妙地將一個推斷問題轉化為了優化問題,優化目標是 KL(Q||P),即待求分布 Q 和真實後驗分布 P 的距離,優化的變量是分布 Q 的描述參數。


VI 方法綜述將在另外一篇文章中詳細介紹,本文只簡單說明其目標函數是一個形如公式(1)的問題。考慮一個生成模型問題 p(z)p(x|z),其中 z 是隱變量,x 是觀測變量,p(z) 是先驗分布,p(x|z) 是似然函數。根據貝葉斯公式:



其中 p(x)=ʃp(z)p(z|x),稱為 evidence,通常 p(x) 是一個不可積的多重積分,導致後驗分布 p(z|x) 無法獲得解析解。如上述思路所述,假設後驗分布用一個變分分布 q(z|x;θ) 來近似,通過構造如下優化問題:



來求解使得兩個分布距離最小的變分分布參數 θ,從而得到近似後驗分布。


因為真實後驗分布是未知的,直接優化公式(6)是一件比較有挑戰的事情,VI 巧妙地將其轉化為優化 ELBO 的問題。





由 KL 散度的定義可知,KL(q(z|x;ф)||p(z|x;θ))≥0,同時 logp(x;θ) 是個常數,所以求優化問題(6)等價於求如下優化問題:



相當於求解 log evidence lower bound,即 eblo。繼續推導如下:



公式(10)的形式如公式(1),可以用 MCGE 進行梯度估計,從而優化求解。


變分推斷方法是一個熱門研究領域,而核心問題是如何高效求解 elbo 優化問題,在統計物理、資訊理論、貝葉斯推斷、機器學習等諸多領域由廣泛的應用。



強化學習是機器學習中一大類熱門研究領域,尤其是 AlphaGo 的橫空出世,為強化學習帶來了更多的關注和更多的研究人員。本文將不對強化學習的任務和各種概念進行贅述,強化學習中的一大類問題是無模型的策略搜索問題,即通過優化累計回報的均值學習到最優策略。所謂累計回報的均值形式如下:



公式(11)形式亦如公式(1),可以用 MCGE 進行梯度估計,從而優化求解。實驗設計是個非常廣泛的領域,主要是研究如何為實驗設置合適的配置,比如:自動機器學習中的超參數調優(HPO)、神經架構搜索(NAS),通過主動學習(Active Learning)選擇更加合適的樣本進行標註,老虎機問題的求解(Bandit)等等。


這類任務中經常會遇到一個問題,如何選擇下一個更好的配置,使得選擇之後比選擇之前性能的概率會有所提升。因此需要優化如下問題:



公式(12)形式亦如公式(1),可以用 MCGE 進行梯度估計,從而優化求解。


簡單總結一下,優化是機器學習訓練中最重要的部分,而其中很多優化問題都是形如公式(1)的問題,而 MCGE 是解決這類問題的有效手段,接下來介紹兩種經典的 MCGE 方法。


方法綜述公式(1)中的積分內是一個分布和代價函數的乘積,在對其梯度進行近似估計時,可以從兩個方面進行求導。由此,可以將梯度估計方法大致分為兩類:


根據公式(2)待估計的梯度是,直接計算會非常困難,一個直觀的思路是研究如何將期望的梯度轉化為梯度的期望,從而可以利用 MCS 做無偏近似估計。本文將會介紹兩種經典的方法,來解決這個問題。


Score Function Gradient Estimator (SFGE)


SFGE 是最經典的方法,也是適用性最好的方法,在強化學習中的策略梯度優化問題裡,有一個算法叫做 REINFORCE,正是基於 SFGE 來做的。SFGE 也常常被用於解決目標函數不可導的優化問題以及一些黑盒優化問題。



所謂的 score function 是,之所以選擇這個函數,是因為以下兩點原因:


1. score function 的期望為 0,證明如下:


這樣會帶來非常多的便利,比如:一種降低估計方差的思路,將代價函數 f(x) 改造為 f(x)-b,其中 b 是所謂的 baseline。因為 score function 的期望為 0,所以:



2. score function 的方差是 Fisher 信息量。








其中,。


從上述推導中可以看到,通過引入 score function,可以成功地將期望的梯度變換為梯度的期望,從而實現梯度的近似估計。


這中間有一個過程是將積分和微分操作的位置進行了對換,此操作並非可以隨意進行,需要滿足一定的條件,但一般的機器學習問題都會滿足。



代價函數 f(x) 可以是任意函數。比如可微的,不可微的;離散的,連續的;白箱的,黑箱的等。這個性質是其最大的優點,使得很多不可微的甚至沒有具體函數的黑箱優化問題都可以利用梯度優化求解。

分布函數 p(x;θ) 必須對 θ 是可微的,從公式中也看得出來。

分布函數必須是便於採樣的,因為梯度估計都是基於 MC 的,所以希望分布函數便於採樣。

SFGE 的方差受很多因素影響,包括輸入的維度和代價函數。



SFGE 由於其對代價函數沒有限制,具有非常廣闊的應用場景,以下是幾個非常熱門的應用:


策略梯度優化算法 REINFORCE 及其變種

基於 GAN 的自然語言生成

基於自動微分的黑盒變分推斷



Pathwise Gradient Estimator (PGE)


不同於 SFGE 對代價函數沒有任何約束,PGE 要求代價函數可微,雖然 SFGE 更具一般性,但 PGE 會有更好的性質。PGE在機器學習領域有一個重要的方法是 reparameterization trick,它是著名的深度生成模型 VAE 中一個重要的步驟。



PGE 的思路是將待學習的參數從分布中變換到代價函數中,核心是做分布變換(即所謂的 reparameterization ,重參數化),計算原來分布下的期望梯度時,由於變換後的分布不包含求導參數,可將求導和積分操作進行對換,從而基於 MC 對梯度進行估計。



如上述公式,從一個含參 θ 分布中採樣,等同於從一個簡單無參分布中採樣,然後進行函數變換,並且此函數的參數也是 θ。變換前,採樣是直接從所給分布中進行,而採用重參數化技巧後,採樣是間接地從一個簡單分布進行,然後再映射回去,這個映射是一個確定性的映射。其中,映射有很多中思路,比如:逆函數、極變換等方法。


PGE 的一個重要理論依據是 Law of the Unconscious Statistician (LOTUS) ,即:



從定理中可以看到,計算一個函數的期望,可以不知道其分布,只需要知道一個簡單分布,以及從簡單分布到當前分布的映射關係即可。



基於 Law of the Unconscious Statistician (LOTUS) 對 PGE 進行推導,如下:





其中 。從推導中可以看出,分布中的參數被 push 到了代價函數中,從而可以將求導和積分操作進行對換。分布變換是統計學中一個基本的操作,在計算機中實際產生各種常見分布的隨機數時,都是基於均勻分布的變換來完成的。有一些常見的分布變換可參見下表:



總結蒙特卡洛採樣(MCS)是求解函數期望的常用近似方法,優點是簡單易用,通過一定的變換,可以對期望的梯度進行估計,從而完成對代價函數的優化,實現很多任務。但 MCS 的缺點也非常明顯,為了保證一定的估計效果,往往需要很大量的採樣規模,對於大數據、高維度等實際問題來說,過多的採樣會導致算法效率極低,從而降低了算法的實用性。從這個角度來說,如何研究一些新方法,來提高期望或者期望梯度的近似估計效率是一個非常重要的問題。最後,推薦兩篇 2019 年的工作 [4] [5],旨在嘗試解決這個問題。 上述研究雖然有一定的局限性,但嘗試了新的思路來解決這一問題。其中第 [5] 篇,嘗試用一些 Uncertainty Qualification (UQ) 的方法,比如用一些不確定性傳播的估計方法,對期望進行確定性估 計,而非隨機採樣估計,在一定的假設下,確實有非常顯著的效果。


參考文獻


[1] Mohamed, S., Rosca, M., Figurnov, M., & Mnih, A. (2019). Monte Carlo Gradient Estimation in Machine Learning. ArXiv Preprint ArXiv:1906.10652. 

[2] Fu, M. C. (2005). Stochastic Gradient Estimation, 105–147. 

[3] Shakir's Machine Learning Blog http://blog.shakirm.com 

[4] Postels, J., Ferroni, F., Coskun, H., Navab, N., & Tombari, F. (2019). Sampling-free Epistemic Uncertainty Estimation Using Approximated Variance Propagation. ArXiv Preprint ArXiv:1908.00598. 

[5] Wu, A., Nowozin, S., Meeds, T., Turner, R. E., Lobato, J. M. H., & Gaunt, A. (2019). Deterministic Variational Inference for Robust Bayesian Neural Networks. In ICLR 2019 : 7th International Conference on Learning Representations.


相關焦點

  • 蒙特卡洛方法到底有什麼用?
    蒙特卡洛方法(Monte Carlo method,也有翻譯成「蒙特卡羅方法」)是以概率和統計的理論、方法為基礎的一種數值計算方法,將所求解的問題同一定的概率模型相聯繫,用計算機實現統計模擬或抽樣,以獲得問題的近似解,故又稱隨機抽樣法或統計試驗法。上述就是蒙特卡洛方法的基本概念,比較抽象,下面結合實際工作中的理解,談一談對蒙特卡洛方法的一些認識。
  • 蒙特卡洛模擬方法
    在本文中您可以學習到以下幾點知識蒙特卡洛定積分算法原理講解(公式篇)python實現算法(代碼篇)蒙特卡洛算法起源       蒙特卡羅方法於20世紀40年代美國在第二次世界大戰中研製原子彈的「曼哈頓計劃」計劃的成員S.M.烏拉姆和J.馮·諾伊曼首先提出。
  • 蒙特卡洛模擬方法及應用案例
    是把概率現象作為研究對象的數值模擬方法。是按抽樣調查法求取統計值來推定未知特性量的計算方法。蒙特卡羅法作為一種計算方法,是由美國數學家烏拉姆與美籍匈牙利數學家馮·諾伊曼在20世紀40年代中葉,為研製核武器的需要而首先提出來的。蒙特卡羅是摩納哥的著名賭城,該法為表明其隨機抽樣的本質而命名,故適用於對離散系統進行計算仿真試驗。
  • 一文了解AlphaGo中蒙特卡洛方法的由來與發展
    AlphaGo想必大家都相當熟悉了,除了卷積神經網絡技術的應用,蒙特卡洛搜索方法也是起到關鍵性作用的技術手段。接下來就簡單介紹蒙特卡洛方法的由來與發展過程。,主要是為核武器的研發和製作而工作,蒙特卡洛方法以概率統計為理論指導,由於一個簡單的隨機數發生器一輪盤賭,外加烏拉姆的叔叔十分嗜好賭博且經常在蒙特卡洛賭場輸錢,方法便以摩納哥的馳名世界的賭城-蒙特卡洛來命名,蒙特卡洛方法的名稱和系統開發由此開始。
  • 詳解蒙特卡洛方法:這些數學你搞懂了嗎?
    該系列文章現已介紹了賭博機問題、馬爾可夫決策過程和蒙特卡洛方法。本文是對其中蒙特卡洛方法文章的編譯。first-visit 蒙特卡洛求解價值函數的一種經典方法是採樣 s 的第一次出現的回報,這種方法被稱為 first-visit 蒙特卡洛預測。
  • 無需數學知識:快速了解馬爾可夫鏈蒙特卡洛方法
    而在貝葉斯方法家族當中,馬爾可夫鏈蒙特卡洛方法(Markov chain Monte Carlo methods)顯得尤為神秘。雖然其中確實涉及大量數學知識且需要昂貴的計算資源,但與數據科學領域的眾多其它方法一樣,其中的基本推理過程同樣可以通過非常直觀的方式進行歸納。而這正是本文的核心主旨所在。
  • 蒙特卡洛方法在美式期權定價中的應用
    蒙特卡洛方法是以概率和統計理論方法為基礎的一種計算方法,利用隨機數(實際應用中通常為偽隨機數)來產生隨機的基於一定分布假設的數字序列,進而解決各種計算問題。通過對問題的結果分布進行假設和擬合,利用電子計算機實現統計模擬或抽樣,以獲得問題的近似解。為象徵性地表明這一方法的概率統計特徵,故借用賭城蒙特卡洛命名。
  • 蒙特卡洛模擬(Monte Carlo Simulation)
    一、介紹蒙特卡洛模擬是一種統計學方法,用來模擬大量的數據。
  • 蒙特卡洛模擬(Python)深入教程
    蒙特卡洛模擬使我們能夠看到決策的所有可能結果,並評估風險影響,從而在不確定的情況下更好地做出決策。在本文中,我們將通過五個不同的例子來理解蒙特卡羅模擬方法。因此,這就是我們可以如何使用蒙特卡羅模擬來通過實驗找到概率的方法。b.使用圓形和正方形估算PI:圖9:圓形和正方形的簡單面積。圖10:分別計算圓形和正方形的面積。要估計PI的值,我們需要正方形的面積和圓的面積。
  • 科研人員提出精確估計光度函數方法
    該項研究基於現代統計學中的核密度估計原理,提出了一種精確估計光度函數的普適方法,它對於統計研究星系、活動星系核、伽馬暴等河外天體的演化性質有重要價值。 光度函數是一個非常基本的統計量,它反映宇宙中某類天體的數密度隨紅移和光度(或星等)的變化情況。準確地確定各類天體的光度函數及其演化一直是天文學中的重要課題。估計光度函數的方法主要分為參數方法和非參數方法。
  • MCMC、蒙特卡洛近似和Metropolis算法簡介
    所以MCMC的目的就是運用蒙特卡洛模擬出一個馬可鏈(Markov chain)。如今,概率建模風靡一時,但是當我第一次了解它時,總有一件事情困擾我。 許多貝葉斯建模方法都需要計算積分,而我看到的任何工作示例似乎都使用高斯或伯努利分布,原因很簡單如果您嘗試使用比這更複雜的方法,它將成為分析的噩夢。
  • 什麼是蒙特卡洛模擬?
    蒙特卡洛方法正是以概率為基礎的方法,因為偶然性和隨機結果是建模技術的核心,就像輪盤賭,骰子和老虎機等遊戲一樣。蒙特卡洛方法(Monte Carlo method),也稱統計模擬方法,是二十世紀40年代中期由於科學技術的發展和電子計算機的發明,而提出的一種以概率統計理論為指導的數值計算方法。其使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。
  • 蒙特卡洛模擬算法|公開課3
    本篇是「微慕課」公開課系列第3講——蒙特卡洛模擬算法蒙特卡洛(Monte Carlo)模擬方法是一種廣受好評的算法,
  • 吳恩達團隊提出NGBoost梯度提升方法
    10月14日消息,在論文《NGBoost: Natural Gradient Boosting for Probabilistic Prediction》中,來自斯坦福的研究者們提出了NGBoost梯度提升方法,以解決現有梯度提升方法難以處理的通用概率預測中的技術難題。
  • 精確估計光度函數新方法 有望揭開諸多宇宙奧秘
    本文轉自【科技日報】;科技日報訊 (記者趙漢斌 通訊員陳豔)基於現代統計學中的核密度估計原理,近期中國科學院雲南天文臺與英國牛津大學研究人員合作,提出了一種精確估計光度函數的普適方法,這對於統計研究星系、活動星系核、伽馬暴等河外天體的演化性質有著重要價值。
  • 元分析隨機效應模型中不同的異質性估計方法對結果有影響嗎?
    前面文章推送了一篇對比不同的異質性方差估計方法的文章。中文摘要如下:元分析隨機效應模型假設,從一組研究得出的效應量估計值的變異性可分解為兩部分:由於隨機總體效應引起的異質性和抽樣方差。在這種情況下,通常的目標是估計總體效應量的集中趨勢和異質性量。一組效應量中的異質性量對元分析發現的解釋具有影響,並且通常用作潛在調節變量存在的指標。本文分析了五種總體異質性估計量,並通過蒙特卡洛模擬對其偏倚和效能進行了比較。那麼我們想問的一個問題是不同方法得到結果差異大嗎?下面我們通過一個實際例子演示一下,大家就可以進行自行判斷了。
  • 一份數學小白也能讀懂的「馬爾可夫鏈蒙特卡洛方法」入門指南
    選自Medium 作者:Ben Shaver 機器之心編譯 參與:黃小天、劉曉坤 在眾多經典的貝葉斯方法中,馬爾可夫鏈蒙特卡洛(MCMC)由於包含大量數學知識,且計算量很大,而顯得格外特別。在貝葉斯經典方法中,馬爾可夫鏈蒙特卡洛(Markov chain Monte Carlo/MCMC)尤其神秘,其中數學很多,計算量很大,但其背後原理與數據科學有諸多相似之處,並可闡釋清楚,使得毫無數學基礎的人搞明白 MCMC。這正是本文的目標。那麼,到底什麼是 MCMC 方法?
  • 人工智慧輕鬆學 | AI算法連載04:數學基礎之蒙特卡洛方法與MCMC採樣
    i1yEETC-電子工程專輯而其實,AI算法沒有想像的那麼難,為此,機器人網整理了一整套AI算法知識,包括:i1yEETC-電子工程專輯從最基本的數學基礎,譬如線性代數、概率論、牛頓法等數值計算、蒙特卡洛方法與
  • 蒙特卡洛算法在程序化研究中簡單應用
    可以從CPI、PPI、貨幣發行量等宏觀經濟指標出發,建立擇時交易系統,這種方法為多為機構應用。    微觀方面,筆者認為,可以講傳統的指標組合方法進行升華,引入在物理數學中成熟的數學模型,改進傳統的程序化交易模型,如運用數值計算中的蟻群算法和模擬退火算法等,本文介紹的也是數值計算中的蒙特卡洛算法。
  • 蒙特卡洛方法-概率密度函數
    簡介為了更加清楚的讓同學們深刻的理解PBR裡面那些公式背後的東西,同學們務必先來擼一遍光線追蹤,畢竟我們這裡舉例的這些蒙特卡洛方法都是光線追蹤第三卷裡