神經網路的歷史?

想了解一下神經網路的由來,主要分為兩個方面:

1. Pattern Recognition and Machine Learning的第五章開篇寫了

The term "neural network" has its origins in attempts to find mathematical representations of information processing in biological systems.

想了解一下神經網路是從生物學(或者生物信息學,神經科學,腦科學等)的那些研究衍生而來的。

2. 從統計學的角度來看,神經網路剛開始的目的是為了解決模型中的過擬合問題,以及維數災難么?


人工神經網路的發展大致經歷了三次高潮:20世紀40年代-60年代的控制論、20世紀80年代到90年代中期的聯結主義以及2006年以來的深度學習。

1943年,神經科學家和控制論專家Warren McCulloch和邏輯學家Walter Pitts基於數學和閾值邏輯演算法創造了一種神經網路計算模型。這一線性模型通過測試f(x,w)是正是負來識別兩種不同類別的輸入。神經網路的研究由此分為了對大腦中生物過程的研究及對把神經網路應用於人工智慧的研究(人工神經網路)。

20世紀40年代後期,心理學家Donald Hebb根據神經可塑性的機制提出了一種學習假說:

我們可以假定,反射活動的持續與重複會導致神經元穩定性的持久性提升……當神經元A的軸突與神經元B很近並參與了對B的重複持續的興奮時,這兩個神經元或其中一個便會發生某些生長過程或代謝變化,致使A作為能使B興奮的細胞之一,它的效能增強了。

w_{ij}=x_ix_j, w_{ij}是神經元i與神經元j之間的權重,x_i是神經元i

的輸入。

Hebb的假說後來被稱為赫布型學習,被認為是一種典型的無監督學習規則。它後來的變種是長期增強作用(由於同步刺激兩個神經元而使得兩個神經元信號傳輸持久增強的現象)的早期模型。

1948年,研究人員將這種計算模型的思想應用到了B型圖靈機上。

1954年, Farley和物理學家Wesley A. Clark在MIT首次用計算機模擬了一個赫布網路。

1957年,心理學家Frank Rosenblatt創造了模式識別演算法感知機,用簡單的加減法實現了兩層的計算機學習網路。Rosenblatt也用數學符號描述了基本感知機里沒有的迴路,如異或迴路。

1969年,Marvin Minsky和Seymour Papert發現了神經網路的兩個重大缺陷:其一,基本感知機無法處理異或迴路。其二,當時計算機的計算能力不足以用來處理大型神經網路。神經網路的研究就此停滯不前。

1974年,Paul Werbos在博士論文中提出了用誤差反向傳導來訓練人工神經網路,有效解決了異或迴路問題,使得訓練多層神經網路成為可能。

1979年,Kunihiko Fukushima受Hubel Wiesel的工作啟發,提出了Neocognitron。在這個工作中他已經有了諸如卷積、池化的想法。

1980年代中期,以聯結主義的名義,分散式並行處理流行起來。

在20世紀剩下的時間裡,支持向量機和其它更簡單的演算法(如線性分類器)的流行程度逐步超過了神經網路。

1989年,Yann LeCun提出了一種用反向傳導進行更新的卷積神經網路,稱為LeNet

1997年,Sepp Hochreiter和Jürgen Schmidhuber提出了長短期記憶網路

1998年,以Yann LeCun為首的研究人員實現了一個七層的卷積神經網路LeNet-5以識別手寫數字。

21世紀初,藉助GPU和分散式計算,計算機的計算能力大大提升。

2006年,Geoffrey Hinton用貪婪逐層預訓練(greedy layer-wise pretraining)有效訓練了一個深度信念網路。這一技巧隨後被研究人員推廣到了許多不同的神經網路上,大大提高了模型在測試集上的泛化效果。以Geoffrey Hinton為代表的加拿大高等研究院附屬機構的研究人員開始將人工神經網路/聯結主義重新包裝為了深度學習並進行推廣。

2009-2012年,瑞士人工智慧實驗室IDSIA的Jürgen Schmidhuber帶領研究小組發展了遞歸神經網路深前饋神經網路

2012年,Geoffrey Hinton組的研究人員在ImageNet 2012上奪冠,他們圖像分類的效果遠遠超過了第二名,深度學習的熱潮由此開始並一直持續到現在。

關於神經網路和生物學、神經科學的關係,我摘幾段Ian Goodfellow、Yoshua Bengio和Aaron Courville的Deep Learning一書中的內容:

雖然人工神經網路有時被用來理解大腦機制,但它們總的來說並不是被設計來模擬生物機制。神經科學觀點下的深度學習來源於兩個想法。 一個觀點是,大腦用實際例子證明了智能行為是可能的。一個在概念上直截了當的用於創建智能的路徑是對大腦背後的計算原理進行逆向工程並且複製其機制。另一個觀點是,理解大腦和人類智能背後的原理是非常有趣的,因此和這些基礎科學問題相關聯的機器學習模型在解決工程問題之外也是有用的。

如今,神經科學被認為是深度學習研究人員的重要靈感來源之一,但它不再是這一領域的決定性指導方針。

神經科學在深度學習領域失去影響力的主要原因是我們沒有關於大腦的足夠信息。

神經科學給了我們一個理由來希望單一的深度學習演算法可以解決許多不同的任務。神經科學家已經發現如果對雪貂的大腦重新連線,把視覺信號發送到他們的聽覺處理區域,他們可以用聽覺處理區域來學習」看」(Von Melchner et al. 2000)。這暗示很多哺乳動物的大腦可以用單一的演算法來解決大腦負責的大部分不同任務。在這一假設之前,機器學習應用方面的研究更加分散,不同的研究群體分別進行自然語言處理、計算機視覺、運動規劃和語音識別領域的研究。而今,這些研究群體雖然仍然分散,但是深度學習研究小組已經習慣於同時研究很多甚至全部的應用。

現代深度學習從很多領域汲取靈感,特別是應用數學的基礎如線性代數、概率、資訊理論和數值優化。當一些深度學習研究人員把神經科學作為一個重要的靈感來源,其他人則對此毫不關心。

值得注意的是,在演算法層面理解大腦運作的努力仍然活躍而出色。這一努力主要以「計算神經科學」而聞名,並且是一個獨立於深度學習的研究領域。對於研究人員來說,往返於深度學習和計算神經科學兩個領域是非常普遍的。

關於第二個問題,我對統計學一竅不通,不知道有沒有高人來指點一下。我個人感覺神經網路發展之初和統計學的關聯比較有限。各機器學習演算法的興衰似乎主要還是在於演算法實施的難易程度、模型擬合訓練集的能力以及模型的泛化能力。

關於過擬合的問題,一般認為非參數和非線性的機器學習模型更容易過擬合。而神經網路恰恰是非線性的。

關於神經網路在統計學性質谷歌上應該能找到一些相關的研究,比如這篇STATISTICAL PROPERTIES OF ARTIFICIAL NEURAL NETWORKS。

參考資料:

  1. Artificial neural network
  2. Hebbian theory - Wikipedia
  3. Perceptron - Wikipedia
  4. Convolutional neural network
  5. Goodfellow et al., Deep Learning, The MIT Press, 2016.
  6. Theories of Deep Learning (STATS 385)

------------------------------------------------------------------------------------------------------------

2016.12.29日更新:

感謝@劉間或指出,維數災禍(the curse of dimensionality)在機器學習里是指隨著樣本空間和參數空間維數的增加,潛在參數組合的數量指數型增長,相同精確度的預測會需要多得多的訓練樣本。當訓練樣本不變時,預測的精度與空間維數的增加成反比。

Yoshua Bengio在What is the curse of dimensionality? 指出由此帶來的真正困難是要學習的目標方程的複雜度以及其複雜度是否合理,能否通過學習少量的樣本就擁有足夠出色的泛化能力。一個由此而來的研究問題是在何種程度上演算法有潛力以這樣非本地的方式泛化(在與訓練集很不同的樣本上泛化)。他認為深度學習有這樣的潛力。參考他和Yann Lecun寫的Scaling Learning Algorithms towards AI。


推薦閱讀:

卷積神經網路中用1*1 卷積有什麼作用或者好處呢?
如何看待指出 神經網路的訓練罪魁禍首是退化一文?
在神經網路中weight decay起到的做用是什麼?momentum呢?normalization呢?
如何通俗的理解spike and slab prior?
機器AI學習需要什麼數學基礎,學習這些數學需要會哪些基礎數學?

TAG:機器學習 | 神經網路 | 神經科學 | 深度學習DeepLearning |