閱讀633 返回首頁    go 阿裏雲 go 技術社區[雲棲]


人工神經網絡簡介

機器人2025本期導讀

第一版:

人工神經網絡簡介

第二版:

受變色甲殼蟲的啟發,MIT研發可用於3D打印的機器人皮膚

第三版:

智享家 | 六年蟄伏,隻為做一款好的機器人——大陸智源科技 高源

第四版:

數學專業經典讀物



作者:fengbingchun

原文:http://blog.csdn.net/fengbingchun/article/details/50274471


一、人工神經網絡的概念


人工神經網絡(Artificial Neural Network,ANN)簡稱神經網絡(NN),是基於生物學中神經網絡的基本原理,在理解和抽象了人腦結構和外界刺激響應機製後,以網絡拓撲知識為理論基礎,模擬人腦的神經係統對複雜信息的處理機製的一種數學模型。該模型以並行分布的處理能力、高容錯性、智能化和自學習等能力為特征,將信息的加工和存儲結合在一起,以其獨特的知識表示方式和智能化的自適應學習能力,引起各學科領域的關注。它實際上是一個有大量簡單元件相互連接而成的複雜網絡,具有高度的非線性,能夠進行複雜的邏輯操作和非線性關係實現的係統。


神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激活函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),神經網絡就是通過這種方式來模擬人類的記憶。網絡的輸出則取決於網絡的結構、網絡的連接方式、權重和激活函數。而網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。神經網絡的構築理念是受到生物的神經網絡運作啟發而產生的。人工神經網絡則是把對生物神經網絡的認識與數學統計模型相結合,借助數學統計工具來實現。另一方麵在人工智能學的人工感知領域,我們通過數學統計學的方法,使神經網絡能夠具備類似於人的決定能力和簡單的判斷能力,這種方法是對傳統邏輯學演算的進一步延伸。


         人工神經網絡中,神經元處理單元可表示不同的對象,例如特征、字母、概念,或者一些有意義的抽象模式。網絡中處理單元的類型分為三類:輸入單元、輸出單元和隱單元。輸入單元接受外部世界的信號與數據;輸出單元實現係統處理結果的輸出;隱單元是處在輸入和輸出單元之間,不能由係統外部觀察的單元。神經元間的連接權值反映了單元間的連接強度,信息的表示和處理體現在網絡處理單元的連接關係中。人工神經網絡是一種非程序化、適應性、大腦風格的信息處理,其本質是通過網絡的變換和動力學行為得到一種並行分布式的信息處理功能,並在不同程度和層次上模仿人腦神經係統的信息處理功能。


         神經網絡,是一種應用類似於大腦神經突觸連接結構進行信息處理的數學模型,它是在人類對自身大腦組織結合和思維機製的認識理解基礎之上模擬出來的,它是根植於神經科學、數學、思維科學、人工智能、統計學、物理學、計算機科學以及工程科學的一門技術。


二、人工神經網絡的發展


神經網絡的發展有悠久的曆史。其發展過程大致可以概括為如下4個階段。


1.      第一階段----啟蒙時期

(1)、M-P神經網絡模型:20世紀40年代,人們就開始了對神經網絡的研究。

(2)、Hebb規則:1949 年,心理學家赫布(Hebb)出版了《The Organization of Behavior》(行為組織學),他在書中提出了突觸連接強度可變的假設。

(3)、感知器模型:1957 年,羅森勃拉特(Rosenblatt)以M-P 模型為基礎,提出了感知器(Perceptron)模型。

(4)、ADALINE網絡模型: 1959年,美國著名工程師威德羅(B.Widrow)和霍夫(M.Hoff)等人提出了自適應線性元件(Adaptive linear element,簡稱Adaline)和Widrow-Hoff學習規則(又稱最小均方差算法或稱δ規則)的神經網絡訓練方法。


2.      第二階段----低潮時期

人工智能的創始人之一Minsky和Papert對以感知器為代表的網絡係統的功能及局限性從數學上做了深入研究,於1969年發表了轟動一時《Perceptrons》一書。

(1)、自組織神經網絡SOM模型:1972年,芬蘭的KohonenT.教授,提出了自組織神經網絡SOM(Self-Organizing feature map)。

(2)、自適應共振理論ART:1976年,美國Grossberg教授提出了著名的自適應共振理論ART(Adaptive Resonance Theory),其學習過程具有自組織和自穩定的特征。


3.      第三階段----複興時期

(1)、Hopfield模型:1982年,美國物理學家霍普菲爾德(Hopfield)提出了一種離散神經網絡,即離散Hopfield網絡,從而有力地推動了神經網絡的研究。在網絡中,它首次將李雅普諾夫(Lyapunov)函數引入其中,後來的研究學者也將Lyapunov函數稱為能量函數。證明了網絡的穩定性。

(2)、Boltzmann機模型:1983年,Kirkpatrick等人認識到模擬退火算法可用於NP完全組合優化問題的求解,這種模擬高溫物體退火過程來找尋全局最優解的方法最早由Metropli等人1953年提出的。

(3)、BP神經網絡模型:1986年,儒默哈特(D.E.Ru melhart)等人在多層神經網絡模型的基礎上,提出了多層神經網絡權值修正的反向傳播學習算法----BP算法(Error Back-Propagation)。

(4)、並行分布處理理論:1986年,由Rumelhart和McCkekkand主編的《Parallel Distributed Processing:Exploration in the Microstructures of Cognition》,該書中,他們建立了並行分布處理理論。

(5)、細胞神經網絡模型:1988年,Chua和Yang提出了細胞神經網絡(CNN)模型,它是一個細胞自動機特性的大規模非線性計算機仿真係統。

(6)、Darwinism模型:Edelman提出的Darwinism模型在90年代初產生了很大的影響,他建立了一種神經網絡係統理論。

(7)、1988年,Linsker對感知機網絡提出了新的自組織理論,並在Shanon信息論的基礎上形成了最大互信息理論,從而點燃了基於NN的信息應用理論的光芒。

(8)、1988年,Broomhead和Lowe用徑向基函數(Radialbasis function, RBF)提出分層網絡的設計方法,從而將NN的設計與數值分析和線性適應濾波相掛鉤。

(9)、1991年,Haken把協同引入神經網絡,在他的理論框架中,他認為,認知過程是自發的,並斷言模式識別過程即是模式形成過程。

(10)、1994年,廖曉昕關於細胞神經網絡的數學理論與基礎的提出,帶來了這個領域新的進展。通過拓廣神經網絡的激活函數類,給出了更一般的時滯細胞神經網絡(DCNN)、Hopfield神經網絡(HNN)、雙向聯想記憶網絡(BAM)模型。

(11)、90年代初,Vapnik等提出了支持向量機(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)維數的概念。

經過多年的發展,已有上百種的神經網絡模型被提出。


4.      第四階段----高潮時期[注:自己分的,不準確 ^_^ ]

深度學習(Deep Learning,DL)由Hinton等人於2006年提出,是機器學習(Machine Learning, ML)的一個新領域。深度學習本質上是構建含有多隱層的機器學習架構模型,通過大規模數據進行訓練,得到大量更具代表性的特征信息。深度學習算法打破了傳統神經網絡對層數的限製,可根據設計者需要選擇網絡層數。

關於深度學習的文章可以參考:http://blog.csdn.net/fengbingchun/article/details/50087005


三、人工神經網絡的特點


神經網絡是由存儲在網絡內部的大量神經元通過節點連接權組成的一種信息響應網狀拓撲結構,它采用了並行分布式的信號處理機製,因而具有較快的處理速度和較強的容錯能力。


1. 神經網絡模型用於模擬人腦神經元的活動過程,其中包括對信息的加工、處理、存儲、和搜索等過程。人工神經網絡具有如下基本特點:


  (1)、高度的並行性:人工神經網絡有許多相同的簡單處理單元並聯組合而成,雖然每一個神經元的功能簡單,但大量簡單神經元並行處理能力和效果,卻十分驚人。

(2)、高度的非線性全局作用:人工神經網絡每個神經元接受大量其他神經元的輸入,並通過並行網絡產生輸出,影響其他神經元,網絡之間的這種互相製約和互相影響,實現了從輸入狀態到輸出狀態空間的非線性映射,從全局的觀點來看,網絡整體性能不是網絡局部性能的疊加,而表現出某種集體性的行為。

(3)、聯想記憶功能和良好的容錯性:人工神經網絡通過自身的特有網絡結構將處理的數據信息存儲在神經元之間的權值中,具有聯想記憶功能,從單一的某個權值並看不出其所記憶的信息內容,因而是分布式的存儲形式,這就使得網絡有很好的容錯性,並可以進行特征提取、缺損模式複原、聚類分析等模式信息處理工作,又可以作模式聯想、分類、識別工作。它可以從不完善的數據和圖形中進行學習並做出決定。

(4)、良好的自適應、自學習功能:人工神經網絡通過學習訓練獲得網絡的權值與結構,呈現出很強的自學習能力和對環境的自適應能力。

(5)、知識的分布存儲:在神經網絡中,知識不是存儲在特定的存儲單元中,而是分布在整個係統中,要存儲多個知識就需要很多鏈接。

(6)、非凸性:一個係統的演化方向,在一定條件下將取決於某個特定的狀態函數。例如能量函數,它的極值相應於係統比較穩定的狀態。非凸性是指這種函數有多個極值,故係統具有多個較穩定的平衡態,這將導致係統演化的多樣性。


2. 人工神經網絡是一種旨在模仿人腦結構及其功能的信息處理係統。因此,它在功能上具有某些智能特點:


(1)、聯想記憶功能:由於神經網絡具有分布存儲信息和並行計算的性能,因此它具有對外界刺激和輸入信息進行聯想記憶的能力。

(2)、分類與識別功能神經網絡對外界輸入樣本有很強的識別與分類能力。對輸入樣本的分類實際上是在樣本空間找出符合分類要求的分割區域,每個區域內的樣本屬於一類。

(3)、優化計算功能:優化計算是指在已知的約束條件下,尋找一組參數組合,使該組合確定的目標函數達到最小。

(4)、非線性映射功能:在許多實際問題中,如過程控製﹑係統辨識﹑故障診斷﹑機器人控製等諸多領域,係統的輸入與輸出之間存在複雜的非線性關係,對於這類係統,往往難以用傳統的數理方程建立其數學模型。


四、 人工神經網絡的結構


1. 生物神經元的結構:神經細胞是構成神經係統的基本單元,稱之為生物神經元,簡稱神經元。神經元主要由三部分構成:(1)細胞體;(2)軸突;(3)樹突。如下圖所示:

b8d90756538689ff557aee06a0a5f39230303ca8



突觸是神經元之間相互連接的接口部分,即一個神經元的神經末梢與另一個神經元的樹突相接觸的交界麵,位於神經元的神經末梢尾端。突觸是軸突的終端。


大腦可視作為1000多億神經元組成的神經網絡。神經元的信息傳遞和處理是一種電化學活動.樹突由於電化學作用接受外界的刺激,通過胞體內的活動體現為軸突電位,當軸突電位達到一定的值則形成神經脈衝或動作電位;再通過軸突末梢傳遞給其它的神經元.


從控製論的觀點來看;這一過程可以看作一個多輸入單輸出非線性係統的動態過程。


神經元的功能特性:(1)時空整合功能;(2)神經元的動態極化性;(3)興奮與抑製狀態;(4)結構的可塑性;(5)脈衝與電位信號的轉換;(6)突觸延期和不應期;(7)學習、遺忘和疲勞。


2.  人工神經元結構:人工神經元的研究源於腦神經元學說,19世紀末,在生物、生理學領域,Waldeger等人創建了神經元學說。


人工神經網絡是由大量處理單元經廣泛互連而組成的人工網絡,用來模擬腦神經係統的結構和功能。而這些處理單元我們把它稱作人工神經元人工神經網絡可看成是以人工神經元為節點,用有向加權弧連接起來的有向圖。在此有向圖中,人工神經元就是對生物神經元的模擬,而有向弧則是軸突----突觸----樹突對的模擬。有向弧的權值表示相互連接的兩個人工神經元間相互作用的強弱。人工神經元結構如下圖所示:

2106ca265cc07fb0b0dff4d0c9b7d57699857601


神經網絡從兩個方麵模擬大腦:

(1)、神經網絡獲取的知識是從外界環境中學習得來的。

(2)、內部神經元的連接強度,即突觸權值,用於儲存獲取的知識。


神經網絡係統由能夠處理人類大腦不同部分之間信息傳遞的由大量神經元連接形成的拓撲結構組成,依賴於這些龐大的神經元數目和它們之間的聯係,人類的大腦能夠收到輸入的信息的刺激由分布式並行處理的神經元相互連接進行非線性映射處理,從而實現複雜的信息處理和推理任務。


對於某個處理單元(神經元)來說,假設來自其他處理單元(神經元)i的信息為Xi,它們與本處理單元的互相作用強度即連接權值為Wi, i=0,1,…,n-1,處理單元的內部閾值為θ。

那麼本處理單元(神經元)的輸入為:47a34a83f3755d882ee166318279610a7d5f5542,而處理單元的輸出為:596870b3966c9caaaa8e6275f958c00df5c3bbab


式中,xi為第i個元素的輸入,wi為第i個處理單元與本處理單元的互聯權重即神經元連接權值。f稱為激活函數或作用函數,它決定節點(神經元)的輸出。θ表示隱含層神經節點的閾值。


在人工神經網絡設計及應用研究中,通常需要考慮三個方麵的內容,即神經元激活函數、神經元之間的連接形式和網絡的學習(訓練)。


3. 神經網絡的學習形式:在構造神經網絡時,其神經元的傳遞函數和轉換函數就已經確定了。

4. 神經網絡的工作過程:神經網絡的工作過程包括離線學習和在線判斷兩部分。學習過程中各神經元進行規則學習,權參數調整,進行非線性映射關係擬合以達到訓練精度;判斷階段則是訓練好的穩定的網絡讀取輸入信息通過計算得到輸出結果。

5. 神經網絡的學習規則:神經網絡的學習規則是修正權值的一種算法,分為聯想式和非聯想式學習,有監督學習和無監督學習等。下麵介紹幾個常用的學習規則。

(1)、誤差修正型規則:是一種有監督的學習方法,根據實際輸出和期望輸出的誤差進行網絡連接權值的修正,最終網絡誤差小於目標函數達到預期結果。

誤差修正法,權值的調整與網絡的輸出誤差有關, 它包括δ學習規則、Widrow-Hoff學習規則、感知器學習規則和誤差反向傳播的BP(Back Propagation)學習規則等。

(2)、競爭型規則:無監督學習過程,網絡僅根據提供的一些學習樣本進行自組織學習,沒有期望輸出,通過神經元相互競爭對外界刺激模式響應的權利進行網絡權值的調整來適應輸入的樣本數據。

對於無監督學習的情況,事先不給定標準樣本,直接將網絡置於“環境”之中,學習(訓練)階段與應用(工作)階段成為一體。

(3)、Hebb型規則:利用神經元之間的活化值(激活值)來反映它們之間聯接性的變化,即根據相互連接的神經元之間的活化值(激活值)來修正其權值。

在Hebb學習規則中,學習信號簡單地等於神經元的輸出。Hebb學習規則代表一種純前饋﹑無導師學習。該學習規則至今在各種神經網絡模型中起著重要作用。典型的應用如利用Hebb規則訓練線性聯想器的權矩陣。

(4)、隨機型規則:在學習過程中結合了隨機、概率論和能量函數的思想,根據目標函數(即網絡輸出均方差)的變化調整網絡的參數,最終使網絡目標函數達到收斂值。

6. 激活函數:在神經網絡中,網絡解決問題的能力與效率除了與網絡結構有關外,在很大程度上取決於網絡所采用的激活函數。激活函數的選擇對網絡的收斂速度有較大的影響,針對不同的實際問題,激活函數的選擇也應不同。

神經元在輸入信號作用下產生輸出信號的規律由神經元功能函數f(Activation Function)給出,也稱激活函數,或稱轉移函數,這是神經元模型的外特性。它包含了從輸入信號到淨輸入、再到激活值、最終產生輸出信號的過程。綜合了淨輸入、f函數的作用。f函數形式多樣,利用它們的不同特性可以構成功能各異的神經網絡。

常用的激活函數有以下幾種形式:

(1)、閾值函數:該函數通常也稱為階躍函數。當激活函數采用階躍函數時,人工神經元模型即為MP模型。此時神經元的輸出取1或0,反應了神經元的興奮或抑製。

(2)、線性函數:該函數可以在輸出結果為任意值時作為輸出神經元的激活函數,但是當網絡複雜時,線性激活函數大大降低網絡的收斂性,故一般較少采用。

(3)、對數S形函數:對數S形函數的輸出介於0~1之間,常被要求為輸出在0~1範圍的信號選用。它是神經元中使用最為廣泛的激活函數。

(4)、雙曲正切S形函數:雙曲正切S形函數類似於被平滑的階躍函數,形狀與對數S形函數相同,以原點對稱,其輸出介於-1~1之間,常常被要求為輸出在-1~1範圍的信號選用。

7. 神經元之間的連接形式:神經網絡是一個複雜的互連係統,單元之間的互連模式將對網絡的性質和功能產生重要影響。互連模式種類繁多。

(1)、前向網絡(前饋網絡):網絡可以分為若幹“層”,各層按信號傳輸先後順序依次排列,第i層的神經元隻接受第(i-1)層神經元給出的信號,各神經元之間沒有反饋。前饋型網絡可用一有向無環路圖表示,如下圖所示:

cb954db9ec39ddf9b66a0d6c14602ab2b1820d6f


可以看出,輸入節點並無計算功能,隻是為了表征輸入矢量各元素值。各層節點表示具有計算功能的神經元,稱為計算單元。每個計算單元可以有任意個輸入,但隻有一個輸出,它可送到多個節點作輸入。稱輸入節點層為第零層。計算單元的各節點層從下至上依次稱為第1至第N層,由此構成N層前向網絡。(也有把輸入節點層稱為第1層,於是對N層網絡將變為N+1個節點層序號。)

第一節點層與輸出節點統稱為“可見層”,而其他中間層則稱為隱含層(hidden layer),這些神經元稱為隱節點。BP網絡就是典型的前向網絡。

(2)、反饋網絡:典型的反饋型神經網絡如下圖a所示:

834397fd262ebb709e53888a6c100d51d343dc54


每個節點都表示一個計算單元,同時接受外加輸入和其它各節點的反饋輸入,每個節點也都直接向外部輸出。Hopfield網絡即屬此種類型。在某些反饋網絡中,各神經元除接受外加輸入與其它各節點反饋輸入之外,還包括自身反饋。有時,反饋型神經網絡也可表示為一張完全的無向圖,如上圖b。圖中,每一個連接都是雙向的。這裏,第i個神經元對於第j個神經元的反饋與第j至i神經元反饋之突觸權重相等,也即wij=wji

以上介紹了兩種最基本的人工神經網絡結構,實際上,人工神經網絡還有許多種連接形式,例如,從輸出層到輸入層有反饋的前向網絡,同層內或異層間有相互反饋的多層網絡等等。


五、人工神經網絡模型


1.        人工神經網絡的分類:

按性能分:連續型和離散型網絡,或確定型和隨機型網絡。

按拓撲結構分:前向網絡和反饋網絡。

前向網絡有自適應線性神經網絡(AdaptiveLinear,簡稱Adaline)、單層感知器、多層感知器、BP等。

前向網絡,網絡中各個神經元接受前一級的輸入,並輸出到下一級,網絡中沒有反饋,可以用一個有向無環路圖表示。這種網絡實現信號從輸入空間到輸出空間的變換,它的信息處理能力來自於簡單非線性函數的多次複合。網絡結構簡單,易於實現。反傳網絡是一種典型的前向網絡。

反饋網絡有Hopfield、Hamming、BAM等。

反饋網絡,網絡內神經元間有反饋,可以用一個無向的完備圖表示。這種神經網絡的信息處理是狀態的變換,可以用動力學係統理論處理。係統的穩定性與聯想記憶功能有密切關係。Hopfield網絡、波耳茲曼機均屬於這種類型。

按學習方法分:有教師(監督)的學習網絡和無教師(監督)的學習網絡。

按連接突觸性質分:一階線性關聯網絡和高階非線性關聯網絡。

2.        生物神經元模型:人腦是自然界所造就的高級動物,人的思維是由人腦來完成的,而思維則是人類智能的集中體現。人腦的皮層中包含100億個神經元、60萬億個神經突觸,以及他們的連接體。

3.        人工神經網絡模型:人工神經網絡,使通過模仿生物神經網絡的行為特征,進行分布式並行信息處理的數學模型。這種網絡依靠係統的複雜度,通過調整內部大量節點之間相互連接的關係,從而達到信息處理的目的。

4.        感知器模型:

感知器模型是美國學者羅森勃拉特(Rosenblatt)為研究大腦的存儲、學習和認知過程而提出的一類具有自學習能力的神經網絡模型,它把神經網絡的研究從純理論探討引向了從工程上的實現。

Rosenblatt提出的感知器模型是一個隻有單層計算單元的前向神經網絡,稱為單層感知器。

單層感知器模型的學習算法,算法思想:首先把連接權和閾值初始化為較小的非零隨機數,然後把有n個連接權值的輸入送入網絡,經加權運算處理,得到的輸出如果與所期望的輸出有較大的差別,就對連接權值參數按照某種算法進行自動調整,經過多次反複,直到所得到的輸出與所期望的輸出間的差別滿足要求為止。

線性不可分問題:單層感知器不能表達的問題被稱為線性不可分問題。 1969年,明斯基證明了“異或”問題是線性不可分問題。

線性不可分函數的數量隨著輸入變量個數的增加而快速增加,甚至遠遠超過了線性可分函數的個數。也就是說,單層感知器不能表達的問題的數量遠遠超過了它所能表達的問題的數量。

多層感知器:在單層感知器的輸入部分和輸出層之間加入一層或多層處理單元,就構成了二層或多層感知器。

在多層感知器模型中,隻允許某一層的連接權值可調,這是因為無法知道網絡隱層的神經元的理想輸出,因而難以給出一個有效的多層感知器學習算法。

多層感知器克服了單層感知器的許多缺點,原來一些單層感知器無法解決的問題,在多層感知器中就可以解決。例如,應用二層感知器就可以解決異或邏輯運算問題

5.        反向傳播模型:

反向傳播模型也稱B-P模型,是一種用於前向多層的反向傳播學習算法。之所以稱它是一種學習方法,是因為用它可以對組成前向多層網絡的各人工神經元之間的連接權值進行不斷的修改,從而使該前向多層網絡能夠將輸入它的信息變換成所期望的輸出信息。之所以將其稱作為反向學習算法,是因為在修改各人工神經元的連接權值時,所依據的是該網絡的實際輸出與其期望的輸出之差,將這一差值反向一層一層的向回傳播,來決定連接權值的修改。

B-P算法的網絡結構是一個前向多層網絡。它是在1986年,由Rumelhant和Mcllelland提出的。是一種多層網絡的“逆推”學習算法。其基本思想是,學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入,經隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望輸出不符,則轉向誤差的反向傳播階段。誤差的反向傳播是將輸出誤差以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。這種信號正向傳播與誤差反向傳播的各層權值調整過程,是周而複始地進行。權值不斷調整過程,也就是網絡的學習訓練過程。此過程一直進行到網絡輸出的誤差減少到可以接受的程度,或進行到預先設定的學習次數為止。

反向傳播網絡的學習算法:B-P算法的學習目的是對網絡的連接權值進行調整,使得調整後的網絡對任一輸入都能得到所期望的輸出。

學習過程由正向傳播和反向傳播組成。

正向傳播用於對前向網絡進行計算,即對某一輸入信息,經過網絡計算後求出它的輸出結果。

反向傳播用於逐層傳遞誤差,修改神經元間的連接權值,以使網絡對輸入信息經過計算後所得到的輸出能達到期望的誤差要求。

B-P算法的學習過程如下:

(1)、選擇一組訓練樣例,每一個樣例由輸入信息和期望的輸出結果兩部分組成。

(2)、從訓練樣例集中取一樣例,把輸入信息輸入到網絡中。

(3)、分別計算經神經元處理後的各層節點的輸出。

(4)、計算網絡的實際輸出和期望輸出的誤差。

(5)、從輸出層反向計算到第一個隱層,並按照某種能使誤差向減小方向發展的原則,調整網絡中各神經元的連接權值。

(6)、對訓練樣例集中的每一個樣例重複(3)-(5)的步驟,直到對整個訓練樣例集的誤差達到要求時為止。

在以上的學習過程中,第(5)步是最重要的,如何確定一種調整連接權值的原則,使誤差沿著減小的方向發展,是B-P學習算法必須解決的問題。

B-P算法的優缺點:

優點:理論基礎牢固,推導過程嚴謹,物理概念清晰,通用性好等。所以,它是目前用來訓練前向多層網絡較好的算法。

缺點:(1)、該學習算法的收斂速度慢;(2)、網絡中隱節點個數的選取尚無理論上的指導;(3)、從數學角度看,B-P算法是一種梯度最速下降法,這就可能出現局部極小的問題。當出現局部極小時,從表麵上看,誤差符合要求,但這時所得到的解並不一定是問題的真正解。所以B-P算法是不完備的。

BP算法局限性:

(1)、在誤差曲麵上有些區域平坦,此時誤差對權值的變化不敏感,誤差下降緩慢,調整時間長,影響收斂速度。這時誤差的梯度變化很小,即使權值的調整量很大,誤差仍然下降很慢。造成這種情況的原因與各節點的淨輸入過大有關。

(2)、存在多個極小點。從兩維權空間的誤差曲麵可以看出,其上存在許多凸凹不平,其低凹部分就是誤差函數的極小點。可以想象多維權空間的誤差曲麵,會更加複雜,存在更多個局部極小點,它們的特點都是誤差梯度為0。BP算法權值調整依據是誤差梯度下降,當梯度為0時,BP算法無法辨別極小點性質,因此訓練常陷入某個局部極小點而不能自拔,使訓練難以收斂於給定誤差。

BP算法改進:誤差曲麵的平坦區將使誤差下降緩慢,調整時間加長,迭代次數增多,影響收斂速度;而誤差曲麵存在的多個極小點會使網絡訓練陷入局部極小,從而使網絡訓練無法收斂於給定誤差。這兩個問題是BP網絡標準算法的固有缺陷。

針對此,國內外不少學者提出了許多改進算法,幾種典型的改進算法:

(1)、增加動量項:標準BP算法在調整權值時,隻按t時刻誤差的梯度下降方向調整,而沒有考慮t時刻以前的梯度方向,從而常使訓練過程發生振蕩,收斂緩慢。為了提高訓練速度,可以在權值調整公式中加一動量項。大多數BP算法中都增加了動量項,以至於有動量項的BP算法成為一種新的標準算法。

(2)、可變學習速度的反向傳播算法(variable learning rate back propagation,VLBP):多層網絡的誤差曲麵不是二次函數。曲麵的形狀隨參數空間區域的不同而不同。可以在學習過程中通過調整學習速度來提高收斂速度。技巧是決定何時改變學習速度和怎樣改變學習速度。可變學習速度的VLBP算法有許多不同的方法來改變學習速度。

(3)、學習速率的自適應調節:可變學習速度VLBP算法,需要設置多個參數,算法的性能對這些參數的改變往往十分敏感,另外,處理起來也較麻煩。此處給出一簡潔的學習速率的自適應調節算法。學習率的調整隻與網絡總誤差有關。學習速率η也稱步長,在標準BP中是一常數,但在實際計算中,很難給定出一個從始至終都很合適的最佳學習速率。從誤差曲麵可以看出,在平坦區內η太小會使訓練次數增加,這時候希望η值大一些;而在誤差變化劇烈的區域,η太大會因調整過量而跨過較窄的“凹坑”處,使訓練出現振蕩,反而使迭代次數增加。為了加速收斂過程,最好是能自適應調整學習率η,使其該大則大,該小則小。比如可以根據網絡總誤差來調整.

(4)、引入陡度因子----防止飽和:誤差曲麵上存在著平坦區。其權值調整緩慢的原因在於S轉移函數具有飽和特性造成的。如果在調整進入平坦區後,設法壓縮神經元的淨輸入,使其輸出退出轉移函數的飽和區,就可改變誤差函數的形狀,從而使調整脫離平坦區。實現這一思路的具體作法是在轉移函數中引進一個陡度因子。

BP神經網絡設計的一般原則:關於它的開發設計,大多數是根據使用者的經驗來設計網絡結構﹑功能函數﹑學習算法﹑樣本等。

[1]、BP網絡參數設計

(1)、BP網絡輸入與輸出參數的確定

A、輸入量的選擇:

a、輸入量必須選擇那些對輸出影響大且能夠檢測或提取的變量;

b、各輸入量之間互不相關或相關性很小。從輸入、輸出量性質分類來看,可以分為兩類:數值變量和語言變量。數值變量又分為連續變量或離散變量。如常見的溫度,壓力,電壓,電流等就是連續變量;語言變量是用自然語言表示的概念。如紅,綠,藍;男,女;大,中,小,開,關,亮,暗等。一般來說,語言變量在網絡處理時,需要轉化為離散變量。

c、輸入量的表示與提取:多數情況下,直接送給神經網絡的輸入量無法直接得到,常常需要用信號處理與特征提取技術從原始數據中提取能反映其特征的若幹參數作為網絡輸入。

B、輸出量選擇與表示:

a、輸出量一般代表係統要實現的功能目標,如分類問題的類別歸屬等;

b、輸出量表示可以是數值也可是語言變量;

(2)、訓練樣本集的設計

網絡的性能與訓練用的樣本密切相關,設計一個好的訓練樣本集既要注意樣本規模,又要注意樣本質量。

A、樣本數目的確定:一般來說樣本數n越多,訓練結果越能正確反映其內在規律,但樣本的獲取往往有一定困難,另一方麵,當樣本數n達到一定數量後,網絡的精度也很難提高。

選擇原則:網絡規模越大,網絡映射關係越複雜,樣本數越多。一般說來,訓練樣本數是網絡連接權總數的5~10倍,但許多情況難以達到這樣的要求。

B、樣本的選擇和組織:

a、樣本要有代表性,注意樣本類別的均衡;

b、樣本的組織要注意將不同類別的樣本交叉輸入;

c、網絡的訓練測試,測試標準是看網絡是否有好的泛化能力。測試做法:不用樣本訓練集中數據測試。一般是將收集到的可用樣本隨機地分成兩部分,一部分為訓練集,另一部分為測試集。若訓練樣本誤差很小,而對測試集的樣本誤差很大,泛化能力差。

(3)、初始權值的設計

網絡權值的初始化決定了網絡的訓練從誤差曲麵的哪一點開始,因此初始化方法對縮短網絡的訓練時間至關重要。

神經元的作用函數是關於坐標點對稱的,若每個節點的淨輸入均在零點附近,則輸出均出在作用函數的中點,這個位置不僅遠離作用函數的飽和區,而且是其變化最靈敏的區域,必使網絡學習加快。從神經網絡淨輸入表達式來看,為了使各節點的初始淨輸入在零點附近,如下兩種方法被常常使用:

A、取足夠小的初始權值;

B、使初始值為+1和-1的權值數相等。

[2]、BP網絡結構參數設計

隱層結構設計

(1)、隱層數設計:理論證明,具有單隱層的前饋網絡可以映射所有連續函數,隻有當學習不連續函數時才需要兩個隱層,故一般情況隱層最多需要兩層。一般方法是先設一個隱層,當一個隱層的節點數很多,仍不能改善網絡性能時,再增加一個隱層。最常用的BP神經網絡結構是3層結構,即輸入層﹑輸出層和1個隱層。

(2)、隱層節點數設計:隱層節點數目對神經網絡的性能有一定的影響。隱層節點數過少時,學習的容量有限,不足以存儲訓練樣本中蘊涵的所有規律;隱層節點過多不僅會增加網絡訓練時間,而且會將樣本中非規律性的內容如幹擾和噪聲存儲進去。反而降低泛化能力。一般方法是湊試法:

6.        Hopfield模型:

Hopfield模型是霍普菲爾德分別於1982年及1984提出的兩個神經網絡模型。1982年提出的是離散型,1984年提出的是連續型,但它們都是反饋網絡結構。

Hopfield網絡離散模型有兩種工作模式:

(1)、串行方式,是指在任一時刻t,隻有一個神經元i發生狀態變化,而其餘的神經元保持狀態不變。

(2)、並行方式,是指在任一時刻t,都有部分或全體神經元同時改變狀態。 

 有關離散的Hopfield網絡的穩定性問題,已於1983年由Cohen和Grossberg給於了證明。而Hopfield等人又進一步證明,隻要連接權值構成的矩陣是非負對角元的對稱矩陣,則該網絡就具有串行穩定性。

Hopfield遞歸網絡是美國加洲理工學院物理學家J.J.Hopfield教授於1983年提出的。Hopfield網絡按網絡輸入和輸出的數字形式不同可分為離散型和連續型兩種網絡,即:離散型Hopfield神經網絡----DHNN(Discrete Hopfield Neural Network);連續型Hopfield神經網絡----CHNN(ContinuesHopfield Neural Network)。

         DHNN結構:它是一種單層全反饋網絡,共有n個神經元。每個神經元都通過連接權接收所有其它神經元輸出反饋來的信息,其目的是為了讓任一神經元的輸出能接受所有神經元輸出的控製,從而使各神經元能相互製約。

DHNN的設計原則:吸引子的分布是由網絡的權值(包括閥值)決定的,設計吸引子的核心就是如何設計一組合適的權值。為了使所設計的權值滿足要求,權值矩陣應符合以下要求:(1)、為保證異步方式工作時網絡收斂,W應為對稱陣;(2)、為保證同步方式工作時網絡收斂,W應為非負定對稱陣;(3)、保證給定的樣本是網絡的吸引子,並且要有一定的吸引域。

具體設計時,可以采用不同的方法:(1)、聯立方程法;(2)、外積和法。

         CHNN:在連續型Hopfield神經網絡中,所有神經元都隨時間t並行更新,網絡狀態隨時間連續改變。

Hopfield網絡的主要功能

Hopfield神經網絡的提出就是與其實際應用密切相關。其主要功能在以下兩個方麵。

(1)、聯想記憶:輸入--輸出模式的各元素之間,並不存在一對一的映射關係,輸入--輸出模式的維數也不要求相同;聯想記憶時,隻給出輸入模式部分信息,就能聯想出完整的輸出模式。即具有容錯性。

(2)、CHNN的優化計算功能.

應用Hopfield 神經網絡來解決優化計算問題的一般步驟為:

A、分析問題:網絡輸出與問題的解相對應。

B、構造網絡能量函數:構造合適的網絡能量函數,使其最小值對應問題最佳解。

C、設計網絡結構:將能量函數與標準式相比較,定出權矩陣與偏置電流。

D、由網絡結構建立網絡的電子線路並運行,穩態--優化解或計算機模擬運行。

7.        BAM模型

神經網絡的聯想記憶功能可以分為兩種,一是自聯想記憶,另一種是異聯想記憶。Hopfield神經網絡就屬於自聯想記憶。由Kosko B.1988 年提出的雙向聯想記憶神經網絡BAM(Bidirectional Associative Memory)屬於異聯想記憶。BAM有離散型﹑連續型和自適應型等多種形式。

8.        CMAC模型

BP神經網絡﹑Hopfield神經網絡和BAM雙向聯想記憶神經網絡分別屬於前饋和反饋神經網絡,這主要是從網絡的結構來劃分的。如果從神經網絡的函數逼近功能這個角度來分,神經網絡可以分為全局逼近網絡和局部逼近網絡。當神經網絡的一個或多個可調參數(權值和閾值)在輸入空間的每一點對任何一個輸出都有影響,則稱該神經網絡為全局逼近網絡,多層前饋BP網絡是全局逼近網絡的典型例子。

CMAC 網絡有三個特點:

(1)、作為一種具有聯想功能的神經網絡,它的聯想具有局部推廣(或稱泛化)能力,因此相似的輸入將產生相似的輸出,遠離的輸入將產生獨立的輸出;

(2)、對於網絡的每一個輸出,隻有很少的神經元所對應的權值對其有影響,哪些神經元對輸出有影響則有輸入決定;

(3)、CMAC的每個神經元的輸入輸出是一種線性關係,但其總體上可看做一種表達非線性映射的表格係統。由於CMAC網絡的學習隻在線性映射部分,因此可采用簡單的δ算法,其收斂速度比BP算法快得多,且不存在局部極小問題。CMAC最初主要用來求解機械手的關節運動,其後進一步用於機械人控製、模式識別、信號處理以及自適應控製等領域。

9.        RBF模型

對局部逼近神經網絡,除CMAC神經網絡外,常用的還有徑向基函數RBF網絡和B樣條網絡等。徑向基函數(RBF,Radial Basis Function)神經網絡,是由J.Moody 和C.Darken於20世紀80年代末提出的一種神經網絡,徑向基函數方法在某種程度上利用了多維空間中傳統的嚴格插值法的研究成果。

         RBF網絡的常規學習算法,一般包括兩個不同的階段:

(1)、隱層徑向基函數的中心的確定階段。常見方法有隨機選取固定中心法;中心的自組織選擇法等。

(2)、徑向基函數權值學習調整階段。常見方法有中心的監督選擇法;正則化嚴格插值法等。

10.    SOM模型

芬蘭Helsink大學Kohonen T.教授提出一種自組織特征映射網絡SOM(Self-organizing feature Map),又稱Kohonen網絡。Kohonen認為,一個神經網絡接受外界輸入模式時,將會分為不同的對應區域,各區域對輸入模式有不同的響應特征,而這個過程是自動完成的。SOM網絡正是根據這一看法提出的,其特點與人腦的自組織特性相類似。

         自組織神經網絡結構

(1)、定義:自組織神經網絡是無導師學習網絡。它通過自動尋找樣本中的內在規律和本質屬性,自組織、自適應地改變網絡參數與結構。

(2)、結構:層次型結構,具有競爭層。典型結構:輸入層+競爭層。

輸入層:接受外界信息,將輸入模式向競爭層傳遞,起“觀察”作用。

競爭層:負責對輸入模式進行“分析比較,尋找規律,並歸類。

自組織神經網絡的原理

(1)、分類與輸入模式的相似性:分類是在類別知識等導師信號的指導下,將待識別的輸入模式分配到各自的模式類中,無導師指導的分類稱為聚類,聚類的目的是將相似的模式樣本劃歸一類,而將不相似的分離開來。

(2)、相似性測量:神經網絡的輸入模式向量的相似性測量可用向量之間的距離來衡量。常用的方法有歐氏距離法和餘弦法兩種。

(3)、競爭學習原理:競爭學習規則的生理學基礎是神經細胞的側抑製現象:當一個神經細胞興奮後,會對其周圍的神經細胞產生抑製作用。最強的抑製作用是競爭獲勝的“唯我獨興”,這種做法稱為“勝者為王”,(Winner-Take-All)。競爭學習規則就是從神經細胞的側抑製現象獲得的。它的學習步驟為:A、向量歸一化;B、尋找獲勝神經元;C、網絡輸出與權調整;D、重新歸一化處理。

         SOM網絡的拓撲結構:SOM網絡共有兩層。即:輸入層和輸出層。

(1)、輸入層:通過權向量將外界信息匯集到輸出層各神經元。輸入層的形式與BP網相同,節點數與樣本維數相同。

(2)、輸出層:輸出層也是競爭層。其神經元的排列有多種形式。分為一維線陣,二維平麵陣和三維柵格陣。最典型的結構是二維形式。它更具大腦皮層的形象。

輸出層的每個神經元同它周圍的其他神經元側向連接,排列成棋盤狀平麵;輸入層為單層神經元排列。

SOM權值調整域

SOM網采用的算法,稱為Kohonen算法,它是在勝者為王WTA(Winner-Take-All)學習規則基礎上加以改進的,主要區別是調整權向量與側抑製的方式不同:WTA:側抑製是“封殺”式的。隻有獲勝神經元可以調整其權值,其他神經元都無權調整。Kohonen算法:獲勝神經元對其鄰近神經元的影響是由近及遠,由興奮逐漸變為抑製。換句話說,不僅獲勝神經元要調整權值,它周圍神經元也要不同程度調整權向量。

SOM網絡運行原理

SOM網絡的運行分訓練和工作兩個階段。在訓練階段,網絡隨機輸入訓練集中的樣本,對某個特定的輸入模式,輸出層會有某個節點產生最大響應而獲勝,而在訓練開始階段,輸出層哪個位置的節點將對哪類輸入模式產生最大響應是不確定的。

11.    CPN模型

1987年美國學者RobertHecht —Nielson提出了對偶傳播神經網絡(Counter--propagation Networks,簡記為CPN)。CPN最早是用來實現樣本選擇匹配係統的。它能存儲二進製或模擬值的模式對,因此CPN網絡可以用作聯想存儲﹑模式分類﹑函數逼近和數據壓縮等用途。與BP網相比,CPN的訓練速度要快很多,所需的時間大約是BP網所需時間的1%。但是,它的應用麵卻因網絡的性能相對來說比較窄。

Kohonen提出的自組織映射由四部分組成,包括一個神經元陣列(用它構成CPN的Kohonen層),一種比較選擇機製,一個局部互聯,一個自適應過程。實際上,這一層將實現對輸入進行分類的功能。所以,該層可以執行無導師的學習,以完成對樣本集中所含的分類信息的提取。

Grossberg層主要用來實現類表示。它的訓練過程就是將輸入向量與相應的輸出向量對應起來。這些向量可以是二值的,也可以是連續的。一旦網絡完成了訓練,對一個給定的輸入就可以給出一個對應的輸出。網絡的推廣能力表明,當網絡遇到一個不太完整的、或者是不完全正確的輸入時,隻要該“噪音”是在有限的範圍內,CPN 都可以產生一個正確的輸出。這是因為Kohonen 層可以找到這個含有噪音的輸入應該屬於的分類,而對應的Grossberg層則可以給出該分類的表示。從整個網絡來看,就表現出一種泛化能力。這使得網絡在模式識別、模式完善、信號處理等方麵可以有較好的應用。另外,上述映射的逆映射如果存在的話,可以通過對此網的簡單擴展,來實現相應的逆變換。這被稱為全對傳網。

12.    ART模型

1976年,美國Boston大學CarpenterG.A.教授提出了自適應共振理論ART(Adaptive Resonance Theory)。隨後Carpenter G.A.又與他的學生GrossbergS.合作提出了ART神經網絡。

經過多年的研究和發展,ART 網絡已有幾種基本形式:

(1)、ART1型神經網絡:處理雙極性和二進製信號;

(2)、ART2型神經網絡:它是ART1型的擴展,用於處理連續型模擬信號;

(3)、ART綜合係統:將ART1和ART2綜合在一起,係統具有識別﹑補充和撤消等綜合功能。即所謂的3R(Recognition﹑Reinforcement﹑Recall)功能。

(4)、ART3型神經網絡:它是一種分級搜索模型,兼容前兩種結構的功能並將兩層神經網絡擴大為任意多層神經元網絡,由於ART3型在神經元的模型中納入了生物神經元的生物電-化學反應機製,因而它具備了很強的功能和擴展能力。

13.    量子神經網絡

量子神經網絡的概念出現於上個世紀90年代後期,一經提出後便引起了不同領域的科學家的關注,人們在這個嶄新的領域進行了不同方向的探索,提出了很多想法和初步的模型,充分體現了量子神經網絡研究的巨大潛力。主要研究方向可以概括為:

(1)、量子神經網絡采用神經網絡的連接思想來構造量子計算機,通過神經網絡模型來研究量子計算中的問題;

(2)、量子神經網絡在量子計算機或量子器件的基礎上構造神經網絡,充分利用量子計算超高速、超並行、指數級容量的特點,來改進神經網絡的結構和性能;

(3)、量子神經網絡作為一種混合的智能優化算法在傳統的計算機上的實現,通過引入量子理論中的思想對傳統神經網絡改進,利用量子理論中的概念、方法(如態疊加、“多宇宙”觀點等),建立新的網絡模型;改善傳統神經網絡的結構和性能;

(4)、基於腦科學、認知科學的研究。

 

以上整理的內容主要摘自:

1.      《人工神經網絡原理及應用》,2006,科學出版社

2.    《神經網絡郵件分類算法研究》,2011,碩論,電子科技大學

3.       《人工神經網絡原理、分類及應用》,2014,期刊,科技資訊

本文來源於"中國人工智能學會",原文發表時間" 2017-03-28 "

最後更新:2017-05-23 14:02:35

  上一篇:go  《Java特種兵》1.5 功底補充
  下一篇:go  Java IO: 流