神經(jīng)網(wǎng)絡(luò)計算?(Neural Network Computing ?NNC)是通過對人腦的基本單元——神經(jīng)元的模擬,經(jīng)過輸入層、隱層、輸出層等層次結(jié)構(gòu),對數(shù)據(jù)進行調(diào)整、評估和分析計算,得到的一類具有學習、聯(lián)想、記憶和模式識別等功能的智能算法。
神經(jīng)網(wǎng)絡(luò)計算示意圖(摘自互聯(lián)網(wǎng))
要想比較深入的理解神經(jīng)網(wǎng)絡(luò)計算,就必須對神經(jīng)網(wǎng)絡(luò)系統(tǒng)有一定的理解,下面對其進行一些簡單介紹。
神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)是由大量的、簡單的處理單元(簡稱為神經(jīng)元)經(jīng)廣泛互連而形成的一個復雜網(wǎng)絡(luò)系統(tǒng),反映了人腦功能的許多基本特征,是一個高度復雜化的非線性動力學系統(tǒng)。神經(jīng)網(wǎng)絡(luò)具有大規(guī)模并行、分布式存儲和處理、自組織、自適應和自學習等能力,特別適合處理需要同時考慮眾多因素和條件的、含不精確和模糊信息的實際問題。神經(jīng)網(wǎng)絡(luò)的發(fā)展與
神經(jīng)科學、數(shù)理科學、認知科學、
計算機科學、
人工智能、
控制論、機器人學、心理學、分子生物學等諸多學科有關(guān),是一門新興的
邊緣交叉學科。
神經(jīng)網(wǎng)絡(luò)示意圖(摘自互聯(lián)網(wǎng))
神經(jīng)網(wǎng)絡(luò)是腦科學、神經(jīng)心理學和信息科學等多學科的交叉研究領(lǐng)域,也是近年來高科技領(lǐng)域的一個新的研究熱點,其目的是想通過對人腦的組成機理和思維方式等的研究,進而通過模擬人腦的結(jié)構(gòu)和工作模式使機器具有類似人類的智能。
神經(jīng)網(wǎng)絡(luò)就是通過神經(jīng)元、細胞、觸突等結(jié)構(gòu)組成的一個大型網(wǎng)絡(luò)結(jié)構(gòu),用來幫助生物進行思考和行動。那么人們就想到了計算機是不是也可以像人腦一樣具有這種結(jié)構(gòu),這樣是不是就可以進行類似的思考。
神經(jīng)元示意圖(摘自互聯(lián)網(wǎng))
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖(摘自互聯(lián)網(wǎng))
人腦神經(jīng)網(wǎng)絡(luò)系統(tǒng)的基本構(gòu)造是神經(jīng)元(神經(jīng)細胞),是處理人體內(nèi)各部分之間相互信息傳遞的基本單元。神經(jīng)生物學家研究的結(jié)果表明,人的一個大腦一般有一千個以上的神經(jīng)元,每個神經(jīng)元都由一個細胞體,一個連接其他神經(jīng)元的軸突和一些向外伸出的其它較短分支——樹突組成。軸突的功能是將神經(jīng)元的輸出信號傳遞給別的神經(jīng)元,其末端的許多神經(jīng)末梢使得信號可以同時傳送給多個神經(jīng)元。樹突的功能是接受來自其它神經(jīng)元的信號,神經(jīng)元細胞體將接受到的所有信號進行簡單處理后再由軸突輸出。神經(jīng)元的樹突與另外的神經(jīng)元的神經(jīng)末梢相連的部分稱為突觸,這一結(jié)構(gòu)的特點決定著人工神經(jīng)網(wǎng)絡(luò)具有高速信息處理的能力。人腦的每個神經(jīng)元大約有上百個樹突及相應的突觸,一個人的大腦形成一千個左右的突觸。雖然每個神經(jīng)元的運算功能十分簡單,且信號傳輸速率也較低,但由于各神經(jīng)元之間的極度并行互連功能,最終使得一個普通人的大腦在約1秒內(nèi)就能完成現(xiàn)行計算機至少需要數(shù)10億次運算處理能力才能完成的任務(wù)。
人腦神經(jīng)網(wǎng)絡(luò)的知識存儲容量很大。在神經(jīng)網(wǎng)絡(luò)中,知識與信息的存儲表現(xiàn)為神經(jīng)元之間分布式的物理聯(lián)系,分散地表示和存儲于整個網(wǎng)絡(luò)內(nèi)的各神經(jīng)元及其連線上。每個神經(jīng)元及其連線只表示一部分信息,而不是一個完整的具體概念,只有通過各神經(jīng)元的分布式綜合效果才能表達出特定的概念和知識。
由于人腦神經(jīng)網(wǎng)絡(luò)中神經(jīng)元個數(shù)眾多以及整個網(wǎng)絡(luò)存儲信息容量巨大,使得它具有很強的不確定性信息的處理能力,即使輸入信息不完全、不準確或模糊不清,神經(jīng)網(wǎng)絡(luò)仍然能夠通過聯(lián)想思維得到存在于記憶中事物的完整圖象,只要輸入的模式接近于訓練樣本,系統(tǒng)就能給出正確的推理結(jié)論。
下圖中的x
1、x
2、x
3等表示輸入值,構(gòu)成第一層L
1,組成輸入層;中間的圓形成L
2、 L
3?、L
4等多個層次,組成隱層;神經(jīng)元經(jīng)過多層的調(diào)整、評估和分析計算處理后得出h
w,b(x)的結(jié)果作為神經(jīng)元的輸出值,構(gòu)成輸出層,組成人們常說的人工神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)神經(jīng)元結(jié)構(gòu)示意圖(摘自互聯(lián)網(wǎng))
上圖中的橙色圓都是用來計算h
w,b(x)的,縱向我們叫做層(Layer),每一層都以前一層的結(jié)果做為輸入,經(jīng)過處理得到輸出結(jié)果傳遞給下一層
如果我們把神經(jīng)網(wǎng)絡(luò)看做一個黑盒子,那么最左邊的x
1、x
2、x
3等是這個黑盒子的輸入X,最右邊的h
w,b(x)是這個黑盒的輸出Y,可以通過一個數(shù)學模型進行擬合,通過大量數(shù)據(jù)來訓練這個模型,之后就可以通過訓練好的模型預估新的樣本X應該能得出什么樣的結(jié)果Y。
以上簡單說明神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),通過較深的多個層次來模擬真實情況,從而構(gòu)造出最能表達真實世界的模型,它的運作成本就是海量的訓練數(shù)據(jù)和巨大的計算處理工作量。
正是因為人腦神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)特點和其信息存儲的分布式特點,使得它相對于其它的判斷識別系統(tǒng),如專家系統(tǒng)、層次分析系統(tǒng)等,具有顯著的穩(wěn)健性優(yōu)點。生物神經(jīng)網(wǎng)絡(luò)不會因為個別神經(jīng)元的損失而失去對原有模式的記憶,最有力的證明是,當一個人的大腦因意外事故受輕微損傷之后,并不會失去原有事物的全部記憶。神經(jīng)網(wǎng)絡(luò)也有類似的情況。因某些原因,無論是網(wǎng)絡(luò)的硬件實現(xiàn)還是軟件實現(xiàn)中的某個或某些神經(jīng)元失效時,整個網(wǎng)絡(luò)仍然能繼續(xù)工作。
人工神經(jīng)網(wǎng)絡(luò)是一種非線性的處理單元。只有當神經(jīng)元對所有的輸入信號的綜合處理結(jié)果超過某一門限值后才輸出一個信號,因此神經(jīng)網(wǎng)絡(luò)是一種具有高度非線性的超大規(guī)模連續(xù)時間動力學系統(tǒng),突破了傳統(tǒng)的以線性處理為基礎(chǔ)的計算機的局限性,標志著人們智能信息處理能力和模擬人腦智能行為能力的一大飛躍。
神經(jīng)網(wǎng)絡(luò)經(jīng)過多年的研究和發(fā)展,已經(jīng)形成了幾十種類型不同并各具特點的神經(jīng)網(wǎng)絡(luò)模型,分析處理算法也各具特點,所以下面只簡單的介紹幾種典型的常用神經(jīng)網(wǎng)絡(luò)。
1.多層感知網(wǎng)絡(luò)。它是一類具有三層或三層以上的階層型神經(jīng)網(wǎng)絡(luò)。典型的多層感知網(wǎng)絡(luò)是三層、前饋型的階層網(wǎng)絡(luò),即含有輸入層、隱層(也稱中間層、隱含層)和輸出層。相鄰層之間的各神經(jīng)元實現(xiàn)全連接,即下一層的每一個神經(jīng)元與上一層的每個神經(jīng)元都實現(xiàn)全連接,而且每層各神經(jīng)元之間無連接。但它并非十分完善,存在以下一些主要缺陷:學習收斂速度慢、網(wǎng)絡(luò)的學習記憶具有不穩(wěn)定性,當給一個訓練好的網(wǎng)提供新的學習記憶模式時,將使已有的連接權(quán)值被打亂,導致已記憶的學習模式的信息的消失。
2.競爭神經(jīng)網(wǎng)絡(luò)。它是基于人的視網(wǎng)膜及大腦皮層對剌激的反應而引出的一類神經(jīng)網(wǎng)絡(luò)。神經(jīng)生物學的研究結(jié)果顯示生物視網(wǎng)膜中有許多特定的細胞,對特定的輸入模式如圖形比較敏感,并使得大腦皮層中的特定細胞產(chǎn)生大的興奮,而其相鄰的神經(jīng)細胞的興奮程度被抑制。對于某一個輸入模式,通過競爭在輸出層中只激活一個相應的輸出神經(jīng)元。許多輸入模式,在輸出層中將激活許多個神經(jīng)元,從而形成一個反映輸入數(shù)據(jù)的“特征圖形”。競爭神經(jīng)網(wǎng)絡(luò)是一種以無教師方式進行網(wǎng)絡(luò)訓練的網(wǎng)絡(luò),通過自身訓練,自動對輸入模式進行分類。競爭型神經(jīng)網(wǎng)絡(luò)及其學習規(guī)則與其它類型的神經(jīng)網(wǎng)絡(luò)和學習規(guī)則相比,有其自己的鮮明特點。在網(wǎng)絡(luò)結(jié)構(gòu)上,它既不象階層型神經(jīng)網(wǎng)絡(luò)那樣各層神經(jīng)元之間只有單向連接,也不象全連接型網(wǎng)絡(luò)那樣在網(wǎng)絡(luò)結(jié)構(gòu)上沒有明顯的層次界限。它一般是由輸入層(模擬視網(wǎng)膜神經(jīng)元)和競爭層(模擬大腦皮層神經(jīng)元,也叫輸出層)構(gòu)成的兩層網(wǎng)絡(luò)。兩層之間的各神經(jīng)元實現(xiàn)雙向全連接,而且網(wǎng)絡(luò)中沒有隱含層,有時競爭層各神經(jīng)元之間存在橫向連接。競爭神經(jīng)網(wǎng)絡(luò)的基本思想是網(wǎng)絡(luò)競爭層各神經(jīng)元競爭對輸入模式的響應機會,最后僅有一個神經(jīng)元成為競爭的勝利者,并且只將與獲勝神經(jīng)元有關(guān)的各連接權(quán)值進行修正,使之朝著更有利于它競爭的方向調(diào)整。神經(jīng)網(wǎng)絡(luò)工作時,對于某一輸入模式,網(wǎng)絡(luò)中與該模式最相近的學習輸入模式相對應的競爭層神經(jīng)元將有最大的輸出值,即以競爭層獲勝神經(jīng)元來表示分類結(jié)果。這是通過競爭得以實現(xiàn)的,實際上也就是網(wǎng)絡(luò)回憶聯(lián)想的過程。
競爭型神經(jīng)網(wǎng)絡(luò)的缺點和不足之處在于它僅以輸出層中的單個神經(jīng)元代表某一類模式,所以一旦輸出層中的某個輸出神經(jīng)元損壞,則導致該神經(jīng)元所代表的該模式信息全部丟失。
3.霍普菲爾網(wǎng)絡(luò)(Hopfield network,HN)。它是一個由非線性元件構(gòu)成的全連接型單層反饋系統(tǒng)。網(wǎng)絡(luò)中的每一個神經(jīng)元都將自己的輸出通過連接權(quán)傳送給所有其它神經(jīng)元,同時又都接收所有其它神經(jīng)元傳遞過來的信息,即網(wǎng)絡(luò)中的神經(jīng)元t時刻的輸出狀態(tài)實際上間接地與自己的t-1時刻的輸出狀態(tài)有關(guān)。所以,霍普菲爾神經(jīng)網(wǎng)絡(luò)是一個反饋型的網(wǎng)絡(luò),狀態(tài)變化可以用差分方程來表征。反饋型網(wǎng)絡(luò)的一個重要特點就是它具有穩(wěn)定狀態(tài)。當網(wǎng)絡(luò)達到穩(wěn)定狀態(tài)的時候,也就是它的能量函數(shù)達到最小的時候。這里的能量函數(shù)不是物理意義上的能量函數(shù),而是在表達形式上與物理意義上的能量概念一致,表征網(wǎng)絡(luò)狀態(tài)的變化趨勢,并可以依據(jù)霍普菲爾工作運行規(guī)則不斷進行狀態(tài)變化,最終能夠達到的某個極小值的目標函數(shù)。網(wǎng)絡(luò)收斂就是指能量函數(shù)達到極小值。如果把一個最優(yōu)化問題的目標函數(shù)轉(zhuǎn)換成網(wǎng)絡(luò)的能量函數(shù),把問題的變量對應于網(wǎng)絡(luò)的狀態(tài),那么霍普菲爾神經(jīng)網(wǎng)絡(luò)就能夠用于解決優(yōu)化組合問題。
霍普菲爾神經(jīng)網(wǎng)絡(luò)的能量函數(shù)是朝著梯度減小的方向變化,但它仍然存在一個問題,那就是一旦能量函數(shù)陷入到局部極小值,它將不能自動跳出局部極小點,到達全局最小點,因而無法求得網(wǎng)絡(luò)的整體最優(yōu)解
4. BP(back propagation)神經(jīng)網(wǎng)絡(luò)。它有一種按照誤差逆向傳播訓練的算法、以此增強網(wǎng)絡(luò)的分類和識別能力、解決非線性問題而采用多層前饋網(wǎng)絡(luò),即在輸入層和輸出層之間加上隱層,構(gòu)成多層前饋感知器網(wǎng)絡(luò),是一種對非線性可微分函數(shù)進行權(quán)值訓練的多層網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)算法就是以網(wǎng)絡(luò)誤差平方為目標函數(shù)、采用梯度下降法來計算目標函數(shù)的最小值。
BP神經(jīng)網(wǎng)絡(luò)是目前應用最廣泛的神經(jīng)網(wǎng)絡(luò),這里將對其算法進行一些進一步的介紹。
BP神經(jīng)網(wǎng)絡(luò)算法是一種有監(jiān)督式的學習算法,由輸入層、中間層、輸出層組成的多階層神經(jīng)網(wǎng)絡(luò),中間層可擴展為多層。相鄰層之間各神經(jīng)元進行全連接,而每層各神經(jīng)元之間無連接。網(wǎng)絡(luò)按有教師示教的方式進行學習,當一對學習模式提供給網(wǎng)絡(luò)后,各神經(jīng)元獲得網(wǎng)絡(luò)的輸入響應產(chǎn)生連接權(quán)值,然后按減小希望輸出與實際輸出誤差的方向,從輸出層經(jīng)各中間層逐層修正各連接權(quán),使用
反向傳播算法對網(wǎng)絡(luò)的
權(quán)值和偏差進行反復的調(diào)整訓練,使輸出的向量與期望向量盡可能的接近。此過程反復交替進行,直至網(wǎng)絡(luò)的全局誤差趨向給定的極小值,即完成學習的過程。當網(wǎng)絡(luò)輸出層的
誤差平方和小于指定的誤差時訓練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。粗略的計算步驟如下:
(1)初始化,隨機給定各連接加權(quán)值[w
ij],[v
jt]及
閾值 i,r
t;
(2)根據(jù)給定的輸入輸出模式,經(jīng)計算隱層、輸出層各單元的輸出結(jié)果為:
b
j=f(?w
ija
i-
j),?c
t=f(?v
jtbj-r
t);
式中b
j為隱層第j個神經(jīng)元的實際輸出;c
t為輸出層第t個神經(jīng)元的實際輸出;w
ij為輸入層至隱層的連接權(quán);v
jt為隱層至輸出層的連接權(quán);
(3)選取下一個輸入模式,返回第2步反復訓練,直到網(wǎng)絡(luò)的輸出誤差達到要求時結(jié)束訓練。
傳統(tǒng)的BP算法,實質(zhì)上是把一組樣本輸入/輸出問題轉(zhuǎn)化為一個非線性優(yōu)化問題,并通過
梯度下降算法,利用迭代運算求解權(quán)值問題的一種學習方法,但其收斂速度慢且容易陷入局部極小,可用
高斯消元法進行改進。欲了解更詳細的算法,可參考其他有關(guān)文獻。
BP神經(jīng)網(wǎng)絡(luò)最主要的優(yōu)點是具有極強的非線性映射能力。理論上,對于一個三層和三層以上的BP網(wǎng)絡(luò),只要隱層神經(jīng)元數(shù)目足夠多,該網(wǎng)絡(luò)就能以任意精度逼近一個非線性函數(shù)。其次,BP神經(jīng)網(wǎng)絡(luò)具有對外界刺激和輸入信息進行聯(lián)想記憶的能力。這是因為它采用了分布并行的信息處理方式,對信息的提取必須采用聯(lián)想的方式,才能將相關(guān)神經(jīng)元全部調(diào)動起來。這種能力使其在圖像復原、語言處理、模式識別等方面具有重要應用。再次,BP神經(jīng)網(wǎng)絡(luò)對外界輸入樣本有很強的識別與分類能力。由于它具有強大的非線性處理能力,因此可以較好地進行非線性分類,解決了神經(jīng)網(wǎng)絡(luò)發(fā)展史上的非線性分類難題,使其具有優(yōu)化計算的能力。BP神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個非線性優(yōu)化問題,它可以在已知的約束條件下,尋找一組參數(shù)組合,使該組合確定的目標函數(shù)達到最小。不過,其優(yōu)化計算存在局部極小問題,必須通過改進才能進一步完善。
多層神經(jīng)網(wǎng)絡(luò)可以應用于線性系統(tǒng)和非線性系統(tǒng)中,對于任意函數(shù)模擬逼近。當然,感知器和線性神經(jīng)網(wǎng)絡(luò)能夠解決這類網(wǎng)絡(luò)問題。但是,雖然理論上是可行的,但實際上BP網(wǎng)絡(luò)并不一定總能有解。
對于非線性系統(tǒng),選擇合適的學習率是一個重要問題。在線性網(wǎng)絡(luò)中,學習率過大會導致訓練過程不穩(wěn)定;相反,學習率過小又會造成訓練時間過長。和線性網(wǎng)絡(luò)不同,對于非線性多層網(wǎng)絡(luò)很難選擇很好的學習率。
非線性網(wǎng)絡(luò)的誤差面比線性網(wǎng)絡(luò)的誤差面復雜得多,問題在于多層網(wǎng)絡(luò)中非線性傳遞函數(shù)有多個局部最優(yōu)解。尋優(yōu)的過程與初始點的選擇關(guān)系很大,初始點如果更靠近局部最優(yōu)點,而不是全局最優(yōu)點,就不會得到正確的結(jié)果,這也是多層網(wǎng)絡(luò)無法得到最優(yōu)解的一個原因。為了解決這個問題,在實際訓練過程中,應重復選取多個初始點進行訓練,以保證訓練結(jié)果的全局最優(yōu)性。網(wǎng)絡(luò)隱層神經(jīng)元的數(shù)目也對網(wǎng)絡(luò)有一定的影響。神經(jīng)元數(shù)目太少會造成網(wǎng)絡(luò)的不適性,而神經(jīng)元數(shù)目太多又會引起網(wǎng)絡(luò)的過適性。
BP神經(jīng)網(wǎng)絡(luò)無論在網(wǎng)絡(luò)理論還是在性能方面都已比較成熟,突出優(yōu)點就是具有很強的非線性映射能力和柔性的網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)的中間層數(shù)、各層的神經(jīng)元個數(shù)可根據(jù)具體情況任意設(shè)定,并且隨著結(jié)構(gòu)的差異其性能也有所不同。但BP神經(jīng)網(wǎng)絡(luò)也存在缺陷,主要表現(xiàn)在學習速度慢,容易陷入局部極小值,網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)的選擇還缺少相應的理論指導。
人工神經(jīng)網(wǎng)絡(luò)能較好的模擬人的形象思維,對信息具有很好的隱藏性,還具有容錯性強、穩(wěn)健性強和自學習性強等特點,是一個大規(guī)模自組織、自適應且具有高度并行協(xié)同處理能力的非線性動力系統(tǒng)。人工神經(jīng)網(wǎng)絡(luò)理論的應用已經(jīng)滲透到多個領(lǐng)域,諸如信息處理、自動化、工程應用、經(jīng)濟發(fā)展評價和輔助決策及醫(yī)學領(lǐng)域中的檢測數(shù)據(jù)分析和醫(yī)學專家系統(tǒng)等。
總起來看,神經(jīng)網(wǎng)絡(luò)模型與傳統(tǒng)計算模型不同。從計算方式上講,神經(jīng)元網(wǎng)絡(luò)計算把一些簡單的、大量的計算單元連接在一起,形成網(wǎng)絡(luò)計算,代替只用一個計算單元進行計算的傳統(tǒng)模式,也就是用分布式、并行計算代替集中式、串行計算;從模型構(gòu)建上講,傳統(tǒng)的計算方法采用從上到下的方式預先構(gòu)建數(shù)學模型,在神經(jīng)元網(wǎng)絡(luò)中,系統(tǒng)通過采集數(shù)據(jù)并進行學習的方法在計算過程中構(gòu)建數(shù)據(jù)模型,進而建立網(wǎng)絡(luò)結(jié)構(gòu);綜合講來,神經(jīng)元網(wǎng)絡(luò)適應性較強,并行計算處理速度較快,對經(jīng)驗知識要求較少。
一般來講,神經(jīng)網(wǎng)絡(luò)在規(guī)模比較小時效果不錯。規(guī)模可用三個指標來衡量:特征數(shù)量(通常在二三百個左右)、訓練樣本數(shù)(通常由幾千到幾萬)和分類數(shù)(通常有幾十個)。當問題規(guī)模變大時,比如特征數(shù)過千、訓練樣本數(shù)達到了幾萬甚至幾十萬,特別是分類數(shù)達到幾百、上千,這時的神經(jīng)元網(wǎng)絡(luò)計算可能會出現(xiàn)一些問題。
人工神經(jīng)網(wǎng)絡(luò)特有的非線性適應性信息處理能力,克服了傳統(tǒng)人工智能方法對于直覺,如模式、語音識別、非結(jié)構(gòu)化信息處理方面的缺陷,使之在神經(jīng)專家系統(tǒng)、模式識別、智能控制、組合優(yōu)化、預測等領(lǐng)域得到成功應用。人工神經(jīng)網(wǎng)絡(luò)與其它傳統(tǒng)方法相結(jié)合,將推動人工智能和信息處理技術(shù)不斷發(fā)展。近年來,人工神經(jīng)網(wǎng)絡(luò)正向模擬人類認知的道路上更加深入發(fā)展,與模糊系統(tǒng)、遺傳算法、進化機制等結(jié)合,形成計算智能,成為人工智能的一個重要的研究方向,將會在實際應用中得到進一步發(fā)展,將信息集合應用于人工神經(jīng)網(wǎng)絡(luò)研究,為人工神經(jīng)網(wǎng)絡(luò)的理論研究開辟了新的途徑。
神經(jīng)元網(wǎng)絡(luò)計算越來越受到人們的關(guān)注,為解決大型復雜度高的問題提供了一種相對來說比較簡單的有效算法,能較容易地解決具有上百個參數(shù)的分類和回歸計算中一些常見的問題。