|
原創(chuàng)技術(shù)文章,第一時(shí)間獲取 機(jī)器學(xué)習(xí)中的概率模型 概率論,包括它的延伸-信息論,以及隨機(jī)過程,在機(jī)器學(xué)習(xí)中有重要的作用。它們被廣泛用于建立預(yù)測(cè)函數(shù),目標(biāo)函數(shù),以及對(duì)算法進(jìn)行理論分析。如果將機(jī)器學(xué)習(xí)算法的輸入、輸出數(shù)據(jù)看作隨機(jī)變量,就可以用概率論的觀點(diǎn)對(duì)問題進(jìn)行建模,這是一種常見的思路。本文對(duì)機(jī)器學(xué)習(xí)領(lǐng)域種類繁多的概率模型做進(jìn)行梳理和總結(jié),幫助讀者掌握這些算法的原理,培養(yǎng)用概率論作為工具對(duì)實(shí)際問題進(jìn)行建模的思維。要順利地閱讀本文,需要具備概率論,信息論,隨機(jī)過程的基礎(chǔ)知識(shí)。 為什么需要概率論? 概率模型是機(jī)器學(xué)習(xí)算法中的大家族,從最簡(jiǎn)單的貝葉斯分類器,到讓很多人覺得晦澀難懂的變分推斷,到處都有它的影子。為什么需要概率論?這是我們要回答的第一個(gè)問題。 與支持向量機(jī)、決策樹、Boosting、k均值算法這些非概率模型相比,概率模型可以給我們帶來(lái)下面的好處: 1.對(duì)不確定性進(jìn)行建模。假如我們要根據(jù)一個(gè)人的生理指標(biāo)預(yù)測(cè)他是否患有某種疾病。與直接給出簡(jiǎn)單的是與否的答案相比,如果算法輸出結(jié)果是:他患有這種疾病的概率是0.9,顯然后者更為精確和科學(xué)。再如強(qiáng)化學(xué)習(xí)中的馬爾可夫決策過程,狀態(tài)轉(zhuǎn)移具有隨機(jī)性,需要用條件概率進(jìn)行建模。 2.分析變量之間的依賴關(guān)系。對(duì)于某些任務(wù),我們要分析各個(gè)指標(biāo)之間的依賴關(guān)系。例如,學(xué)歷對(duì)一個(gè)人的收入的影響程度有多大?此時(shí)需要使用條件概率和互信息之類的方法進(jìn)行計(jì)算。 3實(shí)現(xiàn)因果推理。對(duì)于某些應(yīng)用,我們需要機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)因果之間的推理,這種模型具有非常好的可解釋性,與神經(jīng)網(wǎng)絡(luò)之類的黑盒模型相比,更符合人類的思維習(xí)慣。 4.能夠生產(chǎn)隨機(jī)樣本數(shù)據(jù)。有些應(yīng)用要求機(jī)器學(xué)習(xí)算法生成符合某一概率分布的樣本,如圖像,聲音,文本。深度生成模型如生成對(duì)抗網(wǎng)絡(luò)是其典型代表。 整體概覽 在機(jī)器學(xué)習(xí)中,有大量的算法都是基于概率的。下面這張圖列出了機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)中典型的算法和理論所使用的概率論知識(shí),使得大家對(duì)全貌有所了解。接下來(lái)我們將分別講述這些算法是怎么以概率論作為工具進(jìn)行建模的。 有監(jiān)督學(xué)習(xí) 貝葉斯分類器 貝葉斯分類器是使用概率解決分類問題的典型代表。它的想法很簡(jiǎn)單:根據(jù)貝葉斯公式直接計(jì)算樣本x屬于每個(gè)類的概率p(y|x) 這個(gè)概率也稱為類后驗(yàn)概率。在這里p(y)是每個(gè)類出現(xiàn)的概率,p(x|y)是類條件概率,也是每個(gè)類的樣本的特征向量x所服從的概率分布。然后將樣本判定為概率值最大的那個(gè)類 這里忽略了上面那個(gè)概率計(jì)算公式中的分母p(x),因?yàn)樗鼘?duì)所有類都是相同的,我們并不需要計(jì)算出每個(gè)類的概率值,而只需要找到概率最大的那個(gè)類。 實(shí)現(xiàn)時(shí),需要確定每個(gè)類樣本的特征向量所服從的概率分布p(x|y)以及每個(gè)類出現(xiàn)的概率p(y)。前者的參數(shù)通常通過最大似然估計(jì)確定。如果假設(shè)每個(gè)類的樣本都服從正態(tài)分布,就是正態(tài)貝葉斯分類器。 logistic回歸 伯努利分布 + 最大似然估計(jì) = softmax回歸 logistic回歸用于解決二分類問題,它的想法與貝葉斯分類器類似,也是預(yù)測(cè)樣本屬于每個(gè)類的概率。不同的是它沒有借助于貝葉斯公式,而是直接根據(jù)特征向量x估計(jì)出了樣本是正樣本的概率 如果這個(gè)概率值大于0.5,就被判定為正樣本,否則是負(fù)樣本。這里的參數(shù)w和b通過最大似然估計(jì)得到??梢哉J(rèn)為,logistic回歸擬合的是伯努利分布。需要強(qiáng)調(diào)的是,logistic回歸雖然是一種概率模型,但它不是生成模型,而是判別模型,因?yàn)樗鼪]有假設(shè)樣本的特征向量服從何種概率分布。 softmax回歸 多項(xiàng)分布 + 最大似然估計(jì) = softmax回歸 softmax回歸是logistic回歸的多分類版本,它也是直接預(yù)測(cè)樣本x屬于每個(gè)類的概率 然后將其判定為概率最大的那個(gè)類。這種方法假設(shè)樣本的類別標(biāo)簽值服從多項(xiàng)分布,因此它擬合的是多項(xiàng)分布。模型的參數(shù)通過最大似然估計(jì)得到,由此導(dǎo)出了著名的交叉熵目標(biāo)函數(shù) 最大化對(duì)數(shù)似然函數(shù)等價(jià)于最小化交叉熵?fù)p失函數(shù)。softmax回歸在訓(xùn)練時(shí)的目標(biāo)就是使得模型預(yù)測(cè)出的概率分布與真實(shí)標(biāo)簽的概率分布的交叉熵最小化。 變分推斷 貝葉斯公式 + KL散度 = 變分推斷 貝葉斯分類器是貝葉斯推斷的簡(jiǎn)單特例,它們的目標(biāo)是計(jì)算出已知觀測(cè)變量x時(shí)隱變量z的后驗(yàn)概率p(z|x),從而完成因果推斷 觀測(cè)變量的值是已知的,例如可以是樣本的特征向量。隱變量的值是不能直接觀察到的,例如樣本的類別。 這里面臨的一個(gè)問題是上式中的分母p(x)難以計(jì)算,如果x是高維隨機(jī)向量,計(jì)算這個(gè)分母涉及到計(jì)算高維聯(lián)合概率密度函數(shù)p(x,z)的積分 既然精確的計(jì)算很困難,人們就想到了一個(gè)聰明的解決方法:我們能不能找出一個(gè)概率分布q(z)來(lái)近似替代p(z|x),只要二者很相似就可以。找到這個(gè)近似概率分布q(z)的依據(jù)是它與p(z|x)的KL散度最小化,因?yàn)镵L散度衡量了兩個(gè)概率分布之間的差異。KL散度越大,兩個(gè)概率分布的差異越大;如果這兩個(gè)概率分布完全相等,KL散度的值為0。由此得到了變分推斷的核心公式 lnp(x)是一個(gè)常數(shù),因此最小化二者的KL散度等價(jià)于最大化證據(jù)下界函數(shù)L(q(z))。這個(gè)下界函數(shù)通常易于優(yōu)化,我們由此可以確定q(z)。實(shí)際實(shí)現(xiàn)時(shí),通常假定q(z)為正態(tài)分布,因?yàn)檎龖B(tài)分布具有諸多優(yōu)良的性質(zhì)。我們也可以從變分推斷的角度來(lái)解釋EM算法。 高斯過程回歸 高斯過程回歸聽起來(lái)很玄乎,實(shí)際上非常簡(jiǎn)單。有一組隨機(jī)變量,假設(shè)它們服從多維正態(tài)分布,那么它們就構(gòu)成了高斯過程,任意增加一個(gè)變量之后,還是服從正態(tài)分布。多維正態(tài)分布有著非常好的性質(zhì),我們可以直接得到它的邊緣分布、條件分布的解析表達(dá)式。 高斯過程回歸,就是假設(shè)我們要預(yù)測(cè)的函數(shù)在任意各個(gè)點(diǎn)x處的函數(shù)值f(x)形成一個(gè)高斯過程。根據(jù)高斯過程的性質(zhì),給定一組樣本值x以及他們對(duì)應(yīng)的函數(shù)值f(x),我們可以得到任意點(diǎn)處的函數(shù)值的概率分布,當(dāng)然,這是一個(gè)正態(tài)分布,它的均值和方差分別為 得到函數(shù)在任意點(diǎn)處的函數(shù)值的概率分布之后,我們可以做很多事情。高斯過程回歸是貝葉斯優(yōu)化的核心模塊之一。 無(wú)監(jiān)督學(xué)習(xí) SNE降維算法 正態(tài)分布 + KL散度 = SNE 隨機(jī)近鄰嵌入(SNE)是一種基于概率的流形降維算法,將向量組 ![]() 投影到低維空間之后仍然要保持這個(gè)概率關(guān)系。假設(shè) ![]() 如果考慮所有其他點(diǎn),這些概率值構(gòu)成一個(gè)離散型概率分布 ![]() 最小化該目標(biāo)函數(shù)就可以得到降維之后的結(jié)果。 t-SNE降維算法 t分布 + KL散度 =t- SNE t-SNE是SNE的改進(jìn)版本。其中一個(gè)核心改進(jìn)是將正態(tài)分布替換為t分布,t分布具有長(zhǎng)尾的特性,在遠(yuǎn)離概率密度函數(shù)中點(diǎn)處依然有較大的概率密度函數(shù)值,因此更易于產(chǎn)生遠(yuǎn)離中心的樣本,從而能夠更好的處理離群樣本點(diǎn)。 高斯混合模型 多項(xiàng)分布 + 正態(tài)分布 = 高斯混合模型 正態(tài)分布具有很多良好的性質(zhì),在應(yīng)用問題中我們通常假設(shè)隨機(jī)變量服從正態(tài)分布。不幸的是,單個(gè)高斯分布的建模能力有限,無(wú)法擬合多峰分布(概率密度函數(shù)有多個(gè)極值),如果將多個(gè)高斯分布組合起來(lái)使用則表示能力大為提升,這就是高斯混合模型。 高斯混合模型(GMM)通過多個(gè)正態(tài)分布的加權(quán)和來(lái)定義一個(gè)連續(xù)型隨機(jī)變量的概率分布,其概率密度函數(shù)定義為 ![]() GMM可以看做是多項(xiàng)分布與高斯分布的結(jié)合,首先從k個(gè)高斯分布中隨機(jī)的選擇一個(gè),選中每一個(gè)的概率為wi,然后用該高斯分布產(chǎn)生出樣本x。這里用隱變量z來(lái)指示選擇的是哪個(gè)高斯分布。高斯混合模型的參數(shù)通過最大似然估計(jì)得到,由于有隱變量的存在,無(wú)法像高斯分布那樣直接得到對(duì)數(shù)似然函數(shù)極值點(diǎn)的解析解,需要使用EM算法。 Mean shift算法 核密度估計(jì) + 梯度下降法 = Mean shift算法 很多時(shí)候我們無(wú)法給出概率密度函數(shù)的顯式表達(dá)式,此時(shí)可以使用核密度估計(jì)。核密度估計(jì)(KDE)也稱為Parzen窗技術(shù),是一種非參數(shù)方法,它無(wú)需求解概率密度函數(shù)的參數(shù),而是用一組標(biāo)準(zhǔn)函數(shù)的疊加表示概率密度函數(shù)。 ![]() 對(duì)于聚類,圖像分割,目標(biāo)跟蹤等任務(wù),我們需求求概率密度函數(shù)的極值。均值漂移算法可以找到上面這種形式的概率密度函數(shù)的極大值點(diǎn),是核密度估計(jì)與梯度上升法(與梯度下降法相反,用于求函數(shù)的極大值)相結(jié)合的產(chǎn)物。對(duì)上面的概率密度函數(shù)求梯度,可以得到下面的梯度計(jì)算公式 ![]() 這個(gè)向量也稱為均值漂移向量。由此可以得到梯度上升法的迭代公式 ![]() 均值漂移算法簡(jiǎn)單而優(yōu)美,當(dāng)年在目標(biāo)跟蹤領(lǐng)域取得了令人刮目相看的效果。 概率圖模型 概率論 + 圖論 = 概率圖模型 概率圖模型是概率論與圖論相結(jié)合的產(chǎn)物。它用圖表示隨機(jī)變量之間的概率關(guān)系,對(duì)聯(lián)合概率或條件概率建模。在這種圖中,頂點(diǎn)是隨機(jī)變量,邊為變量之間的依賴關(guān)系。如果是有向圖,則稱為概率有向圖模型;如果是無(wú)向圖,則稱為概率無(wú)向圖模型。概率有向圖模型的典型代表是貝葉斯網(wǎng)絡(luò),概率無(wú)向圖模型的典型代表是馬爾可夫隨機(jī)場(chǎng)。使用貝葉斯網(wǎng)絡(luò)可以實(shí)現(xiàn)因果推理。 隱馬爾可夫模型 馬爾可夫鏈 + 觀測(cè)變量 = 隱馬爾可夫模型 馬爾可夫過程是隨機(jī)過程的典型代表。這種隨機(jī)過程為隨著時(shí)間進(jìn)行演化的一組隨機(jī)變量進(jìn)行建模,假設(shè)系統(tǒng)在當(dāng)前時(shí)刻的狀態(tài)值只與上一個(gè)時(shí)刻有關(guān),與更早的時(shí)刻無(wú)關(guān),稱為“無(wú)記憶性”。 有些實(shí)際應(yīng)用中不能直接觀察到系統(tǒng)的狀態(tài)值,狀態(tài)的值是隱含的,只能得到一組稱為觀測(cè)的值。為此對(duì)馬爾可夫模型進(jìn)行擴(kuò)充,得到隱馬爾可夫模型(HMM)。隱馬爾可夫模型描述了觀測(cè)變量和狀態(tài)變量之間的概率關(guān)系。與馬爾可夫模型相比,隱馬爾可夫模型不僅對(duì)狀態(tài)建模,而且對(duì)觀測(cè)值建模。不同時(shí)刻的狀態(tài)值之間,同一時(shí)刻的狀態(tài)值和觀測(cè)值之間,都存在概率關(guān)系。 隱馬爾可夫模型可以表示為五元組 ![]() 其中S為狀態(tài)集合,V為觀測(cè)集合,π是初始狀態(tài)的概率分布,A是狀態(tài)轉(zhuǎn)移矩陣,B是觀測(cè)矩陣。 受限玻爾茲曼機(jī) 玻爾茲曼分布 + 二部圖 = 受限玻爾茲曼機(jī) 受限玻爾茲曼機(jī)(RBM)是一種特殊的神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)為二部圖。這是一種隨機(jī)神經(jīng)網(wǎng)絡(luò)。在這種模型中,神經(jīng)元的輸出值是以隨機(jī)的方式確定的,而不像其他的神經(jīng)網(wǎng)絡(luò)那樣是確定性的。 受限玻爾茲曼機(jī)的變量(神經(jīng)元)分為可見變量和隱藏變量?jī)煞N類型,并定義了它們服從的概率分布。可見變量是神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),如圖像;隱藏變量可以看作是從輸入數(shù)據(jù)中提取的特征。在受限玻爾茲曼機(jī)中,可見變量和隱藏變量都是二元變量,其取值只能為0或1,整個(gè)神經(jīng)網(wǎng)絡(luò)是一個(gè)二部圖。 二部圖的兩個(gè)子集分別為隱藏節(jié)點(diǎn)集合和可見節(jié)點(diǎn)集合,只有可見單元和隱藏單元之間才會(huì)存在邊,可見單元之間以及隱藏單元之間都不會(huì)有邊連接。隱變量和可見變量的取值服從下面的玻爾茲曼分布 ![]() 數(shù)據(jù)生成問題 數(shù)據(jù)生成模型以生成圖像、聲音、文字等數(shù)據(jù)為目標(biāo),生成的數(shù)據(jù)服從某種未知的概率分布,具有隨機(jī)性。以圖像生成為例,假設(shè)要生成貓、狗等圖像,算法輸出隨機(jī)向量x,該向量由圖像的所有像素拼接而成。每類樣本x都服從各自的概率分布,定義了對(duì)所有像素值的約束。例如對(duì)于狗來(lái)說(shuō),如果圖像看上去要像真實(shí)的狗,則每個(gè)位置處的像素值必須滿足某些約束條件,且各個(gè)位置處的像素值之間存在相關(guān)性。算法生成的樣本x要有較高的概率值p(x),即像真的樣本。 數(shù)據(jù)生成模型通常通過分布變換實(shí)現(xiàn),原理很簡(jiǎn)單:對(duì)服從簡(jiǎn)單的概率分布(如正態(tài)分布,均勻分布)的數(shù)據(jù)數(shù)z進(jìn)行映射,得到一個(gè)新的隨機(jī)變量g(z),這個(gè)隨機(jī)變量服從我們想要的那種概率分布。問題的核心是如何找到這個(gè)映射g(z)。深度生成模型的典型代表-生成對(duì)抗網(wǎng)絡(luò),以及變分自動(dòng)編碼器,通過不同的路徑實(shí)現(xiàn)了這一功能。 生成對(duì)抗網(wǎng)絡(luò) 概率分布變換(生成器) + 二分類器(判別器) = 生成對(duì)抗網(wǎng)絡(luò) 生成對(duì)抗網(wǎng)絡(luò)由一個(gè)生成模型和一個(gè)判別模型組成。生成模型用于學(xué)習(xí)真實(shí)樣本數(shù)據(jù)的概率分布,并直接生成符合這種分布的數(shù)據(jù),實(shí)現(xiàn)分布變換函數(shù)g(z);判別模型的任務(wù)是判斷一個(gè)輸入樣本數(shù)據(jù)是真實(shí)樣本還是由生成模型生成的,即對(duì)生成模型生成的樣本進(jìn)行評(píng)判,以指導(dǎo)生成模型的訓(xùn)練。在訓(xùn)練時(shí),兩個(gè)模型不斷競(jìng)爭(zhēng),從而分別提高它們的生成能力和判別能力。訓(xùn)練時(shí)要優(yōu)化的目標(biāo)函數(shù)定義為 ![]() 訓(xùn)練完成之后,生成模型就可以用來(lái)生成樣本了,它的輸入是隨機(jī)變量z,從而保證了生成的樣本具有隨機(jī)性??梢宰C明,當(dāng)且僅當(dāng)生成器所實(shí)現(xiàn)的概率分布與樣本的真實(shí)概率分布相等時(shí)上面的目標(biāo)函數(shù)取得極小值 ![]() 從理論上來(lái)說(shuō),是使得生成器生成的樣本的概率分布與真實(shí)樣本的概率分布的KL散度最小化。 變分自動(dòng)編碼器 變分推斷 + 神經(jīng)網(wǎng)絡(luò) = 變分自動(dòng)編碼器 變分自動(dòng)編碼器(VAE)是變分推斷與神經(jīng)網(wǎng)絡(luò)相結(jié)合的產(chǎn)物。整個(gè)系統(tǒng)遵循自動(dòng)編碼器的結(jié)構(gòu),由編碼器和解碼器構(gòu)成。在訓(xùn)練時(shí),編碼器將訓(xùn)練樣本映射成隱變量z所服從的概率分布的參數(shù),然后從此概率分布進(jìn)行采樣得到隱變量z,解碼器則將隱變量映射回樣本變量x,即進(jìn)行重構(gòu)。這種方法在標(biāo)準(zhǔn)自動(dòng)編碼器的基礎(chǔ)上加入了隨機(jī)性,從而保證可以輸出帶有隨機(jī)性的數(shù)據(jù)。 訓(xùn)練時(shí)優(yōu)化的目標(biāo)為 ![]() q(z|x)充當(dāng)編碼器的角色,將x編碼為z。給定一個(gè)x,輸出其對(duì)應(yīng)的隱變量的概率分布。編碼器的輸出為隱變量的均值和方差,而非隱變量本身。p(x|z)充當(dāng)解碼器,從z重構(gòu)出x。 強(qiáng)化學(xué)習(xí) 馬爾可夫決策過程 馬爾可夫過程 + 動(dòng)作 + 獎(jiǎng)勵(lì) = 馬爾可夫決策過程 馬爾可夫決策過程(MDP)是強(qiáng)化學(xué)模型的抽象,是對(duì)馬爾可夫過程的擴(kuò)充,在它的基礎(chǔ)上加入了動(dòng)作和獎(jiǎng)勵(lì),動(dòng)作可以影響系統(tǒng)的狀態(tài),獎(jiǎng)勵(lì)用于指導(dǎo)智能體學(xué)習(xí)正確的行為,是對(duì)動(dòng)作的反饋。 在每個(gè)時(shí)刻智能體觀察環(huán)境,得到一組狀態(tài)值,然后根據(jù)狀態(tài)來(lái)決定執(zhí)行什么動(dòng)作。執(zhí)行動(dòng)作之后,系統(tǒng)給智能體一個(gè)反饋,稱為回報(bào)或獎(jiǎng)勵(lì)?;貓?bào)的作用是告訴智能體之前執(zhí)行的動(dòng)作所導(dǎo)致的結(jié)果的好壞。 MDP可以抽象成一個(gè)五元組 ![]() 其中S為狀態(tài)空間,A為動(dòng)作空間,p為狀態(tài)轉(zhuǎn)移概率,r為回報(bào)函數(shù), ![]() 在這里,狀態(tài)轉(zhuǎn)移概率用于對(duì)不確定性進(jìn)行建模,即使當(dāng)前時(shí)刻的狀態(tài)值,當(dāng)前時(shí)刻要執(zhí)行的動(dòng)作是確定的,但下一個(gè)時(shí)刻轉(zhuǎn)讓何種狀態(tài),是具有隨機(jī)性的。 本文所介紹的機(jī)器學(xué)習(xí)算法,在《機(jī)器學(xué)習(xí)-原理、算法與應(yīng)用》(清華大學(xué)出版社,雷明著)一書中都有詳細(xì)的講述。本文提及的所有數(shù)學(xué)知識(shí),在《機(jī)器學(xué)習(xí)的數(shù)學(xué)》(人民郵電出版,雷明著,將于2020年8月出版)一書中都有詳細(xì)而清晰的講述。 本文為SIGAI原創(chuàng) |
|
|
來(lái)自: taotao_2016 > 《概率》