1. 程式人生 > >六.隨機神經網路Boltzmann(玻爾茲曼機)

六.隨機神經網路Boltzmann(玻爾茲曼機)

Hopfield網路具有最優計算功能,然而網路只能嚴格按照能量函式遞減方式演化,很難避免偽狀態的出現,且權值容易陷入區域性極小值,無法收斂於全域性最優解。

如果反饋神經網路的迭代過程不是那麼死板,可以在一定程度上暫時接受能量函式變大的結果,就有可能跳出區域性極小值。隨機神經網路的核心思想就是在網路中加入概率因素,網路並不是確定的向能量函式減小的方向演化,而是以一個較大概率向這個方向演化,以保證正確的迭代方向,同時想能量函式增大的概率也存在,以防止陷入區域性極小值。

 在機器學習以及優化組合問題中,最常用的方法就是梯度下降法。比如BP神經網路,多層感知器的神經元(units)越多,對應的權矩陣也就越大,每個權可視為一個自由度或者變數。我們知道自由度越高,變數越多,模型越複雜,模型的能力越強。但是模型能力越強,模型就越容易過擬合,對噪聲太敏感。另一方面,使用梯度下降進行最優解搜尋時,多變數的誤差曲面很像是連綿起伏的山峰一樣,變數越多,山峰和山谷也越多,這就導致梯度下降法極容易陷入到區域性的一個小山谷,而停止搜尋(區域性最優)。這就是常規的梯度下降法在解決多維度的優化問題中最常見的區域性最優問題。究其原因是梯度下降法的搜尋準則所致,按照梯度的負方向搜尋,一味追求網路誤差或能量函式的降低,使得搜尋只具有“下山”的能力,而不具備“爬山”的能力。所謂“爬山”的能力,就是當搜尋陷入區域性最優時,還能具備一定的“翻山越嶺”的能力,能夠從區域性最優中逃出來,繼續搜尋全域性最優。如果為具有多個區域性極小點的系統打一個形象的比喻。設想托盤上有一個凸凹不平的多維能量曲面,若在該曲面上放置一個小球,它在重力作用下,將滾入最鄰近的一個低谷(區域性最小點)而不能自拔。但該低谷不一定就是曲面上最低的那個低谷(全域性最小點)。因此, 區域性極小問題只能通過改進演算法來解決 。一種可行的辦法就是剛才所提到的讓演算法具有“爬山”的能力,同時還要保證當搜尋進入全域性最優時不會因為“爬山”而跑出全域性最優的“山谷”。本文要講解的隨機神經網路:模擬退火(Simulated Annealing)與玻爾茲曼機(Boltzmann Machine)就是通過一定的概率保證搜尋陷入區域性最優時能夠具有一定的“爬山”能力。這個形象的對比可參看下圖:

本文先介紹模擬退火演算法,然後討論基於模擬退火演算法的Boltzmann機的結構和執行原理,在介紹Sigmoid置信度網路。

模擬退火演算法

模擬退火演算法時非凸優化問題尋優的一種重要的啟發式演算法。

 

模擬退火演算法的引數控制

為了確保模擬退火演算法在有限時間收斂,必須設定控制引數控制演算法收斂的引數。上面公式中,可調節的引數是控制退火快慢的引數T,T如果過大,會導致退火太慢,會延長不必要的搜尋時間,T太小,則退火很快,達到區域性極小值即結束迭代。實際中應該採用退火溫度表,退火初期採用較大的T值,隨著退火的進行,逐步降低。退火溫度表包括以下內容:

  1. 溫度的初始值T(0),初始溫度應該選的夠高,使得所有可能的狀態轉移都被接受。初始溫度越高,獲得高質量的解的可能性就越大,耗費時間也就越長。
  2. 退火速率最簡單的速率下降方式有以下幾種:
  3. 終止溫度:如果在若干次連續的溫度下沒有可接受的新狀態,則演算法終止。

 

模擬退火演算法的執行步驟:

 

 Boltzmann機

G·E·Hinton等人提出一種稱為 Boltzmann 機的隨機神經網路 。在這種網路中神經元只有兩種輸出狀態,即單極性二進位制的0或1。狀態的取值根據概率統計法則決定,由於這種概率統計法則的表達形式與著名統計力學家 L·Boltzmann 提出的 Boltzmann 分佈類似,故將這種網路取Boltzmann機。

BM網路結構及執行原理

(1)BM機的結構介於DHNN全互連與BP網路的層次結構之間,形式上與單層反饋網路DHNN相似,權值對稱,且wii = 0;功能上BM機與三層BP網相似,具有輸入節點、輸出節點和隱節點。一般把輸入與輸出節點稱為可見節點,隱節點成為不可見節點,訓練時輸入輸出節點收集訓練樣本,而隱節點主要起輔助作用,用來實現輸入輸出之間的聯絡,使得訓練集能在可見單元再現。BM機的3類節點之間沒有明顯的層次。

(2)神經元的轉移概率函式,設BM網路中單個神經元的淨輸入為:

與DHNN不同的是,淨輸入並不能通過符號轉移函式直接獲得確定的輸出狀態,實際的輸出狀態將按照某種概率發生,輸出某種狀態的轉移概率:

上式表示的是神經元j輸出狀態取1的概率。狀態為0的概率就用1減去即可。可以看出,淨輸入越大,神經元狀態取1的概率越大;淨輸入越小,神經元狀態取0的概率越大。而溫度T的變化可改變概率曲線的形狀。具體如下圖所示:

從公式和圖中可以看出,當溫度T較高時,概率曲線變化平緩,對於同一淨輸入得到的狀態為0或1的概率差別小;而溫度低時,改率曲線陡峭,對於同一淨輸入狀態為1或0的概率差別大;當T = 0時,概率函式退化為符號函式,神經元輸出狀態將無隨機性。

 

網路能量函式與執行的搜尋機制:

BM機採用的與DHNN網路相同的能量函式描述網路狀態,如下圖所示:

設BM機按非同步方式工作,每次第j個神經元改變狀態,根據能量變化公式:

 

下面進行進行一下討論:
(1) 當淨輸入大於0時,狀態為1的概率大於0.5。若原來狀態xj=1,則Δxj=0,從而ΔE=0;若原理狀態xj=0,則Δxj=1,從而ΔE<0,能量下降;
(2) 當淨輸入小於0時,狀態為1的概率小於0.5。若原來狀態xj=0,則Δxj=0,從而ΔE=0;若原理狀態xj=1,則Δxj=-1,從而ΔE<0,能量下降;
以上對各種可能的情況討論中可以看出,對於BM機,隨著網路狀態的演變,從概率意義上網路的能量總是朝著減小的方向變化。這就意味著儘管網路能量的總趨勢是朝著減小的方向演進,但不排除在有些神經元狀態可能會按照小概率取值,從而使網路能量暫時增加。正是因為有了這種可能性,BM機才具有了從區域性極小的低谷中跳出的“爬山”能力,這一點是BM機與DHNN網能量變化的根本區別。由於採用了神經元狀態按概率隨機取值的工作方式,BM機的恩呢高亮具有不斷跳出位置較高的低谷搜尋位置較低的新低谷的能力。這種執行方式稱為搜尋機制,即網路在執行過程中不斷地搜尋更低的能量極小值,直到達到能量的全域性最小。從模擬退火的原理可以看出,溫度T不斷下降可使得網路“爬山”能力由強減弱,這正是保證BM機能成功搜尋到能量全域性最小的有效措施。

BM網路的Boltzmann分佈

設xj=1時對應的網路能量為E1,xj=0時網路能量為E0,根據前面的分析結果,當xj由1變為0時,有Δxj=-1,於是有如下的公式:E0-E1= ΔE = netj;對應的狀態為1或狀態為0的概率如下圖所示:

將上式推廣到網路中任意兩個狀態出現的概率與之對應能量之間的關係,有:

這就是著名的Boltzmann分佈。從公式中可以看出:BM機處於某一狀態的概率主要取決於此狀態下的能量,能量越低概率越大;BM機處於某一狀態的概率還取決於溫度引數T,溫度越高,不同狀態出現的概率越近,網路能量較容易跳出區域性極小而搜尋全域性最小,溫度越低,不同狀態出現的概率差別越大,網路能量較不容易改變,從而可以使得網路搜尋收斂。這正是採用模擬退火方法搜尋全域性最小的原因所在

 

用BM機進行優化計算時,可構造目標函式為網路的能量函式,為防止目標函式陷入區域性最優,採用上述模擬退火演算法進行最優解的搜尋,開始時溫度設定很高,此時神經元狀態為1或0概率幾乎相等,因此網路能量可以達到任意可能的狀態,包括區域性最小或全域性最小。當溫度下降,不同狀態的概率發生變化,能量低的狀態出現的概率大,而能量高的狀態出現的概率小。當溫度逐漸降至0時,每個神經元要麼只能取1,要麼只能取0,此時網路的狀態就凝固在目標函式全域性最小附近。對應的網路狀態就是優化問題的最優解。

用BM機進行聯想時,可通過學習用網路穩定狀態的概率來模擬訓練樣本的出現概率。根據學習型別,BM機可分為自聯想和異聯想。具體見最上面的Boltzmann機圖。左邊為自聯想,右邊為異聯想。自聯想型BM機中的可見節點V與DHNN網中的節點相似,即使輸入節點也是輸出節點,隱節點H的數目由學習的需要決定,而最少可以為0;異聯想BM機中的可見節點V需按照功能分為輸入節點組I和輸出節點組O。

 

Boltzmann學習演算法

1.學習過程:通過有導師學習,BM網路可以對訓練集中各種模式的概率分佈進行模擬,從而實現聯想記憶。學習目的是通過調整權值使得訓練集中的模式在網路狀態中以相同的概率再現。學習過程可以分為兩個階段:

  1. 正向學習階段或輸入期:即向網路輸入一對輸入輸出模式,將網路輸入輸出節點的狀態鉗制到期望的狀態,而讓隱節點自由活動以捕捉模式對之間的對應規律
  2. 反向學習階段或自由活動期:對於異聯想學習,鉗制住輸入節點而然隱含節點和輸出節點自由活動;對於自聯想學習,可以讓其可見節點和隱節點都自由活動,已體現網路對輸入輸出對應規律的模擬情況。輸入輸出的對應規律表現為網路到達熱平衡時,相連節點狀態同時為一的平均概率。期望對應規律與模擬對應規律之間的差別就表現為兩個學習階段對應的平均概率的差值,此差值做為權值調整的依據。

設BM網路隱含節點個數為m,可見節點個數為n,則可見節點可表達的狀態X(對於異聯想,X中部分分量表示輸入模式,還有一部分表示輸出模式)共有2的n次方種。

設訓練集共提供了P對模式,一般有P<n,訓練集用一組概率縫補表示各個模式出現的概率:

以上也正是在正向學習階段期望的網路狀態概率分佈。當網路自由執行時,相應模式出現的概率為:

 

 

學習演算法並沒有學怎麼懂,以後會在繼續補上