人工智慧輕鬆學 | AI算法連載04:數學基礎之蒙特卡洛方法與MCMC採樣

2020-12-05 電子工程專輯

一、前言

在人工智慧AI如火如荼的大潮下,越來越多的工程師們意識到算法是AI的核心。而面對落地的應用,不懂算法的AI產品經理將是空談,不僅無法與工程師溝通,更無法深刻理解應用的性能與方式。所以業界逐漸形成一種共識:i1yEETC-電子工程專輯

不懂算法的工程師做不了AI,不懂算法的產品經理將把AI帶入泥潭。i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

而其實,AI算法沒有想像的那麼難,為此,機器人網整理了一整套AI算法知識,包括:i1yEETC-電子工程專輯

最基本的數學基礎,譬如線性代數、概率論、牛頓法等數值計算、蒙特卡洛方法與MCMC採樣等;i1yEETC-電子工程專輯

統計學,如:機器學習、向量、貝葉斯定理、決策樹、梯度、模型評估、降維、聚類、邊際、模型等等;i1yEETC-電子工程專輯

再到深度學習,如:前饋神經網絡、反向傳播算法、卷積升級網絡、CNN圖片分類、循環神經網絡等等;i1yEETC-電子工程專輯

以及自然語言處理NLP等等;i1yEETC-電子工程專輯

還有AI算法中的各種工具和模型i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

我們將把這些AI基礎理論和算法以連載的形式在機器人網公眾號和網站上發布,供AI愛好者免費學習。i1yEETC-電子工程專輯

本次連載將歷時一月有餘,通過這一個月的學習,AI初學者也將可能躍變成AI大神,進入未來二十年科技的金字塔尖。i1yEETC-電子工程專輯

當然,這需要你的堅持、專注,和努力。感興趣的同學可以關注我們,並加微信(Aspencore6)入群分享交流。i1yEETC-電子工程專輯


 i1yEETC-電子工程專輯

二、理論理解與數學基礎

蒙特卡洛方法與MCMC採樣i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

作為一種隨機採樣方法,馬爾科夫鏈蒙特卡羅(Markov Chain Monte Carlo,以下簡稱MCMC)在機器學習,深度學習以及自然語言處理等領域都有廣泛的應用,是很多複雜算法求解的基礎。比如分解機(Factorization Machines)推薦算法,還有受限玻爾茲曼機(RBM)原理總結,都用到了MCMC來做一些複雜運算的近似求解。i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

從名字我們可以看出,MCMC由兩個MC組成,即蒙特卡羅方法(Monte Carlo Simulation,簡稱MC)和馬爾科夫鏈(Markov Chain ,也簡稱MC)。要弄懂MCMC的原理我們首先得搞清楚蒙特卡羅方法和馬爾科夫鏈的原理。i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

蒙特卡羅原來是一個賭場的名稱,用它作為名字大概是因為蒙特卡羅方法是一種隨機模擬的方法,這很像賭博場裡面的扔骰子的過程。最早的蒙特卡羅方法都是為了求解一些不太好求解的求和或者積分問題。i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

蒙特卡羅方法的關鍵是得到x的概率分布。如果求出了x的概率分布,我們可以基於概率分布去採樣基於這個概率分布的n個x的樣本集,帶入蒙特卡羅求和的式子即可求解。但是還有一個關鍵的問題需要解決,即如何基於概率分布去採樣基於這個概率分布的n個x的樣本集。i1yEETC-電子工程專輯


i1yEETC-電子工程專輯

不過很多時候,我們的x的概率分布不是常見的分布,這意味著我們沒法方便的得到這些非常見的概率分布的樣本集。那這個問題怎麼解決呢?i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

對於概率分布不是常見的分布,一個可行的辦法是採用接受-拒絕採樣來得到該分布的樣本。既然 p(x) 太複雜在程序中沒法直接採樣,那麼我設定一個程序可採樣的分布 q(x) 比如高斯分布,然後按照一定的方法拒絕某些樣本,以達到接近 p(x) 分布的目的,其中q(x)叫做 proposal distribution。i1yEETC-電子工程專輯

整個過程中,我們通過一系列的接受拒絕決策來達到用q(x)模擬p(x)概率分布的目的。i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

使用接受-拒絕採樣,我們可以解決一些概率分布不是常見的分布的時候,得到其採樣集並用蒙特卡羅方法求和的目的。但是接受-拒絕採樣也只能部分滿足我們的需求,在很多時候我們還是很難得到我們的概率分布的樣本集。比如:i1yEETC-電子工程專輯

1)對於一些二維分布p(x,y),有時候我們只能得到條件分布p(x|y)p(y|x)和,卻很難得到二維分布p(x,y)一般形式,這時我們無法用接受-拒絕採樣得到其樣本集。i1yEETC-電子工程專輯

2)對於一些高維的複雜非常見分布p(x1,x2,...,xn),我們要找到一個合適的q(x)k非常困難。i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

從上面可以看出,要想將蒙特卡羅方法作為一個通用的採樣模擬求和的方法,必須解決如何方便得到各種複雜概率分布的對應的採樣樣本集的問題。而我們下一篇要講到的馬爾科夫鏈就是幫助找到這些複雜概率分布的對應的採樣樣本集的白衣騎士。下一篇我們將總結馬爾科夫鏈的原理。i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

三、具體算法

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

i1yEETC-電子工程專輯

i1yEETC-電子工程專輯


本文理論部分部分引用了劉建平Pinard的博客:https://www.cnblogs.com/pinard/p/6625739.html。i1yEETC-電子工程專輯

本文算法部分作者華校專,曾任阿里巴巴資深算法工程師、智易科技首席算法研究員,現任騰訊高級研究員,《Python 大戰機器學習》的作者。這是作者多年以來學習總結的筆記,經整理之後開源於世。考慮到出版時間周期較長,而且書本購買成本高不利於技術廣泛傳播,因此作者採取開源的形式。 筆記內容僅供個人學習使用,非本人同意不得應用於商業領域。i1yEETC-電子工程專輯

 i1yEETC-電子工程專輯

相關焦點

  • MCMC、蒙特卡洛近似和Metropolis算法簡介
    所以MCMC的目的就是運用蒙特卡洛模擬出一個馬可鏈(Markov chain)。如今,概率建模風靡一時,但是當我第一次了解它時,總有一件事情困擾我。 許多貝葉斯建模方法都需要計算積分,而我看到的任何工作示例似乎都使用高斯或伯努利分布,原因很簡單如果您嘗試使用比這更複雜的方法,它將成為分析的噩夢。
  • 蒙特卡洛算法在程序化研究中簡單應用
    微觀方面,筆者認為,可以講傳統的指標組合方法進行升華,引入在物理數學中成熟的數學模型,改進傳統的程序化交易模型,如運用數值計算中的蟻群算法和模擬退火算法等,本文介紹的也是數值計算中的蒙特卡洛算法。
  • 機器學習之統計採樣方法和馬爾可夫過程(馬爾可夫鏈蒙特卡羅方法)匯總
    隨採樣數量的增加,誤差逐漸降低。在達到一定數量的採樣之後,誤差變化不大。說明採樣次數提高到一定值後,對運算精度變化影響較少。進而採取改變抽樣法來減小方差,從而提高積分計算的精度蒙特卡洛投點法應用求圓周率pi的近似值: (1)正方形內部有一個相切的圓,它們的面積之比是π/4。
  • 詳解蒙特卡洛方法:這些數學你搞懂了嗎?
    該系列文章現已介紹了賭博機問題、馬爾可夫決策過程和蒙特卡洛方法。本文是對其中蒙特卡洛方法文章的編譯。first-visit 蒙特卡洛求解價值函數的一種經典方法是採樣 s 的第一次出現的回報,這種方法被稱為 first-visit 蒙特卡洛預測。
  • 一份數學小白也能讀懂的「馬爾可夫鏈蒙特卡洛方法」入門指南
    選自Medium 作者:Ben Shaver 機器之心編譯 參與:黃小天、劉曉坤 在眾多經典的貝葉斯方法中,馬爾可夫鏈蒙特卡洛(MCMC)由於包含大量數學知識,且計算量很大,而顯得格外特別。本文反其道而行之,試圖通過通俗易懂且不包含數學語言的方法,幫助讀者對 MCMC 有一個直觀的理解,使得毫無數學基礎的人搞明白 MCMC。在我們中的很多人看來,貝葉斯統計學家不是巫術師,就是完全主觀的胡說八道者。
  • 蒙特卡洛模擬算法|公開課3
    本篇是「微慕課」公開課系列第3講——蒙特卡洛模擬算法蒙特卡洛(Monte Carlo)模擬方法是一種廣受好評的算法,
  • 蒙特卡洛模擬方法
    花費兩天的時間去幫老師研究課題,完成那一刻瞬間感覺自己學到的數學知識很有用。
  • 無需數學知識:快速了解馬爾可夫鏈蒙特卡洛方法
    而在貝葉斯方法家族當中,馬爾可夫鏈蒙特卡洛方法(Markov chain Monte Carlo methods)顯得尤為神秘。雖然其中確實涉及大量數學知識且需要昂貴的計算資源,但與數據科學領域的眾多其它方法一樣,其中的基本推理過程同樣可以通過非常直觀的方式進行歸納。而這正是本文的核心主旨所在。
  • 大講堂 | 人工智慧所需的數學基礎
    在本次雷鋒網AI研習社公開課中,講者將分享轉行深度學習所需要的數學基礎以及相關熱門的CNN、RNN、GAN的數學思考。分享主題人工智慧所需的數學基礎分享嘉賓張碩璽,武漢大學數學系碩士 分享提綱1、深度學習為什麼熱門2、深度學習所需要的數學基礎及相關思想
  • 蒙特卡洛方法到底有什麼用?
    蒙特卡洛方法(Monte Carlo method,也有翻譯成「蒙特卡羅方法」)是以概率和統計的理論、方法為基礎的一種數值計算方法,將所求解的問題同一定的概率模型相聯繫,用計算機實現統計模擬或抽樣,以獲得問題的近似解,故又稱隨機抽樣法或統計試驗法。上述就是蒙特卡洛方法的基本概念,比較抽象,下面結合實際工作中的理解,談一談對蒙特卡洛方法的一些認識。
  • MCMC(Markov Chain Monte Carlo)的理解與實踐(Python)
    MCMC(Markov Chain Monte Carlo)用MCMC採樣算法實現對Beta 分布的採樣MCMC(Markov Chain Monte Carlo)首先來看經典的MCMC採樣算法:用MCMC採樣算法實現對Beta 分布的採樣關於Beta distribution更詳盡的內容請參見 Beta函數與Gamma函數及其與Beta分布的關係。
  • 深度學習之Google Deepmind的Alphago人工智慧算法技術演變歷程
    一、簡介有些人會有如下質疑「Alphago都用了蒙特卡洛搜索樹了,這變成了一部分搜索問題了並不是人工智慧算法了或者說不夠智能了」,但我的拙見是人在思考問題的時候除了直覺、經驗判斷、邏輯推理之外也會去枚舉、搜索,所以我覺得算法包含一部分搜索並不能直接說該算法這不夠智能或者這不是智能算法了
  • 踏入AI領域,這些數學基礎一定要打好
    人工智慧市場發展迅猛,層出不窮的新算法和新工具讓人目不暇接。但是支撐其發展的基礎——數學理論,卻一直未變。對於初學者來說,它是人工智慧入門的基石。若是學習初期囫圇吞棗,往往會在算法出現accuracy不好、loss很高、模型已經overfitting的時候,才後悔沒有好好掌握基礎的數學理論。
  • 人工智慧發展駛入快車道 時代呼喚強化數學教育
    剛剛看到阿里巴巴「達摩院」舉辦全球數學大賽的消息,讓我想起近代數學的奠基者之一、德國數學家高斯說過的一句話:「數學是『科學的皇后』」。這句話彰顯了數學在所有學科中的基礎地位,隨著人工智慧時代的臨近,人們會愈來愈深刻地感受到數學所能帶來的創新之力。
  • 蒙特卡洛模擬法計算VaR的場景生成技術
    下面介紹標準計算模型、技術改進和一些更進一步的技術改進方向。註:下面只討論如何生成「一個」隨機場景。要生成多個,簡單重複即可。上述計算是不穩定的,這體現在兩個方面:當增加一個新的風險因子(持倉),上述分解需要全部重算,效率較低;當增加一個新的風險因子(持倉)時,即使使用同樣的隨機數,上面的計算結果將截然不同,比如同一個持倉在不同組合裡面計算的VaR將不一樣。
  • 蒙特卡洛梯度估計方法(MCGE)簡述
    其中,對於函數期望類目標問題,最常見的是基於蒙特卡洛採樣的方法。背景知識要了解基於蒙特卡洛採樣的梯度估計方法,首先先了解蒙特卡洛採樣方法和隨機優化方法。MCS 是一種經典的求解積分方法,公式(1)中的問題通常可以用 MCS 近似求解如下:
  • 學習人工智慧需要哪些必備的數學基礎?
    學習人工智慧該從哪裡開始呢?人工智慧的學習路徑又是怎樣的?   數學基礎知識蘊含著處理智能問題的基本思想與方法,也是理解複雜算法的必備要素。   事實上,線性代數不僅僅是人工智慧的基礎,更是現代數學和以現代數學作為主要分析方法的眾多學科的基礎。從量子力學到圖像處理都離不開向量和矩陣的使用。而在向量和矩陣背後,線性代數的核心意義在於提供了?種看待世界的抽象視角:萬事萬物都可以被抽象成某些特徵的組合,並在由預置規則定義的框架之下以靜態和動態的方式加以觀察。
  • 為ML帶來拓撲學基礎,Nature子刊提出拓撲數據分析方法
    機器之心報導參與:思、一鳴一位義大利數學家表示,現在我們可以使用一種新數學方法,讓機器學習系統能更高效、快速地學習識別複雜圖像。該數學家提出的理論已經被 Nature 子刊《Machine Intelligence》接收,該論文的作者表示,這種新方法可以稱為「拓撲數據分析(TDA)」。
  • 蒙特卡洛模擬方法及應用案例
    蒙特卡洛法的主要理論基礎是概率統計理論,主要手段是隨機抽樣、統計試驗。用蒙特卡洛法求解實際問題的基本步驟為:01 根據實際問題的特點,構造簡單而又便於實現的概率統計模型,使所求的解恰好是所求問題的概率分布或數學期望;02 給出模型中各種不同分布隨機變量的抽樣方法;03 統計處理模擬結果,給出問題解的統計估計值和精度估計值。
  • 工作1 年月入 5 萬+ ,懂數學思維的程式設計師到底有多吃香?
    事實上,我們還需要補充隨機過程、隨機理論、蒙特卡洛思想、採樣方法、概率圖等一些重要的基礎知識,才能說知識結構相對完整。同樣的,大學本科的線性代數中一般也不會介紹相似矩陣、矩陣分解、數據降維等重要內容,最優化的思想和應用在高等數學中也鮮有涉及。  第二,大學課程的學習重計算技巧,輕內在邏輯。