深圳網站建設憂化在線seo外鏈工具
機器學習筆記之生成模型綜述——概率圖模型vs神經網絡
- 引言
- 回顧:概率圖模型與前饋神經網絡
- 貝葉斯網絡 VS\text{VS}VS 神經網絡
- 表示層面觀察兩者區(qū)別
- 推斷、學習層面觀察兩者區(qū)別
引言
本節(jié)將介紹概率圖模型與神經網絡之間的關聯(lián)關系和各自特點。
回顧:概率圖模型與前饋神經網絡
在概率圖模型——背景中介紹過,概率圖模型不是某一個具體模型,而是一種圖結構的統(tǒng)稱。而這個圖(Graph\text{Graph}Graph)是描述概率模型P(X)\mathcal P(\mathcal X)P(X)內各特征之間關系的一種工具。
也就是說,概率圖模型就是 概率模型/概率分布/概率密度函數(shù)P(X)\mathcal P(\mathcal X)P(X)的表示(Representation\text{Representation}Representation)。
在前饋神經網絡——背景中介紹過,它的核心是通用逼近定理(Universal?Approximation?Theorem\text{Universal Approximation Theorem}Universal?Approximation?Theorem),基于該思想,將神經網絡視作一個函數(shù)逼近器:大于等于一層隱藏層的神經網絡可以逼近任意連續(xù)函數(shù)。
這里的‘神經網絡’是指未經修飾的‘前饋神經網絡’
(Feed-Forward?Neural?Network\text{Feed-Forward Neural Network}Feed-Forward?Neural?Network)從‘前饋神經網絡’的角度觀察,它的任務就是對需要的復雜函數(shù)進行擬合,僅此而已。與概率分布沒有關聯(lián)關系。
以前饋神經網絡處理亦或分類問題為例,其對應的計算圖結構表示如下:
可以看出,這個輸出結果output\text{output}output它僅是一個實數(shù),它僅是從計算圖結構中通過計算得到的結果而已,并沒有概率方面的約束。
因而,但從概率的角度觀察,概率圖、神經網絡是兩個獨立的概念。但從廣義連結主義的角度觀察,它們之間確實存在關聯(lián)關系:
這里為了描述‘神經網絡’與概率圖結構的各自特點,將關注方向放在貝葉斯網絡
(Bayessian?Network)(\text{Bayessian Network})(Bayessian?Network)上,如玻爾茲曼機這種'既屬于概率圖模型,也屬于神經網絡'的結構,并不在關注之內。
- 例如玻爾茲曼機為代表的無向圖模型。在隨機變量結點參數(shù)學習的過程中,通常使用馬爾可夫鏈蒙特卡洛方法(Markov?Chain?Monte?Carlo,MCMC\text{Markov Chain Monte Carlo,MCMC}Markov?Chain?Monte?Carlo,MCMC)、變分推斷(Variational?Inference,VI\text{Variational Inference,VI}Variational?Inference,VI)這種方式進行求解。針對這種基于隨機采樣對模型參數(shù)近似求解的結構,被稱為隨機神經網絡(Stochastic?Neural?Network\text{Stochastic Neural Network}Stochastic?Neural?Network)。
- 相反,通過計算圖來實現(xiàn)模型參數(shù)的精確求解,如前饋神經網絡以及其變種結構如卷積神經網絡(Convolutional?Neural?Networks,?CNN\text{Convolutional Neural Networks, CNN}Convolutional?Neural?Networks,?CNN),循環(huán)神經網絡(Recurrent?Neural?Network,?RNN\text{Recurrent Neural Network, RNN}Recurrent?Neural?Network,?RNN)等等,被稱之為確定性神經網絡(Deterministic?Neural?Network\text{Deterministic Neural Network}Deterministic?Neural?Network)。
貝葉斯網絡 VS\text{VS}VS 神經網絡
這里依然從表示(Representation\text{Representation}Representation)、推斷(Inference\text{Inference}Inference)、學習(Learning\text{Learning}Learning)三個角度對貝葉斯網絡與神經網絡之間進行比較:
這里的‘神經網絡’具體指‘確定性神經網絡’;‘概率圖模型’具體指‘貝葉斯網絡’。
從概率圖與計算圖的角度觀察,概率圖描述的是模型本身;而計算圖僅構建了一個函數(shù)逼近的計算流程,計算圖自身沒有建模意義。但可以像生成對抗網絡一樣,將計算圖本身看作一個復雜函數(shù),進行建模。
表示層面觀察兩者區(qū)別
在介紹之前,我們介紹過Sigmoid\text{Sigmoid}Sigmoid信念網絡,雖然它是一個典型的有向圖模型,但它依然是通過醒眠算法(Wake-Sleep?Algorithm\text{Wake-Sleep Algorithm}Wake-Sleep?Algorithm)——通過采樣的方式對模型參數(shù)進行近似學習。因此它也是一個隨機神經網絡,不在考慮之內。
貝葉斯網絡的特點有:淺層、稀疏化、結構化。
‘稀疏化’具體是通過人為的一系列條件獨立性假設來約束結點之間的連接關系,主要是為了簡化運算。如
樸素貝葉斯分類器中的‘樸素貝葉斯假設’;
隱馬爾可夫模型中的‘齊次馬爾可夫假設’與‘觀測獨立性假設’都屬于使概率圖結構稀疏化的假設。
‘淺層’是指計算結點沒有堆疊現(xiàn)象。與
生成模型綜述中介紹的‘深度生成模型’有少許區(qū)別。深度生成模型中的計算結點指的就是隨機變量(隱變量、觀測變量);而這里的計算結點有可能是隨機變量結點,也可能是神經網絡中的神經元結點。
‘結構化’是指針對某種具體任務,人為地設置成某種特定結構的格式。例如
高斯混合模型,它被設置成這種結構去處理聚類任務:
再例如隱馬爾可夫模型,這種概率圖結構被設計處理狀態(tài)序列預測問題:
與之相對的,神經網絡的特點:深層、稠密。
這里的‘深層’是指神經網絡中隱藏層的數(shù)量。針對逼近函數(shù)的復雜程度,可以通過增加隱藏層的方式對輸入特征進行更深層次地學習;
‘稠密’是指層與層神經元結點之間的關聯(lián)關系是隨意的,未被條件獨立性約束的。
并且神經網絡中的節(jié)點指的是計算圖(Computational?Graph\text{Computational Graph}Computational?Graph)中的計算結點,相比于隨機變量結點,如隱變量結點。我們并沒有給計算節(jié)點針對圖結構賦予相應的實際意義。
或者說,神經網絡中的隱藏層單元是否有解釋性并不重要,無論是哪種前饋神經網絡,隱藏層單元的意義就只有‘逼近復雜函數(shù)過程中的一個環(huán)節(jié)’而已。
層與層之間關聯(lián)關系表示如下(以上述h(2)h^{(2)}h(2)層計算節(jié)點hj(2)h_j^{(2)}hj(2)?為例):
通過
h(1)h^{(1)}h(1)層中的
hi(1),hi+1(i),hi+2(1),hi+3(1)h_{i}^{(1)},h_{i+1}^{(i)},h_{i+2}^{(1)},h_{i+3}^{(1)}hi(1)?,hi+1(i)?,hi+2(1)?,hi+3(1)?與對應權重參數(shù)的線性組合后關于激活函數(shù)
Sign\text{Sign}Sign的映射結果,
b(1)b^{(1)}b(1)表示
h(1)h^{(1)}h(1)層對應的偏置信息。
hj(2)=Sign([W(1)]Th(1)+b(1))=Sign([Wi(1)]Thi(1)+[Wi+1(1)]Thi+1(1)+[Wi+2(1)]Thi+2(1)+[Wi+3(1)]Thi+3(1)+b(1))\begin{aligned} h_j^{(2)} & = \text{Sign}\left([\mathcal W^{(1)}]^T h^{(1)} + b^{(1)}\right) \\ & = \text{Sign} \left([\mathcal W_i^{(1)}]^Th_i^{(1)} + [\mathcal W_{i+1}^{(1)}]^Th_{i+1}^{(1)} + [\mathcal W_{i+2}^{(1)}]^Th_{i+2}^{(1)} + [\mathcal W_{i+3}^{(1)}]^Th_{i+3}^{(1)} + b^{(1)}\right) \end{aligned}hj(2)??=Sign([W(1)]Th(1)+b(1))=Sign([Wi(1)?]Thi(1)?+[Wi+1(1)?]Thi+1(1)?+[Wi+2(1)?]Thi+2(1)?+[Wi+3(1)?]Thi+3(1)?+b(1))?
基于上述描述,可以看出,關于貝葉斯網絡概率圖結構中結點之間的關聯(lián)關系(有向邊)是可解釋的(Meaningful\text{Meaningful}Meaningful):而這個解釋就是基于某隨機變量結點條件下,其他結點發(fā)生的條件概率。如齊次馬爾可夫假設,觀測獨立性假設:
無論是觀測變量結點,還是隱變量結點,在建模過程中均基于實際任務賦予了物理意義。
{P(it+1∣it,?,i1,o1,?,ot)=P(it+1∣it)P(ot∣it,?,i1,ot?1,?,o1)=P(ot∣it)\begin{cases} \mathcal P(i_{t+1} \mid i_t,\cdots,i_1,o_1,\cdots,o_t) = \mathcal P(i_{t+1} \mid i_t)\\ \mathcal P(o_t \mid i_t,\cdots,i_1,o_{t-1},\cdots,o_1) = \mathcal P(o_t \mid i_t) \end{cases}{P(it+1?∣it?,?,i1?,o1?,?,ot?)=P(it+1?∣it?)P(ot?∣it?,?,i1?,ot?1?,?,o1?)=P(ot?∣it?)?
推斷、學習層面觀察兩者區(qū)別
如果是概率圖模型,它的推斷方式多種多樣。在概率圖模型——推斷基本介紹中提到過,推斷本質上就是 基于給定的模型參數(shù),對隨機變量的概率進行求解。
- 這里的隨機變量指的可能是觀測變量,也可能是隱變量;
- 這里的概率指的可能是邊緣概率,也可能是條件概率,也可能是聯(lián)合概率(概率密度函數(shù))。
推斷選擇的方式也根據隨機變量的性質(復雜程度:隨機變量離散/連續(xù);概率分布:簡單/復雜)可進行選擇。常見的推斷方式有如下幾種:
- 精確推斷:如變量消去法(Variable?Elimination,VE\text{Variable Elimination,VE}Variable?Elimination,VE)。其本質上是基于概率圖結構對無效的條件概率進行消除,從而達到簡化運算的目的。例如某貝葉斯網絡表示如下:
根據其拓撲排序順序,可將上述概率圖i4i_4i4?結點的邊緣概率分布P(i4)\mathcal P(i_4)P(i4?)化簡為如下形式:
原始方法與變量消去法之間進行對比。
{Original?Method:?P(i4)=∑i1,i2,i3P(i1,i2,i3,i4)=∑i1,i2,i3P(i1)?P(i2∣i1)?P(i3∣i2)?P(i4∣i3)VE?Method:?P(i4)=∑i1,i2,i3P(i1,i2,i3,i4)=∑i3P(i4∣i3)?∑i2P(i3∣i2)?∑i1P(i2∣i1)?P(i1)\begin{cases} \text{Original Method: }\begin{aligned}\mathcal P(i_4) &= \sum_{i_1,i_2,i_3} \mathcal P(i_1,i_2,i_3,i_4) \\ & = \sum_{i_1,i_2,i_3} \mathcal P(i_1) \cdot \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_3) \end{aligned} \\ \text{VE Method: } \quad \quad \begin{aligned} \mathcal P(i_4) & = \sum_{i_1,i_2,i_3} \mathcal P(i_1,i_2,i_3,i_4) \\ & = \sum_{i_3} \mathcal P(i_4 \mid i_3) \cdot \sum_{i_2} \mathcal P(i_3 \mid i_2) \cdot \sum_{i_1} \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_1) \end{aligned} \end{cases}????Original?Method:?P(i4?)?=i1?,i2?,i3?∑?P(i1?,i2?,i3?,i4?)=i1?,i2?,i3?∑?P(i1?)?P(i2?∣i1?)?P(i3?∣i2?)?P(i4?∣i3?)?VE?Method:?P(i4?)?=i1?,i2?,i3?∑?P(i1?,i2?,i3?,i4?)=i3?∑?P(i4?∣i3?)?i2?∑?P(i3?∣i2?)?i1?∑?P(i2?∣i1?)?P(i1?)??
同理,精確推斷還有基于前向后向算法邏輯的信念傳播(Belief Propagation,BP)方法。 - 近似推斷(Approximate?Inference\text{Approximate Inference}Approximate?Inference):針對隨機變量結點的概率無法準確求解/求解代價極大。最典型的依然是因隱變量Z\mathcal ZZ維度過高產生的 積分難問題:
P(X)=∫z1?∫zKP(X∣Z)?P(Z)dz1,?,zK\begin{aligned} \mathcal P(\mathcal X) = \int_{z_1} \cdots\int_{z_{\mathcal K}} \mathcal P(\mathcal X \mid \mathcal Z) \cdot \mathcal P(\mathcal Z) dz_1,\cdots,z_{\mathcal K} \end{aligned}P(X)=∫z1???∫zK??P(X∣Z)?P(Z)dz1?,?,zK??
對應采樣方法如變分推斷(Variational?Inference,VI\text{Variational Inference,VI}Variational?Inference,VI),以及基于采樣方式的隨機性近似方法:馬爾可夫鏈蒙特卡洛方法(Markov?Chain?Monte?Carlo,MCMC\text{Markov Chain Monte Carlo,MCMC}Markov?Chain?Monte?Carlo,MCMC)。
從學習層面觀察,由于是基于概率分布,因而關于模型參數(shù)學習的底層方法是極大似然估計(Maximum?Likelihood?Estimatation,MLE\text{Maximum Likelihood Estimatation,MLE}Maximum?Likelihood?Estimatation,MLE)。
當然,這僅是常規(guī)的學習思路。其他方法例如以
生成對抗網絡(Generative?Adversarial?Networks,GAN\text{Generative Adversarial Networks,GAN}Generative?Adversarial?Networks,GAN)為代表的對抗學習等。
例如高斯混合模型、隱馬爾可夫模型中使用的EM\text{EM}EM算法,它們都是極大似然估計的衍生方法。
而神經網絡中不存在推斷一說。
- 隱藏層神經元結點產生的中間值僅僅表示一個實數(shù),連基本的概率意義都沒有。自然不會出現(xiàn)隱藏層關于某神經元結點的概率這種描述。
- 和上述的前饋神經網絡處理 亦或問題 一樣,一旦權重W\mathcal WW、偏置信息bbb給定的條件下,給定一個輸入,那么神經網絡中所有隱藏層結點結果均被固定,不存在不確定的分布一說。
關于神經網絡的學習任務相比于概率圖模型單調一些。其核心是梯度下降方法(Gradient?Descent,GD\text{Gradient Descent,GD}Gradient?Descent,GD)。
無論是隨機梯度下降
(Stochastic?Gradient?Descent,SGD\text{Stochastic Gradient Descent,SGD}Stochastic?Gradient?Descent,SGD),批量梯度下降
(Batch?Gradient?Descent,BGD\text{Batch Gradient Descent,BGD}Batch?Gradient?Descent,BGD),RMSProp\text{RMSProp}RMSProp,Adagrad\text{Adagrad}Adagrad,Adam\text{Adam}Adam算法,其底層邏輯均屬于梯度下降方法。詳細可參閱這篇文章,非常感謝。
傳送門
如果神經網絡內隱藏層數(shù)量較多,梯度求解過程復雜,則引入反向傳播算法(Backward?Propagation,BP\text{Backward Propagation,BP}Backward?Propagation,BP)
需要注意的是,反向傳播算法只是一種‘高效的求導方法’,這種方法僅是在每次迭代過程中將梯度傳遞給各個隱藏層神經元的權重信息中,它本身并不是參數(shù)學習方法。
相關參考:
【pytorch】3.0 優(yōu)化器BGD、SGD、MSGD、Momentum、Adagrad、RMSPprop、Adam
生成模型5-概率圖VS神經網絡