#### 本節書摘來自華章出版社《深度學習導論及案例分析》一書中的第2章,第2.10節,作者李玉鑑 張婷,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
在給定一個關于随機向量x的資料樣本集合s={x1,x2,…,xn}時,常常需要對x的機率分布進行模組化。不妨假設s中的每個樣本都是獨立同分布的(independent and identically distributed,i.i.d),且都服從未知的真實聯合機率分布p(x)。學習機率圖模型的任務可以描述為:給定樣本集合s,傳回一個對p(x)逼近最好的機率圖模型。這種類型的學習稱為生成學習(generative learning),其目标是對資料的生成過程進行模組化。一般說來,精确計算p*(x)幾乎是不可能的,尤其是在可以利用的樣本相對較少時。
貝葉斯網絡的生成學習就是在給定網絡結構和資料樣本集s的條件下,對所定義機率分布中的局部參數Θ={θ1,θ2,…,θn}進行極大似然估計(maximumlikelihood estimation,或譯為最大似然估計),其中相應機率分布表達為:
如果令pai=pa(xi)和xpai=x(pa(xi)),那麼對于獨立同分布樣本集s,貝葉斯網絡的總體對數似然l(b;s)可以分解為單個樣本對數似然(θi,s)的和,即:
其中(θi,s)又可以分解為局部條件機率的對數和:
是以,在(θi,s)僅依賴于θi的條件下,最大化總體對數似然等價于分别通過最大化單個樣本對數似然,對每個局部參數θi進行估計。否則,問題可能變得非常複雜。
馬爾可夫網絡m的生成學習就是在給定網絡結構和資料樣本集s={x1,…,xn}的條件下,對一個通過能量函數定義的機率分布族中的參數θ進行極大似然估計。如果用p(x)表示馬爾可夫網絡的機率分布,那麼相應的對數似然函數如下:
如果s中的每個樣本都是獨立同分布的且都服從未知的真實機率分布q(x),那麼最大化l(m;s)等價于最小化q和p之間的kl散度,即:
kl散度可以用來度量兩個機率分布的差異,具有非對稱性和非負性,并且當且僅當兩個分布相同時值為0。如公式(2.105)所示,在最小化kl散度時,隻有第二項依賴于需要優化的參數。
一般說來,對于馬爾可夫網絡的吉布斯分布,計算最優的極大似然參數θ幾乎是不可能的,通常需要采用近似方法,如梯度上升(gradient ascent)[110]、梯度下降(gradient descent)[111]和變分學習(variational learning)[112]等方法。梯度上升(或下降)是近似計算函數極值的基本方法,變分學習則是一類在機器學習中近似計算積分或期望的常用方法。
除了生成學習之外,機率圖模型的學習還包括結構學習和判别學習等内容。生成學習的根本目标是确定資料樣本的真實機率分布。結構學習的根本目标是确定資料樣本的機率圖結構,主要方法有兩種:基于限制的方法(constraintbased approach)[113]和基于打分的方法(scoringbased approach)[114]。判别學習的根本目标是确定資料樣本的類别,但判别學習模型的出發點并不一定是機率圖模型,主要方法包括:生成分類器(generative classifier)[115]、類别後驗機率模組化[116],以及支援向量機[117]和神經網絡[118]等模型。這裡不再一一贅述。
生成學習和判别學習的差別在于,生成學習得到的是聯合機率模型p(x),而判别學習得到的是條件機率模型p(yx)。如果有足夠表達能力的模型和有充足的訓練資料,那麼原則上通過生成方式學習和訓練模型,可以得到最優的分類器。使用判别學習的原因在于,判别模型在解決分類問題時,不僅更簡單、更直接,而且常常能夠取得更好的效果。