深度學習(二):圖模型的學習


一、前言

      圖模型的學習主要是學習網絡結構,即尋找最優的網絡結構;以及網絡參數估計,即已知網絡結構,估計每個條件概率分布的參數。這里主要講網絡參數的估計。然后又可以分為不含隱變量的參數估計,和含隱變量的參數估計。隱變量相對於可觀測變量而言,就是我們無法直接觀測到的變量;在特征空間里可以理解為不能被人直接看到的、更高級的需要進行推理才能知道的特征。

二、不含隱變量的參數估計

      在有向圖模型中,如果所有的變量都是可觀測的,而且還知道誰是誰的條件(父節點),那么估計網絡參數只要通過最大似然來估計就可以了:

      為了減少參數量,可以用參數化模型,如果是離散的可以用sigmoid信念網絡,如果連續的,可以用高斯信念網絡(解答了上一個博文的疑惑,原來高斯概率分布也是可以用的,主要取決於變量x是離散還是連續的)

      在有向圖中,x的聯合概率分布就要拆解成最大團上勢能函數的連乘形式了:

       對這個對數似然函數的參數theta進行求導,可以發現對配分函數Z求導時,得到的結果是在模型分布下的期望:

      這里的模型分布指的就是最開始我們定義的P(x),是這些樣本所服從的概率分布,而我們的目標就是求得這個未知模型的參數。

      然后我們會發現:

      第一項不免會讓人想起剛剛學不定積分的時候,積分最開始是用長方形的面積來進行引入的。第一項其實可以稱為經驗分布,也可以寫成期望的形式:

      前者是經驗分布,是我們通過實際的樣本得到的,后者是模型分布,是我們需要求的。我們最開始求導是為了令導數等於0,求出參數,所以無向圖模型中,求導這個過程就等價於我們在通過樣本來擬合真實分布。

三、含隱變量的參數估計

 

      這樣的模型中即含有隱變量也含有可觀測變量,但要永遠記住隱變量是我們看不到的變量!那我們能用的數據樣本只有可觀測變量!沒有隱變量!因為隱變量看不見!知道了這一點就很好理解接下來的工作了!

      其實我們要求的最終目的只有p(x),x指的是可觀測變量,隱變量用z來表示,首先我們沒法求p(z),其次求了p(z)也沒有什么現實意義,好比我們正常人吃飯的終極目的是為了活下去,而不是為了觀察飯是怎么樣在肚子里消化的,雖然有研究者研究這些才豐富了我們的醫學寶庫,但是研究者他們研究這個的終極目的是科研,人家吃飯也是為了活着!

      那怎么求p(x)呢,我們現在知道模型里有兩種隨機變量,可觀測和隱,然后他們之間會有相互關聯,但我們只能看見可觀測的隨機變量,看不見隱,但是隱變量也是隨機變量,它們也會影響我們的可觀測變量的概率,雖然我們沒必要去弄清楚隱變量具體是怎么分布的,但是我們在考慮可觀測變量的概率分布時不得不考慮到隱變量對其的影響。

      定義樣本x的邊際似然函數為:$p(x;\theta )=\sum_{z}^{ }p(x,z;\theta )$

      這個公式告訴我們,如果想要知道可觀測變量x的概率分布,只要對可觀測變量x和隱變量z的聯合概率再對z求和就好了,其實就是求x的邊際概率,因為這里隨機變量非x即z,x的邊際概率就是聯合概率對z求和。之前看到這里的時候覺得好廢話啊,我要是能知道聯合概率分布,那肯定就能求出來了嘛,但是關鍵是看不見隱變量,沒法先求聯合概率分布再求和嘛,按照這個思路,如果依然用前面不含隱變量的圖模型中提到的似然法的話,要最大化似然估計:

        即便是對這個似然函數直接求導,我們也發現,log求導后,聯合概率分布會跑到分母處,我們沒辦法消掉這個我們計算不出來的聯合概率分布。這個求和沒辦法直接計算,就會引出一個問題叫做推斷問題,其實推斷問題主要就是計算條件概率分布$p(z\mid x;\theta )$,為什么要計算這個呢,因為聯合概率分布$p(z,x;\theta )=p(z\mid x;\theta )p( x;\theta )$,為什么聯合概率分布沒法算主要是涉及對z求和,我們把聯合概率分布按照條件概率公式分解后,其中含z的項就是條件概率分布$p(z\mid x;\theta )$,如果我們計算出了這個值,似然函數也沒問題了。推斷有精確推斷和近似推斷,然后還有很多引申出來的知識,放在其他博文寫。

      現在似然函數退一步,不到對Z求和的那一步,似然函數主要是要計算$log p(x;\theta )$,先引入ELBO證據下界的定義:

       這里不等號成立主要是因為:對於像log這種上凸的函數(國際上叫凹函數,跟我國高中課本理解相反),函數的期望小於期望的函數,這個學過經濟學應該會好理解一點。看上面不等式小的一方,它變小了主要是因為原來在log里面作為自變量之一的概率q離家出走了,變成了函數的期望,函數的期望是個期望,它不在函數線上,而期望的函數好歹還是函數,在log曲線上,畫圖說明如下,這里之所以取的是a+b/2,主要是為了好畫圖,默認這里服從的分布是均勻分布,也就是默認上式中的概率分布q是均勻分布:

      不過書上提到一個jensen不等式來解釋這個不等式,但是能理解就行,真是還好學過經濟學。。

     回到ELBO證據下界,考慮證據下界何時最大,只要這個變分函數滿足$q(z)=p(z\mid x;\theta )$就可以了,具體證明可以自己推一下,只用到條件概率公式。

      所以最大化$log p(x;\theta )$可以轉換為兩步走:1.找一個近似分布滿足$q(z)=p(z\mid x;\theta )$,此時證據下界最大;2.想辦法找到參數theta,使得證據下界最大。

      1.決定了證據下界等於$log p(x;\theta )$,最大化證據下界就等價於最大化$log p(x;\theta )$;2.決定了證據下界取最大值。

      可以用EM算法來做這兩件事情,EM算法會再另開機器學習的文章說明,EM算法是含隱變量圖模型的常用估計方法。EM算法在這里就是:

       (1)E步:先固定參數theta,找到一個分部$q(z)$,使得證據下界等於$log p(x;\theta )$;我們已經說明最好的$q(z)$是后驗分部$q(z\mid x;\theta )$,but計算這個后驗分布是一個推斷問題,在復雜情況下需要用近似推斷的方法來估計。

       (2)M步:然后固定我們找到的分布$q(z)$,開始找到一組參數使得證據下界ELBO最大,即優化:

       然而,最大化證據下界可以等價於最小化KL散度,這個也更好的說明了為什么$q(z)=p(z\mid x;\theta )$時證據下界最大:

      以下是迭代時各個值的過程:

 四、高斯混合模型

      高斯混合模型(GMM)是由多個高斯分布組成的模型,其總體密度函數為多個高斯密度函數的加權組合,如果一個連續隨機變量或連續隨機向量的分布比較復雜,我們可以用高斯混合模型來估計其分布情況,因為高斯分布從前人的經驗來看是可以很好的估計出很多概率分布。哎之前就一直不知道為啥就可以用高斯分布去估計別的分布。

      混合高斯模型的概率密度函數:

       高斯混合模型表示成無向圖,其中的隱變量就是樣本x主要從哪個高斯分布里取值,因為高斯混合模型其總體密度函數為多個高斯密度函數的加權組合,我們把計算樣本x的概率分兩步走,第一步找具體哪個分布,第二步才是套用公式:

因為存在隱變量所以沒法直接最大似然估計:

然后日常求導等於0就可以計算出來三個參數了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM