一、什么是神經網絡
機器學習中談論的神經網絡是指“神經網絡學習”,或者說,是機器學習和神經網絡這兩個學科領域的交叉部分[1]。
在這里,神經網絡更多的是指計算機科學家模擬人類大腦結構和智能行為,發明的一類算法的統稱。
神經網絡是眾多優秀仿生算法中的一種,讀書時曾接觸過蟻群優化算法,曾驚訝于其強大之處,但神經網絡的強大,顯然蟻群優化還不能望其項背。
二、簡要歷史
A、起源與第一次高潮。有人認為,神經網絡的最早討論,源于現代計算機科學的先驅——阿蘭.圖靈在1948年的論文中描述的“B型組織機器”[2]。二十世紀50年代出現了以感知機、Adaling為代表的一系列成功,這是神經網絡發展的第一個高潮[1]。
B、第一次低谷。1969年,馬文.明斯基出版《感知機》一書,書中論斷直接將神經網絡打入冷宮,導致神經網絡十多年的“冰河期”。值得一提的是,在這期間的1974年,哈佛大學Paul Webos發明BP算法,但當時未受到應有的重視[1]。
C、第二次高潮。1983年,加州理工學院的物理學家John Hopfield利用神經網絡,在旅行商問題上獲得當時最好結果,引起轟動;Rumelhart等人重新發明了BP算法,BP算法迅速走紅,掀起神經網絡第二次高潮[1]。
D、第二次低谷。二十世紀90年代中期,統計學習理論和支持向量機興起,較之于這些算法,神經網絡的理論基礎不清晰等缺點更加凸顯,神經網絡研究進入第二次低谷[1]。
E、深度學習的崛起。2010年前后,隨著計算能力的提升和大數據的涌現,以神經網絡為基礎的“深度學習”崛起,科技巨頭公司谷歌、Facebook、百度投入巨資研發,神經網絡迎來第三次高潮[1]。2016年3月9日至15日,Google人工智能程序AlphaGo對陣韓國圍棋世界冠軍李世乭,以4:1大比分獲勝,比眾多專家預言早了十年。這次比賽,迅速在全世界經濟、科研、計算機產業各領域掀起人工智能和深度學習的熱烈討論。
F、展望。從幾個方面討論一下。
1)、近期在Google AlphaGo掀起的熱潮中,民眾的熱情與期待最大,甚至有少許恐慌情緒;計算機產業和互聯網產業熱情也非常巨大,對未來充滿期待,各大巨頭公司對其投入大量資源;學術界的反應倒是比較冷靜的。學術界的冷靜,是因為神經網絡和深度神經網絡的理論基礎還沒有出現長足的進步,其缺點還沒有根本改善。這也從另一個角度說明了深度神經網絡理論進步的空間很大。
2)、"當代神經網絡是基于我們上世紀六十年代掌握的腦知識。"關于人類大腦的科學與知識正在爆炸式增長。[3]世界上很多學術團隊正在基于大腦機制新的認知建立新的模型[3]。我個人對此報樂觀態度,從以往的仿生算法來看,經過億萬年進化的自然界對科技發展的促進從來沒有停止過。
3)、還說AlphaGo,它并不是理論和算法的突破,而是基于已有算法的工程精品。AlhphaGo的工作,為深度學習的應用提供了非常廣闊的想象空間。分布式技術提供了巨大而廉價的計算能力,巨量數據的積累提供了豐富的訓練樣本,深度學習開始騰飛,這才剛剛開始。
三、神經元模型
3.1、來源
一直沿用至今的,是McChlloch和Pitts在1943年依據腦神經信號傳輸結構抽象出的簡單模型,所以也被稱作”M-P神經元模型“。
3.2、數學模型
其中,
f函數像一般形如下圖的函數,既考慮階躍性,又考慮光滑可導性。
實際常用如下公式,因形如S,故被稱作sigmoid函數。
把很多個這樣的神經元按一定層次連接起來,就得到了神經網絡。
四、感知機(Perceptron)[1]
4.1、網絡結構
兩層神經元組成,輸入層接收外界輸入信號,輸出層是M-P神經元(只有輸出層是)。
4.2、數學模型
感知機的數學模型和單個M-P神經元的數學模型是一樣的,如因為輸入層只需接收輸入信號,不是M-P神經元。
4.3、訓練
4.4、缺點
感知機只有輸出層神經元是B-P神經元,學習能力非常有限。對于現行可分問題,可以證明學習過程一定會收斂。而對于非線性問題,感知機是無能為力的。
五、其他常見神經網絡
5.1、BP神經網絡
BP神經網絡全稱叫作誤差逆傳播(Error Propagation)神經網絡,一般是指基于誤差逆傳播算法的多層前饋神經網絡。這里為了不占篇幅,BP神經網絡將起篇另述。
BP算法是迄今最為成功的神經網絡學習算法,也是最有代表性的神經網絡學習算法。BP算法不僅用于多層前饋神經網絡,還用于其他類型神經網絡的訓練。
5.2、RBF網絡
RBF網絡全程徑向基函數(Radial Basis Function)網絡,是一種單隱層前饋神經網絡,其與BP網絡最大的不同是采用徑向基函數作為隱層神經元激活函數。
5.3、CNNs
卷積神經網絡(Convolutional neural networks,簡稱CNNs)是一種深度學習的前饋神經網絡,在大型圖片處理中取得巨大成功。卷積神經網絡將起篇另述。
5.4、RNNs
循環神經網絡(Recurrent Neural Networks,RNNs)與傳統的FNNs不同,RNNs引入定向循環,能夠處理那些輸入之間前后關聯的問題。RNNs已經在眾多自然語言處理(Natural Language Processing, NLP)中取得了巨大成功以及廣泛應用[5]。RNNs將起篇另述。[5]
六、參考
[1]、《機器學習》,周志華著
[2]、《模式識別(第二版)》,Richard O.Duda等著,李宏東等譯
[3]、《揭秘IARPA項目:解碼大腦算法或將徹底改變機器學習》,Emily Singerz著,機器之心編譯出品
[4]、圖片來源于互聯網