- 深度學習:卷積神經網絡從入門到精通
- 李玉鑑
- 2201字
- 2019-01-05 05:43:31
1.1 深度學習的起源和發展
深度學習的概念起源于人工神經網絡,本質上是指一類對具有深層結構的神經網絡進行有效訓練的方法。神經網絡是一種由許多非線性計算單元(或稱神經元、節點)組成的分層系統,通常網絡的深度就是其中不包括輸入層的層數。
最早的神經網絡是心理學家McCulloch和數理邏輯學家Pitts在1943年建立的MP模型[1],如圖1.1所示。MP模型實際上只是單個神經元的形式化數學描述,具有執行邏輯運算的功能,雖然不能進行學習,但開創了人工神經網絡研究的時代。1949年,Hebb首先對生物神經網絡提出了有關學習的思想[2]。1958年,Rosenblatt提出了感知器模型及其學習算法[3]。在隨后的幾十年間,盡管神經網絡的研究出現過一段與Minsky對感知器的批評有關的低潮期[4],但仍然在逐步向前推進,并產生了許多神經網絡的新模型[5-10]。到20世紀八九十年代,這些新模型終于引發了神經網絡的重生,并掀起了對神經網絡研究的世界性高潮[11]。其中最受歡迎的模型至少包括:Hopf ield神經網絡[8]、波耳茲曼機[9]和多層感知器[10]。最早的深度學習系統也許就是那些通過數據分組處理方法訓練的多層感知器[12]。多層感知器,在隱含層數大于1時常常稱為深層感知器,實際上是一種由多層節點有向圖構成的前饋神經網絡[13],其中每一個非輸入節點是具有非線性激活函數的神經元,每一層與其下一層是全連接的。此外,Fukushima提出的神經認知機可能是第一個具有“深度”屬性的神經網絡[14-16],并且也是第一個集成了“感受野”思想的神經網絡[17-18],以便有效地對視覺輸入的某些特性起反應。更重要的是,神經認知機促成了卷積神經網絡結構的誕生和發展[19]。而卷積神經網絡作為一種判別模型,極大地推進了圖像分類、識別和理解技術的發展,在大規模評測比賽中成績卓著[20],盛譽非凡。

圖1.1
在訓練神經網絡方面,反向傳播無疑是最常用、最著名的算法[10,21]。這是一種有監督學習算法,需要教師指導信號。也就是說,應提供一組訓練樣本,對給定的輸入,指明相應的輸出。然而,直到20世紀80年代末期,反向傳播似乎還只是對淺層網絡有效,盡管原理上也應對深層網絡有效。淺層網絡主要是指具有1個隱含層的神經網絡,如圖1.2所示。深層網絡則主要是指具有2個及以上隱含層的神經網絡,如圖1.3所示。在早期的應用中,大多數多層感知器都只用1個或很少的隱含層,增加隱含層幾乎沒有什么經驗上的收益。這似乎可以從神經網絡的單隱層感知器逼近定理中找到某種解釋[22, 23],該定理指出,只要單隱層感知器包含的隱含神經元足夠多,就能夠在閉區間上以任意精度逼近任何一個多變量連續函數。直到1991年的時候,關于多層感知器在增加層數時為什么難學習的問題,才開始作為一個深度學習的基本問題,得到了完全的理解。

圖1.2 淺層(單隱層)神經網絡

圖1.3 深層神經網絡
1991年,Hochreteir正式指出,典型的深層網絡存在梯度消失或爆炸問題,從而明確確立了深度學習的一個里程碑[24]。該問題是說,累積反向傳播誤差信號在神經網絡的層數增加時會出現指數衰減或增長的現象,從而導致數值計算快速收縮或越界。這就是深層網絡很難用反向傳播算法訓練的主要原因。需要指出的是,梯度消失或爆炸問題又稱為長時滯后問題,在循環神經網絡中也會出現[25]。
為了在一定程度上克服梯度消失或爆炸問題,1990~2000年,Hochreiter的深邃思想推動了若干新方法的探索[26-28]。但除了卷積神經網絡以外[29],訓練深層網絡的問題直到2006年才開始得到嚴肅認真的對待。一個重要的原因是,1995年之后支持向量機的快速發展減緩了神經網絡的有關工作進展[30]。
普遍認為,深度學習正式發端于2006年,以Hinton及其合作者發表的兩篇重要論文為標志:一篇發表在《Neural Computation》上,題目為“A fast learning algorithm for deep belief nets”[31];另一篇發表在《Science》上,題目為“Reducing the dimensionality of data with neural networks”[32]。從那以后,大量的深度學習模型開始重新受到廣泛關注,或如雨后春筍般迅速發展起來,其中主要包括受限波耳茲曼機(Restricted Boltzman Machine, RBM)[33]、深層自編碼器(deep AutoEncoder, deep AE)[32]、深層信念網絡(deep belief net)[31]、深層波耳茲曼機(Deep Boltzman Machine, DBM)[34]、和積網絡(Sum-Product Network, SPN)[35]、深層堆疊網絡(Deep Stacked Network, DSN)[36]、卷積神經網絡(Convolutional Neural Network, CNN)[19]、循環神經網絡(Recurrent Neural Network, RNN)[25]、長短期記憶網絡(Long Short-Term Memory network, LSTM network)[27]、強化學習網絡(Reinforcement Learning Network, RLN)[37]、生成對抗網絡(Generative Adversarial Network, GAN)[38]等。通過結合各種有效的訓練技巧,比如最大池化(max pooling)[39]、丟失輸出(dropout)[40]和丟失連接(dropconnect)[41],這些深度學習模型取得了許多歷史性的突破和成就,例如手寫數字識別[32]、ImageNet分類[20]和語音識別[42]。而這些歷史性的突破和成就,使深度學習很快在學術界掀起了神經網絡的一次新浪潮。其中最主要的原因,當然是深度學習在解決大量實際問題時所表現的性能超越了機器學習的其他替代方法,例如支持向量機[30]。
在理論上,一個具有淺層結構或層數不夠深的神經網絡雖然在節點數足夠大時也可能充分逼近地表達任意的多元非線性函數,但這種淺層表達在具體實現時往往由于需要太多的節點而無法實際應用。一般說來,對于給定數目的訓練樣本,如果缺乏其他先驗知識,人們更期望使用少量的計算單元來建立目標函數的“緊表達”,以獲得更好的泛化能力[43]。而在網絡深度不夠時,這種緊表達可能根本無法建立起來,因為理論研究表明,深度為k的網絡能夠緊表達的函數在用深度為k -1的網絡來表達時有時需要的計算單元會呈指數增長[44]。這種函數表達的潛在能力說明,深層神經網絡(又稱深度神經網絡)在一定的條件下可能具有非常重要的應用前景。隨著深度學習的興起,這種潛在能力開始逐步顯現出來,特別是對卷積神經網絡的全面推廣應用,使得這種潛在能力幾乎得到了淋漓盡致的發揮。