人工神经网络

歷史

沃倫·麥卡洛克和沃爾特·皮茨（1943）基於數學和一種稱為閾值邏輯的演算法創造了一種神經網路的計算模型。這種模型使得神經網路的研究分裂為兩種不同研究思路。一種主要關注大腦中的生物學過程，另一種主要關注神經網路在人工智慧里的應用。

赫布型學習

二十世紀40年代後期，心理學家唐納德·赫布根據神經可塑性的機制創造了一種對學習的假說，現在稱作赫布型學習。赫布型學習被認為是一種典型的非監督式學習規則，它後來的變種是長期增強作用的早期模型。從1948年開始，研究人員將這種計算模型的思想應用到B型圖靈機上。
法利和韋斯利·A·克拉克（1954）首次使用電腦，當時稱作計算機，在MIT類比了一個赫布網路。納撒尼爾·羅切斯特（1956）等人類比了一台 IBM 704電腦上的抽象神經網路的行為。 
弗蘭克·羅森布拉特創造了感知機。這是一種圖型識別演算法，用簡單的加減法實現了兩層的電腦學習網路。羅森布拉特也用數學符號描述了基本感知機里沒有的迴路，例如互斥或迴路。這種迴路一直無法被神經網路處理，直到保羅·韋伯斯(1975)創造了反向傳播演算法。
在馬文·明斯基和西摩爾·派普特（1969）發表了一項關於機器學習的研究以後，神經網路的研究停滯不前。他們發現了神經網路的兩個關鍵問題。第一是基本感知機無法處理互斥或迴路。第二個重要的問題是電腦沒有足夠的能力來處理大型神經網路所需要的很長的計算時間。直到電腦具有更強的計算能力之前，神經網路的研究進展緩慢。

反向傳播演算法與復興

後來出現的一個關鍵的進展是保羅·韋伯斯發明的反向傳播演算法（Werbos 1975）。這個演算法有效地解決了互斥或的問題，還有更普遍的訓練多層神經網路的問題。
在二十世紀80年代中期，分散式並列處理（當時稱作聯結主義）流行起來。戴維·魯姆哈特和詹姆斯·麥克里蘭德的教材對於聯結主義在電腦類比神經活動中的應用提供了全面的論述。
神經網路傳統上被認為是大腦中的神經活動的簡化模型，雖然這個模型和大腦的生理結構之間的關聯存在爭議。人們不清楚人工神經網路能多大程度地反映大腦的功能。
支援向量機和其他更簡單的方法（例如線性分類器）在機器學習領域的流行度逐漸超過了神經網路，但是在2000年代後期出現的深度學習重新激發了人們對神經網路的興趣。

2006年之後的進展

人們用CMOS創造了用於生物物理類比和神經形態計算的計算裝置。最新的研究顯示了用於大型主成分分析和卷積神經網路的奈米裝置具有良好的前景。如果成功的話，這會創造出一種新的神經計算裝置，因為它依賴於學習而不是編程，並且它從根本上就是類比的而不是數位化的，雖然它的第一個實體可能是數位化的CMOS裝置。
在2009到2012年之間，Jürgen Schmidhuber在Swiss AI Lab IDSIA的研究小組研發的遞迴神經網路和深前饋神經網路贏得了8項關於圖型識別和機器學習的國際比賽。例如，Alex Graves et al.的雙向、多維的LSTM贏得了2009年ICDAR的3項關於連筆字辨識的比賽，而且之前並不知道關於將要學習的3種語言的資訊。
IDSIA的Dan Ciresan和同事根據這個方法編寫的基於GPU的實現贏得了多項圖型識別的比賽，包括IJCNN 2011交通標誌辨識比賽等等。他們的神經網路也是第一個在重要的基準測試中（例如IJCNN 2012交通標誌辨識和NYU的揚·勒丘恩（Yann LeCun）的MNIST手寫數字問題）能達到或超過人類水平的人工圖型識別器。
類似1980年Kunihiko Fukushima發明的neocognitron和視覺標準結構（由David H. Hubel和Torsten Wiesel在初級視皮層中發現的那些簡單而又複雜的細胞啟發）那樣有深度的、高度非線性的神經結構可以被多倫多大學傑夫·辛頓實驗室的非監督式學習方法所訓練。

單層神經元網路

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

人工神經網路的實用性

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

人工神經元網路模型

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

學習過程

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

計算能力

多層感知器（Multilayer Perceptron，縮寫MLP）是一個通用的函式逼近器，由Cybenko定理證明。然而，證明不依賴特定的神經元數量或權重。Hava Siegelmann和Eduardo D. Sontag的工作證明了，一個具有有理數權重值的特定遞迴結構（與全精度實數權重值相對應）由有限個神經元和標準的線性關係構成的神經網路相當於一個通用圖靈機。他們進一步表明，使用無理數權重值會產生一個超圖靈機。

容量

人工神經網路模型有一個屬性，稱為「容量」，這大致相當於他們記住（而非正確分類）輸入資料的能力。它與網路的參數、和結構有關。Google在研究中使用打亂標籤的方法，來測試模型是否能否記住所有的輸出。雖然很明顯，這樣模型在測試集上的表現幾乎是隨機猜測，但是模型能夠記住所有訓練集的輸入資料，即記住他們被打亂後的標籤。而記住有限的樣本的資訊（Expressivity），需要的模型的參數（權重）數量存在下限。

收斂性

模型並不總是收斂到唯一解，因為它取決於一些因素。首先，函式可能存在許多局部極小值，這取決於成本函式和模型。其次，在遠離局部最小值時，最佳化方法可能無法保證收斂。第三，對大量的資料或參數，一些方法變得不切實際。在一般情況下，我們發現，理論保證的收斂不能成為實際應用的一個可靠的指南。

綜合統計

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