人工神經網路

維基百科,自由的百科全書
前往: 導覽搜尋

人工神經網路(artificial neural network,縮寫ANN),簡稱神經網路(neural network,縮寫NN),是一種模仿生物神經網路的結構和功能的數學模型計算模型。神經網路由大量的人工神經元聯結進行計算。大多數情況下人工神經網路能在外界信息的基礎上改變內部結構,是一種自適應系統。現代神經網路是一種非線性統計性數據建模工具,常用來對輸入和輸出間複雜的關係進行建模,或用來探索數據的模式。

神經網路是一種運算模型[1],由大量的節點(或稱「神經元」,或「單元」)和之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重(weight),這相當於人工神經網路的記憶。網路的輸出則依網路的連接方式,權重值和激勵函數的不同而不同。而網路自身通常都是對自然界某種演算法或者函數的逼近,也可能是對一種邏輯策略的表達。

它的構築理念是受到生物(人或其他動物)神經網路功能的運作啟發而產生的。人工神經網路通常是通過一個基於數學統計學類型的學習方法(Learning Method)得以優化,所以人工神經網路也是數學統計學方法的一種實際應用,通過統計學的標準數學方法我們能夠得到大量的可以用函數來表達的局部結構空間,另一方面在人工智慧學的人工感知領域,我們通過數學統計學的應用可以來做人工感知方面的決定問題(也就是說通過統計學的方法,人工神經網路能夠類似人一樣具有簡單的決定能力和簡單的判斷能力),這種方法比起正式的邏輯學推理演算更具有優勢。

神經元[編輯]

神經元示意圖:

Ncell.png
  • a1~an為輸入向量的各個分量
  • w1~wn為神經元各個突觸的權值
  • b為偏置
  • f為傳遞函數,通常為非線性函數。一般有traingd(),tansig(),hardlim()。以下默認為hardlim()
  • t為神經元輸出

數學表示 t = f(\vec{W}\vec{A'}+b)

  • \vec{W}為權向量
  • \vec{A}為輸入向量,\vec{A'}\vec{A}的轉置
  • b為偏置
  • f為傳遞函數

可見,一個神經元的功能是求得輸入向量與權向量的內積後,經一個非線性傳遞函數得到一個純量結果。

單個神經元的作用:把一個n維向量空間用一個超平面分割成兩部分(稱之為判斷邊界),給定一個輸入向量,神經元可以判斷出這個向量位於超平面的哪一邊。

該超平面的方程:\vec{W}\vec{p}+b=0

  • \vec{W}權向量
  • b偏置
  • \vec{p}超平面上的向量

[2]

神經元網路[編輯]

單層神經元網路[編輯]

是最基本的神經元網路形式,由有限個神經元構成,所有神經元的輸入向量都是同一個向量。由於每一個神經元都會產生一個純量結果,所以單層神經元的輸出是一個向量,向量的維數等於神經元的數目。 示意圖:

SingleLayerNeuralNetwork english.png

多層神經元網路[編輯]

人工神經網路的使用性[編輯]

人工神經網路是一個能夠學習,能夠總結歸納的系統,也就是說它能夠通過已知數據的實驗運用來學習和歸納總結。人工神經網路通過對局部情況的對照比較(而這些比較是基於不同情況下的自動學習和要實際解決問題的複雜性所決定的),它能夠推理產生一個可以自動識別的系統。與之不同的基於符號系統下的學習方法,它們也具有推理功能,只是它們是建立在邏輯演算法的基礎上,也就是說它們之所以能夠推理,基礎是需要有一個推理演算法則的集合。

人工神經元網路模型[編輯]

通常來說,一個人工神經元網路是由一個多層神經元結構組成,每一層神經元擁有輸入(它的輸入是前一層神經元的輸出)和輸出,每一層(我們用符號記做)Layer(i)是由Ni(Ni代表在第i層上的N)個網路神經元組成,每個Ni上的網路神經元把對應在Ni-1上的神經元輸出做為它的輸入,我們把神經元和與之對應的神經元之間的連線用生物學的名稱,叫做突觸英語Synapse),在數學模型中每個突觸有一個加權數值,我們稱做權重,那麼要計算第i層上的某個神經元所得到的勢能等於每一個權重乘以第i-1層上對應的神經元的輸出,然後全體求和得到了第i層上的某個神經元所得到的勢能,然後勢能數值通過該神經元上的激活函數(activation function,常是S型函數(英語Sigmoid function)以控制輸出大小,因為其可微分且連續,方便差量規則(英語Delta rule)處理。求出該神經元的輸出,注意的是該輸出是一個非線性的數值,也就是說通過激勵函數求的數值根據極限值來判斷是否要激活該神經元,換句話說我們對一個神經元網路的輸出是否線性不感興趣。

基本結構[編輯]

一種常見的多層結構的前饋網路(Multilayer Feedforward Network)由三部分組成,

  • 輸入層(Input layer),眾多神經元(Neuron)接受大量非線形輸入信息。輸入的信息稱為輸入向量。
  • 輸出層(Output layer),信息在神經元鏈接中傳輸、分析、權衡,形成輸出結果。輸出的信息稱為輸出向量。
  • 隱藏層(Hidden layer),簡稱「隱層」,是輸入層和輸出層之間眾多神經元和鏈接組成的各個層面。隱層可以有多層,習慣上會用一層。隱層的節點(神經元)數目不定,但數目越多神經網路的非線性越顯著,從而神經網路的強健性(robustness)(控制系統在一定結構、大小等的參數攝動下,維持某些性能的特性。)更顯著。習慣上會選輸入節點1.2至1.5倍的節點。

神經網路的類型已經演變出很多種,這種分層的結構也並不是對所有的神經網路都適用。

學習過程[編輯]

通過訓練樣本的校正,對各個層的權重進行校正(learning)而建立模型的過程,稱為自動學習過程(training algorithm)。具體的學習方法則因網路結構和模型不同而不同,常用反向傳播演算法(Backpropagation/倒傳遞/逆傳播,以output利用一次微分en:Delta rule來修正weight)來驗證。

參見:神經網路介紹

種類[編輯]

人工神經網路分類為以下兩種:
1.依學習策略(Algorithm)分類主要有:


2.依網路架構(Connectionism)分類主要有:

理論性質[編輯]

計算能力[編輯]

多層感知器(MLP)是一個通用的函數逼近器,由Cybenko定理證明。然而,證明不是由所要求的神經元數量或權重來推斷的。 Hava Siegelmann和Eduardo D. Sontag的工作證明了,一個具有有理數權重值的特定遞歸結構(與全精度實數權重值相對應)相當於一個具有有限數量的神經元和標準的線性關係的通用圖靈機。[3] 他們進一步表明,使用無理數權重值會產生一個超圖靈機。

容量[編輯]

人工神經網路模型有一個屬性,稱為「容量」,這大致相當於他們可以塑造任何函數的能力。它與可以被儲存在網路中的信息的數量和複雜性相關。

收斂性[編輯]

沒有什麼通常意義上的收斂,因為它取決於一些因素。首先,函數可能存在許多局部極小值。這取決於成本函數和模型。其次,使用優化方法在遠離局部最小值時可能無法保證收斂。第三,對大量的數據或參數,一些方法變得不切實際。在一般情況下,我們發現,理論保證的收斂不能成為實際應用的一個可靠的指南。

綜合統計[編輯]

在目標是創建一個普遍系統的應用程式中,過度訓練的問題出現了。這出現在迴旋或過度具體的系統中當網路的容量大大超過所需的自由參數。為了避免這個問題,有兩個方向:第一個是使用交叉驗證和類似的技術來檢查過度訓練的存在和選擇最佳參數如最小化泛化誤差。二是使用某種形式的正規化。這是一個在機率化(貝葉斯)框架里出現的概念,其中的正則化可以通過為簡單模型選擇一個較大的先驗機率模型進行;而且在統計學習理論中,其目的是最大限度地減少了兩個數量:「風險」和「結構風險」,相當於誤差在訓練集和由於過度擬合造成的預測誤差。

參見[編輯]

外部連結[編輯]

參考文獻[編輯]

  1. ^ Zeidenberg, Matthew. Neural Networks in Artificial Intelligence. 1990: Ellis Horwood Limited. 1990. ISBN 0-13-612185-3. 
  2. ^ Hagan, Martin. Neural Network Design. PWS Publishing Company. 1996. ISBN 7-111-10841-8. 
  3. ^ Siegelmann, H.T.; Sontag, E.D. Turing computability with neural nets. Appl. Math. Lett. 1991, 4 (6): 77–80. doi:10.1016/0893-9659(91)90080-F.