神經網絡的前世今生
前言
網絡上對波爾茲曼機討論甚少,所以本文是對RBM的一個簡介。
Geoffrey Hinton 被稱爲"深度學習之父"
與"神經網絡先驅"
,他的主要貢獻包括反向傳播算法、受限波爾茲曼機、深度置信網絡、對比散度算法、ReLU激活單元、Dropout方法,在2017年末又提出膠囊神經網絡,改善了CNN。
反向傳播
Back Propagation
,很難相信它在生物學上成立,並且他需要使用SGD等方法進行優化,這是一個高度非凸的問題,相比之下,SVM顯然可解釋性更高也更優雅。
收斂速度慢,使用Newton法解決
過擬合,Dropout方法解決
局部極小,使用不同的初始值
限制波爾茲曼機RBM
在第二次NN低谷後,Hinton尋找到了另一個模型:統計熱力學模型
,根據波爾茲曼統計相關知識,結合馬爾科夫隨機場等圖學習理論,提出波爾茲曼機(BM)。使用能量模型描述神經網絡,更加可解釋。
人工神經網絡
前饋結構(Feed Forward),沒有循環,靜態的網絡
反饋結構(Feedback/ Recurrent),有循環,是動態的網絡
HopField網絡
它是反饋結構的神經網絡,它具有內容尋址記憶的特點,通過與數據部分相似的輸入,回想起數據本身。
波爾茲曼機
也是反饋結構,但是他服從波爾茲曼分佈,具有隱單元。
RBM
他是波爾茲曼機的限制版本,限制可見層(v,輸入)與隱層(h,輸出)之間有連接,但是層內無連接,這就不構成循環結構。值得注意的是,上述三個網絡的神經元只有0/1 狀態,即激活與未激活狀態。
在統計熱力學中,波爾茲曼分佈(Gibson分佈),用於描述量子體系量子態分佈: P ( s ) ∝ e − E ( s ) k T P(s) \propto e^{\frac{-E(s)}{kT}} P ( s ) ∝ e k T − E ( s ) ,其中s s s 爲量子態,E ( s ) E(s) E ( s ) 爲狀態的能量,P ( s ) P(s) P ( s ) 爲這個狀態出現的概率,k k k 爲波爾茲曼常熟,T T T 是系統溫度(常數),所以可以假設k T = 1 kT=1 k T = 1 ,可以簡化爲
P ( s ) ∝ e − E ( s ) P(s) \propto e^{-E(s)} P ( s ) ∝ e − E ( s )
可以得到每個量子的概率爲
P ( s i ) = e − E ( s i ) ∑ s e − E ( s ) P(s_{i}) = \frac{ e^{-E(s_{i})} }{ \sum_{s}e^{-E(s)} } P ( s i ) = ∑ s e − E ( s ) e − E ( s i )
這和softmax 相同,我們可以再次定義Z : = ∑ s e − E ( s ) Z := \sum_{s}e^{-E(s)} Z : = ∑ s e − E ( s ) ,於是有P ( s ) = 1 Z e − E ( s ) P(s) = \frac{1}{Z} e^{-E(s)} P ( s ) = Z 1 e − E ( s ) 。
爲了把這個模型應用在神經網絡中,我們需要定義E E E 與s s s 在神經網絡中的角色。前面說過,經典的人工神經網絡中,具有可見層 與隱層 (中間層),所以定義s s s 爲可見層並上隱層的狀態,即s = ( v , h ) s=(v, h) s = ( v , h ) ,P ( v , h ) = 1 Z e − E ( v , h ) P(v,h) = \frac{1}{Z}e^{-E(v, h)} P ( v , h ) = Z 1 e − E ( v , h ) 。同樣巧合的是,物理學中的易辛(Ising)模型 ,與神經網絡極其相似,對於神經元的偏置作爲Ising Model的外場,權重W W W 作爲內部耦合係數(兩個神經元之間的權重越大,代表耦合程度越高,關聯越強),得到如下能量公式,
E ( v , h ) = − a T v − b T h − h T W v E(v, h) = -a^{T}v-b^{T}h-h^{T}Wv E ( v , h ) = − a T v − b T h − h T W v
可以看出,對於可見層的偏置設爲a a a ,而對於隱藏層的偏置則爲b b b 。如果我們將某個神經元h i h_{i} h i 的能量分離出來,也就是
E ( v , h ) = − a T v − b ′ T v h ′ − h ′ T W ′ v − h i ( W i v + b i ) E(v, h) = -a^{T}v - b'^{T}vh'-h'^{T}W'v - h_{i}(W_{i}v+b_{i}) E ( v , h ) = − a T v − b ′ T v h ′ − h ′ T W ′ v − h i ( W i v + b i )
將前半段式子設爲E ( v , h ′ ) = − a T v − b ′ T v h ′ − h ′ T W ′ v E(v,h')=-a^{T}v - b'^{T}vh'-h'^{T}W'v E ( v , h ′ ) = − a T v − b ′ T v h ′ − h ′ T W ′ v ,那麼我們就可以得到P ( v , h ) = 1 Z e − E ( v , h ′ ) e h i W i v + b i P(v, h) = \frac{1}{Z} e^{-E(v, h')} e^{h_{i}W_{i}v+b_{i}} P ( v , h ) = Z 1 e − E ( v , h ′ ) e h i W i v + b i ,很容易得到
P ( h i = 1 ∣ v ) = ∑ h ′ , h i = 1 P ( v , h ) ∑ h ′ , h i = 0 P ( v , h ) + ∑ h ′ , h i = 1 P ( v , h ) = 1 1 + ∑ h ′ , h i = 0 P ( v , h ) ∑ h ′ , h i = 1 P ( v , h ) = 1 1 + ∑ h ′ E ( v , h ′ ) ∑ h ′ E ( v , h ′ ) e W i v + b i = 1 1 + e − ( w i v + b i ) \begin{array}{l}
\quad P(h_{i}=1|v) &=& \frac{ \sum_{h',h_{i}=1}P(v,h) } { \sum_{h',h_{i}=0}P(v,h) + \sum_{h',h_{i}=1}P(v,h) } \\
&=& \frac{1}{1 + \frac{ \sum_{h',h_{i}=0}P(v,h) }{ \sum_{h',h_{i}=1}P(v,h) } } \\
&=& \frac{1} {1 + \frac{\sum_{h'}E(v,h')}{ \sum_{h'}E(v,h')e^{W_{i}v+b_{i}} } } \\
&=& \frac{1}{1+e^{-(w_{i}v+b_{i})}} \\
\end{array} P ( h i = 1 ∣ v ) = = = = ∑ h ′ , h i = 0 P ( v , h ) + ∑ h ′ , h i = 1 P ( v , h ) ∑ h ′ , h i = 1 P ( v , h ) 1 + ∑ h ′ , h i = 1 P ( v , h ) ∑ h ′ , h i = 0 P ( v , h ) 1 1 + ∑ h ′ E ( v , h ′ ) e W i v + b i ∑ h ′ E ( v , h ′ ) 1 1 + e − ( w i v + b i ) 1
再次得到了Sigmoid函數,也就是
P ( h i = 1 ∣ v ) = σ ( W i v + b ) P(h_{i}=1|v) = \sigma(W_{i}v+b) P ( h i = 1 ∣ v ) = σ ( W i v + b )
這時候,Sigmoid函數的解釋爲波爾茲曼分佈下隱含層神經元激活的條件概率的激活函數 。
優化的目標,就是極大死然估計,也就是最大化P ( v ) = 1 Z ∑ h e − E ( v , h ) P(v)=\frac{1}{Z} \sum_{h}e^{-E(v, h)} P ( v ) = Z 1 ∑ h e − E ( v , h ) ,這個方程與熱力統計學中的自由能十分相似F ( v ) = − l n ∑ h e − E ( v , h ) F(v)=-ln\sum_{h}e^{-E(v, h)} F ( v ) = − l n ∑ h e − E ( v , h ) ,而式中Z = ∑ v e − F ( v ) Z=\sum_{v}e^{-F(v)} Z = ∑ v e − F ( v ) ,於是有P ( v ) = 1 Z e − F ( v ) P(v)=\frac{1}{Z}e^{-F(v)} P ( v ) = Z 1 e − F ( v ) ,而我們的目標是使能量最低的一組參數,在論文A practical guide to training restricted Boltzmann machines Momentum
中可以看到更多細節。
不過優化整體網絡是很困難的,其根源性在於分配函數Z Z Z ,通常認爲這是一個P-Hard 問題,如果能夠解決,那麼很多熱力學系統,包括Ising模型也就迎刃而解了。
算法中很重要的手段是貪心 ,逐層訓練網絡,而不是整體優化,爲了訓練每層RBM,Hinton提出了對比散度(Contrastive divergence)算法。利用Gibbs採樣,但是收斂速度仍然很慢,所以再次近似固定採樣步數k = 1 k=1 k = 1 ,這時候效果已經相當好了 。這個算法是無監督 的學習,不需要標籤就可以調優。
不過,後來由於使用ReLU以及合適的初始化,加上CNN,搭配GPU,原來的深度神經網絡可以照常訓練,不需要使用RBM預訓練。在監督學習方面,效果不如直接反向傳播,所以最近很少有人再提起,所以如今神經網絡模型與30年前(LSTM、CNN)沒什麼差別,只有trick上的差距。
物理定律是一部分不能用數學證明的真理。
深度置信網絡(Deep Belief Networks)
由多個RBM組成,每次訓練一個RBM。
Todo List