本章涉及知識點
1、生物神經元的結構
2、Hopfield神經網絡結構
3、神經動力學
4、CHNN的網絡結構
5、一般性CHNN模型的狀態方程推導
6、一般性CHNN模型的能量方程定義
7、CHNN模型下TSP的置換矩陣設計
8、CHNN模型下TSP的能量方程定義
9、CHNN模型下TSP的能量方程和狀態方程的優化
10、CHNN模型下TSP輸入狀態和輸出狀態的更新方法
11、Hopfield求解TSP問題的步驟
12、python編程實現Hopfield
13、結果分析
一、生物神經元的結構
人類的大腦,有著大約860億個神經元,而神經元,是構成神經網絡系統結構和功能的基本單位,其主要構成成分包括樹突、胞體、軸突和細胞膜等
神經元的主要功能是接受外界或不同神經元的信號刺激,產生興奮或者抑制的神經沖動,并通過突觸傳遞到下一個神經元進行信息交互
我們需要知道以下幾個生物神經元的名詞概念
(1)樹突:從胞體發出的一個至多個突起,呈放射狀,用來接受外界的刺激
(2)軸突:每個神經元有且只有一個軸突,用來向外界輸出神經沖動
(3)突觸:將一個神經元的神經沖動,傳遞到另一個神經元的相互接觸的結構
從上述的概念可以看出:一個生物神經元可以接受多組輸入,產生單組輸出,且輸入輸出呈非線性關系
我們通過對神經元和神經網絡進行數學建模,用計算機來盡量模擬生物神經網絡的學習和思考過程,這樣的網絡叫做人工神經網絡(ANN),ANN按照信息流可以分為前饋式和后饋式
這章研究的Hopfield神經網絡就屬于反饋式神經網絡
二、Hopfield神經網絡結構
Hopfield神經網絡有如下特點
(1)每個神經元既是輸入也是輸出,構成單層全連接遞歸網絡
(2)網絡的突觸權值不同于其他的神經網絡是通過有監督或無監督反復學習來獲得,而是在搭建網絡時就按照一定的規則計算出來,且網絡的權值在整個網絡迭代過程中不再改變
(3)網絡的狀態是隨時間的變化而變化的,每個神經元在t時刻的輸出狀態和自己t-1時刻有關
(4)引入能量函數的概念,用來判斷網絡迭代的穩定性,即網絡的收斂,就是指能量函數達到極小值
(5)網絡的解,即是網絡運行到穩定時,各個神經元的狀態集合
Hopfield神經網絡也是遞歸神經網絡(RNN)的前身,Hopfield模型分為:
離散型(DHNN):適用于處理聯想記憶問題
連續性(CHNN):適用于處理組合優化問題
三、神經動力學
神經動力學的定義:將神經網絡看做是一種非線性動力學系統,系統的狀態集合隨時間的變化而變化
令系統的輸出狀態變量集合為
其中t是連續時間變量,則系統的輸出狀態和輸出狀態的增量可以用下面的微分方程表示
其中F函數是S型非線性函數映射,一般F取對稱sigmoid雙曲正切函數來完成輸出狀態的非線性映射
四、CHNN的網絡結構
TSP問題是組合優化,使用Hopfield神經網絡的CHNN模型,將網絡抽象為
(1)Hopfield神經網絡等效為放大電子電路
(2)Hopfield每一個神經元等效為一個電子放大器元件
(3)Hopfield每一個神經元的輸入和輸出,等效為電子元件的輸入電壓和輸出電壓
(4)每一個電子元件(神經元)輸出的電信號有正負值,正值代表興奮,負值代表抑制
(5)每一個電子元件(神經元)的輸入信息,包含恒定的外部電流輸入,和其它電子元件的反饋連接
根據以上等效抽象,CHNN的電路拓撲圖結構為
其中,Ui表示放大電子元件的輸入電壓,Vi表示輸出電壓,運算放大器i表示第i個神經元
五、一般性CHNN模型的狀態方程推導
設電容C兩端的電壓為Uc,存儲的電荷量為Q,則
則經過電容C的電流為
根據基爾霍夫電流定律,CHNN等效電路的電流關系為
令Tij表示神經元之間連接的權值
則電流關系化簡為
上式就是關于CHNN模型中輸入電壓ui和ui增量的微分方程關系,也就是CHNN模型的狀態方程,其中輸入電壓vi滿足非線性映射規則f
六、一般性CHNN模型的能量方程定義
在神經網絡的優化過程中,目標函數是用來判斷當前網絡是否達到穩定,即網絡的優化,就是目標函數逼近達到最小值的過程,一般的優化算法有:梯度下降法、牛頓法、啟發式優化等
但是在Hopfield網絡中,由于網絡的權重全程保持不變,神經元當前時刻狀態和上一個時刻相關,為此我們采用能量函數來衡量Hopfield網絡的穩定性
由于CHNN的能量函數定義為
能量函數E是單調下降,故Hopfield網絡是穩定的
至此,有了Hopfield網絡的CHNN模型的狀態方程和能量函數,我們就可以來嘗試抽象和轉化TSP問題
七、CHNN模型下TSP的置換矩陣設計
我們的案例里有8個城市,通過構造NN模型,將每一個城市對應于神經網絡的每一個神經元,即案例的TSP問題可以用8x8=64個神經元組成的Hopfield網絡來求解
為了滿足TSP的規則,我們設計置換矩陣的形式如下
置換矩陣負責翻譯并遵從TSP的規則:
(1)一個城市只能被訪問一次,翻譯為:矩陣每行有且只有一個1,其余元素均為0
(2)一次只能訪問一個城市,翻譯為:矩陣每列有且只有一個1,其余元素均為0
(3)共訪問過n個城市,翻譯為:矩陣的全部元素中1的數量為n
在神經網絡迭代優化過程中,每次神經元輸出的狀態集合只要滿足上述置換矩陣的規則,則證明該組輸出狀態就是一個TSP問題的解,我們只要在這些解中找到最小代價的解即可
八、CHNN模型下TSP的能量方程定義
對于TSP問題,我們在一般性CHNN能量函數的基礎上,需要考慮以下兩點問題來設計出TSP的能量函數
(1)TSP的能量函數需要量化的翻譯置換矩陣的規則
(2)在TSP問題中的n!個合法路線中,能量函數要有利于量化表示最短路線的解
為此,我們設計TSP能量函數的第一項為
上式翻譯為:每一行中的每一個城市x,必須有且只有一個1,符合置換矩陣的第一條規則
設計TSP能量函數的第二項為
上式翻譯為:每一列中的每一個城市x,必須有且只有一個1,符合置換矩陣的第二條規則
設計TSP能量函數的第三項為
上式翻譯為:整個矩陣有n個1,符合置換矩陣的第三條規則
設計TSP能量函數的第四項為
上式包含神經網絡輸出中有效解的路徑長度信息,dxy表示城市x到城市y的距離
為此,TSP的能量函數E整合為
其中參數ABCD稱為權值,前三項是滿足TSP置換矩陣的約束條件,最后一項包含優化目標函數項
九、CHNN模型下TSP的能量方程和狀態方程的優化
由于上式定義的能量函數過于復雜,數學家們對能量函數進行了優化,將TSP問題的能量函數改進為
優化后的能量函數減少了權值參數的個數,且根據能量函數E,將CHNN的動態方程優化為
在實際編程中,我們可以用這兩個函數優化迭代和判定當前Hopfield神經網絡的輸出狀態
十、CHNN模型下TSP輸入狀態和輸出狀態的更新方法
我們根據優化后CHNN的動態方程,可以寫出Hopfield遞歸神經網絡的輸入狀態的更新表達式為
上式中可以看到Hopfield遞歸神經網絡當前時刻的輸入與其上一個時刻關聯
由非線性映射,我們寫出Hopfield遞歸神經網絡的輸出狀態的更新表達式為
其中輸出狀態的非線性映射是雙曲正切函數
十一、Hopfield求解TSP問題的步驟
至此,我們總結出利用Hopfield神經網絡來求解TSP問題的步驟
(1)初始化Hopfield神經網絡的初值(如輸入電壓U0、迭代次數)和權值(A、D)
(2)計算n個城市之間的距離矩陣Dxy
(3)初始化神經網絡的輸入狀態
其中加入的隨機項為
(4)利用CHNN動態方程計算輸入狀態的增量
(5)由一階歐拉方法更新神經網絡下一個時刻的輸入狀態
(6)由sigmoid函數更新神經網絡下個時刻的輸出狀態
(7)計算當前的能量函數E
(8)檢查當前神經網絡的輸出狀態集合,是否滿足TSP置換矩陣的規則
十二、python編程實現Hopfield
我們用python編程實現出Hopfield神經網絡的優化步驟
動態方程計算微分方程du
更新神經網絡的輸入電壓U
更新神經網絡的輸出電壓V
計算當前網絡的能量
檢查路徑的正確性
迭代優化Hopfield神經網絡
十三、結果分析
我們設置以下參數來求解TSP案例
根據這些初值,Hopfield神經網絡在經過10000次迭代優化后,找到的TSP的最優路線解為
最終Hopfield神經網絡找到的最優哈密頓回路為
可以看到初值設置得當,Hopfield神經網絡找到的最優解已經和真實最優解一致
在神經網絡優化過程中,能量函數的波動為
用Hopfield神經網絡求解TSP問題,我們可以總結出以下幾點
(1)Hopfield神經網絡是求解TSP的一種優化網絡算法
(2)Hopfield神經網絡通過神經動力學來映射生物神經網絡,在參數設置合理的情況下,有可能找到真實最優解,比近似算法計算的效果要好
(3)Hopfield神經網絡比較依賴初始權值的設置,會受到初始輸入狀態和輸出狀態的隨機性影響,不一定每一次都可以找到最優解,有可能找到的是不同的次優解
案例代碼見:Hopfield神經網絡求解TSP問題