AI算法连载04:数学基础之蒙特卡洛方法与MCMC采样
相關(guān)文章:
AI算法連載01:數(shù)學(xué)基礎(chǔ)之線性代數(shù)
AI算法連載02:概率論基礎(chǔ)
AI算法連載03:數(shù)學(xué)基礎(chǔ)之?dāng)?shù)值計(jì)算
導(dǎo)語:不懂算法的工程師做不了AI,不懂算法的產(chǎn)品經(jīng)理將把AI帶入泥潭。
一、前言
在人工智能AI如火如荼的大潮下,越來越多的工程師們意識(shí)到算法是AI的核心。而面對(duì)落地的應(yīng)用,不懂算法的AI產(chǎn)品經(jīng)理將是空談,不僅無法與工程師溝通,更無法深刻理解應(yīng)用的性能與方式。所以業(yè)界逐漸形成一種共識(shí):
不懂算法的工程師做不了AI,不懂算法的產(chǎn)品經(jīng)理將把AI帶入泥潭。
而其實(shí),AI算法沒有想象的那么難,為此,機(jī)器人網(wǎng)整理了一整套AI算法知識(shí),包括:
從最基本的數(shù)學(xué)基礎(chǔ),譬如線性代數(shù)、概率論、牛頓法等數(shù)值計(jì)算、蒙特卡洛方法與MCMC采樣等;
到統(tǒng)計(jì)學(xué),如:機(jī)器學(xué)習(xí)、向量、貝葉斯定理、決策樹、梯度、模型評(píng)估、降維、聚類、邊際、模型等等;
再到深度學(xué)習(xí),如:前饋神經(jīng)網(wǎng)絡(luò)、反向傳播算法、卷積升級(jí)網(wǎng)絡(luò)、CNN圖片分類、循環(huán)神經(jīng)網(wǎng)絡(luò)等等;
以及自然語言處理NLP等等;
還有AI算法中的各種工具和模型。
我們將把這些AI基礎(chǔ)理論和算法以連載的形式在機(jī)器人網(wǎng)公眾號(hào)和網(wǎng)站上發(fā)布,供AI愛好者免費(fèi)學(xué)習(xí)。
本次連載將歷時(shí)一月有余,通過這一個(gè)月的學(xué)習(xí),AI初學(xué)者也將可能躍變成AI大神,進(jìn)入未來二十年科技的金字塔尖。
當(dāng)然,這需要你的堅(jiān)持、專注,和努力。感興趣的同學(xué)可以關(guān)注我們,并加微信(Aspencore6)入群分享交流。
?
二、理論理解與數(shù)學(xué)基礎(chǔ)
蒙特卡洛方法與MCMC采樣
作為一種隨機(jī)采樣方法,馬爾科夫鏈蒙特卡羅(Markov Chain Monte Carlo,以下簡(jiǎn)稱MCMC)在機(jī)器學(xué)習(xí),深度學(xué)習(xí)以及自然語言處理等領(lǐng)域都有廣泛的應(yīng)用,是很多復(fù)雜算法求解的基礎(chǔ)。比如分解機(jī)(Factorization Machines)推薦算法,還有受限玻爾茲曼機(jī)(RBM)原理總結(jié),都用到了MCMC來做一些復(fù)雜運(yùn)算的近似求解。
從名字我們可以看出,MCMC由兩個(gè)MC組成,即蒙特卡羅方法(Monte Carlo Simulation,簡(jiǎn)稱MC)和馬爾科夫鏈(Markov Chain ,也簡(jiǎn)稱MC)。要弄懂MCMC的原理我們首先得搞清楚蒙特卡羅方法和馬爾科夫鏈的原理。
蒙特卡羅原來是一個(gè)賭場(chǎng)的名稱,用它作為名字大概是因?yàn)槊商乜_方法是一種隨機(jī)模擬的方法,這很像賭博場(chǎng)里面的扔骰子的過程。最早的蒙特卡羅方法都是為了求解一些不太好求解的求和或者積分問題。
蒙特卡羅方法的關(guān)鍵是得到xx的概率分布。如果求出了xx的概率分布,我們可以基于概率分布去采樣基于這個(gè)概率分布的n個(gè)xx的樣本集,帶入蒙特卡羅求和的式子即可求解。但是還有一個(gè)關(guān)鍵的問題需要解決,即如何基于概率分布去采樣基于這個(gè)概率分布的n個(gè)xx的樣本集。
不過很多時(shí)候,我們的xx的概率分布不是常見的分布,這意味著我們沒法方便的得到這些非常見的概率分布的樣本集。那這個(gè)問題怎么解決呢?
?
對(duì)于概率分布不是常見的分布,一個(gè)可行的辦法是采用接受-拒絕采樣來得到該分布的樣本。既然?p(x)p(x)?太復(fù)雜在程序中沒法直接采樣,那么我設(shè)定一個(gè)程序可采樣的分布?q(x)q(x)?比如高斯分布,然后按照一定的方法拒絕某些樣本,以達(dá)到接近?p(x)p(x)?分布的目的,其中q(x)q(x)叫做 proposal distribution。
整個(gè)過程中,我們通過一系列的接受拒絕決策來達(dá)到用q(x)q(x)模擬p(x)p(x)概率分布的目的。
?
使用接受-拒絕采樣,我們可以解決一些概率分布不是常見的分布的時(shí)候,得到其采樣集并用蒙特卡羅方法求和的目的。但是接受-拒絕采樣也只能部分滿足我們的需求,在很多時(shí)候我們還是很難得到我們的概率分布的樣本集。比如:
1)對(duì)于一些二維分布p(x,y)p(x,y),有時(shí)候我們只能得到條件分布p(x|y)p(x|y)和p(y|x)p(y|x)和,卻很難得到二維分布p(x,y)p(x,y)一般形式,這時(shí)我們無法用接受-拒絕采樣得到其樣本集。
2)對(duì)于一些高維的復(fù)雜非常見分布p(x1,x2,...,xn)p(x1,x2,...,xn),我們要找到一個(gè)合適的q(x)q(x)和kk非常困難。
?
從上面可以看出,要想將蒙特卡羅方法作為一個(gè)通用的采樣模擬求和的方法,必須解決如何方便得到各種復(fù)雜概率分布的對(duì)應(yīng)的采樣樣本集的問題。而我們下一篇要講到的馬爾科夫鏈就是幫助找到這些復(fù)雜概率分布的對(duì)應(yīng)的采樣樣本集的白衣騎士。下一篇我們將總結(jié)馬爾科夫鏈的原理。
?
三、具體算法
?
?
?
?
?
?
?
?
?
本文理論部分部分引用了劉建平Pinard的博客:https://www.cnblogs.com/pinard/p/6625739.html。
本文算法部分作者華校專,曾任阿里巴巴資深算法工程師、智易科技首席算法研究員,現(xiàn)任騰訊高級(jí)研究員,《Python 大戰(zhàn)機(jī)器學(xué)習(xí)》的作者。這是作者多年以來學(xué)習(xí)總結(jié)的筆記,經(jīng)整理之后開源于世。考慮到出版時(shí)間周期較長(zhǎng),而且書本購買成本高不利于技術(shù)廣泛傳播,因此作者采取開源的形式。筆記內(nèi)容僅供個(gè)人學(xué)習(xí)使用,非本人同意不得應(yīng)用于商業(yè)領(lǐng)域。
————
編輯?∑Gemini
?來源:機(jī)器人
?泰勒定理的奇聞?shì)W事
?丘成桐:漫談微分幾何
?Leibniz 如何想出微積分?(一)
?線性相關(guān)和秩的物理意義
?數(shù)學(xué)史上你認(rèn)為最丑陋的公式是什么?
?陶哲軒談什么是好的數(shù)學(xué)
?田淵棟:數(shù)學(xué)的用處(下篇)
?你絕對(duì)沒想過原來數(shù)學(xué)家這么流氓,一言不合就進(jìn)行暴力證明
?世界上最牛的五篇博士論文
?數(shù)學(xué)中有哪些巧合讓人眼前一亮?
?算法立功!清華畢業(yè)教授美國(guó)被搶車,警察無能為力自己用“貪心算法”找回
?學(xué)術(shù)史上的奇文:怎樣用數(shù)學(xué)抓獅子
?臺(tái)大教授的反思:最難的一課 我們卻沒教給學(xué)生
?麻省理工學(xué)院(MIT)研究生學(xué)習(xí)指導(dǎo)—— 怎樣做研究生
?分享 數(shù)學(xué),常識(shí)和運(yùn)氣 ——投資大師詹姆斯·西蒙斯2010年在MIT的講座
算法數(shù)學(xué)之美微信公眾號(hào)歡迎賜稿
稿件涉及數(shù)學(xué)、物理、算法、計(jì)算機(jī)、編程等相關(guān)領(lǐng)域,經(jīng)采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結(jié)
以上是生活随笔為你收集整理的AI算法连载04:数学基础之蒙特卡洛方法与MCMC采样的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈尔莫斯:怎样做数学研究
- 下一篇: 怎样才能找到一份AI领域的好工作?