瞭解CNN這一篇就夠了:卷積神經網路技術及發展 - 程式前沿
文章推薦指數: 80 %
卷積神經網路(CNN)是一種常見的深度學習架構,受生物自然視覺認知機制啟發而來。
1959年,Hubel & Wiesel [1] 發現,動物視覺皮層細胞負責檢測光學訊號。
程式語言前端開發IOS開發Android開發雲端運算人工智慧伺服器搜尋資料庫軟體開發工具瞭解CNN這一篇就夠了:卷積神經網路技術及發展2018.07.18程式語言HOME程式語言瞭解CNN這一篇就夠了:卷積神經網路技術及發展Advertisement【新智元導讀】深度學習很火,說起深度學習中一個很重要的概念——卷積神經網路(CNN)似乎也人人皆知。
不過,CNN究竟是什麼,涉及哪些概念,經過如何發展,真正要有邏輯地歸納一遍,估計不少人都說不清。
日前,南洋理工大學研究人員梳理CNN發展歷史,從基礎組成部分講起,介紹並探討CNN在視覺識別方面的原理及應用,是系統深入理解CNN的好文。
RecentAdvancesinConvolutionalNeuralNetworks 卷積神經網路進展 摘要 過去幾年,深度學習在解決諸如視覺識別、語音識別和自然語言處理等很多問題方面都表現出色。
在不同型別的神經網路當中,卷積神經網路是得到最深入研究的。
早期由於缺乏訓練資料和計算能力,要在不產生過擬合的情況下訓練高效能卷積神經網路是很困難的。
標記資料和近來GPU的發展,使得卷積神經網路研究湧現並取得一流結果。
本文中,我們將縱覽卷積神經網路近來發展,同時介紹卷積神經網路在視覺識別方面的一些應用。
引言 卷積神經網路(CNN)是一種常見的深度學習架構,受生物自然視覺認知機制啟發而來。
1959年,Hubel&Wiesel[1]發現,動物視覺皮層細胞負責檢測光學訊號。
受此啟發,1980年KunihikoFukushima提出了CNN的前身——neocognitron。
20世紀90年代,LeCunetal.[3]等人發表論文,確立了CNN的現代結構,後來又對其進行完善。
他們設計了一種多層的人工神經網路,取名叫做LeNet-5,可以對手寫數字做分類。
和其他神經網路一樣,LeNet-5也能使用backpropagation演算法訓練。
CNN能夠得出原始影象的有效表徵,這使得CNN能夠直接從原始畫素中,經過極少的預處理,識別視覺上面的規律。
然而,由於當時缺乏大規模訓練資料,計算機的計算能力也跟不上,LeNet-5對於複雜問題的處理結果並不理想。
2006年起,人們設計了很多方法,想要克服難以訓練深度CNN的困難。
其中,最著名的是Krizhevskyetal.提出了一個經典的CNN結構,並在影象識別任務上取得了重大突破。
其方法的整體框架叫做AlexNet,與LeNet-5類似,但要更加深一些。
AlexNet取得成功後,研究人員又提出了其他的完善方法,其中最著名的要數ZFNet[7],VGGNet[8],GoogleNet[9]和ResNet[10]這四種。
從結構看,CNN發展的一個方向就是層數變得更多,ILSVRC2015冠軍ResNet是AlexNet的20多倍,是VGGNet的8倍多。
通過增加深度,網路便能夠利用增加的非線性得出目標函式的近似結構,同時得出更好的特性表徵。
但是,這樣做同時也增加了網路的整體複雜程度,使網路變得難以優化,很容易過擬合。
研究人員提出了很多方法來解決這一問題。
在下面的章節中,我們會先列出CNN的組成部分,然後介紹CNN不同方面的最近進展,接著引入快速計算技巧,並探討CNN在影象分類、物體識別等不同方面的應用進展,最後歸納總結。
基本組成部分 在不同的參考資料中,對CNN的組成部分都有著不同的描述。
不過,CNN的基本組成成分是十分接近的。
以分類數字的LeNet-5為例,這個CNN含有三種型別的神經網路層: 卷積層:學會識別輸入資料的特性表徵 池化(Pooling):典型的操作包括平均pooling[12]和最大化pooling[1315] 全連線層:將卷積層和Pooling層堆疊起來以後,就能夠形成一層或多層全連線層,這樣就能夠實現高階的推力能力。
完善CNN 自從2012年AlexNet成功以後,研究人員設計了很多種完善CNN的方法。
在這一節中,我們將從6方面進行介紹。
1.卷積層 1)網路中的網路(NetworkinNetwork,NIN):由Linetal.[21]提出的基本網路結構 2)Inceptionmodule:由Szegedyetal.[9]提出,是NIN的拓展 2.池化層 池化層是CNN的重要組成部分,通過減少卷積層之間的連線,降低運算複雜程度。
以下是常用的幾種迴圈方法: 1)Lp池化:Lp池化是建立在複雜細胞執行機制的基礎上,受生物啟發而來[24][25] 2)混合池化:受隨機Dropout[16]和DropConnect[28],Yuetal.啟發而來 3)隨機池化:隨機迴圈[30]是受drptout啟發而來的方法 4)Spectral池化 3.啟用函式 常用的非線性啟用函式有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見於全連結層,後者relu常見於卷積層。
1)ReLU 2)LeakyReLU 3)ParametricReLU 4)RandomizedReLU 5)ELU 6)Maxout: 7)Probout4.Loss函式 1)Softmaxloss 2)Hingeloss 3)Contrastiveloss 5.正則化 1)DropOut 2)DropConnect 6.優化 1)初始化權重 2)隨機梯度下降 3)批量標準化 4)Shortcut連線 CNN應用 A影象分類 B物體檢測 C物體追蹤 D姿態預估(Poseestimatation) E文字檢測識別 F視覺saliency檢測 G行動識別 H場景標記 討論 深度CNN在影象處理、視訊、語音和文字中取得了突破。
本文種,我們主要從計算機視覺的角度對最近CNN取得的進展進行了深度的研究。
我們討論了CNN在不同方面取得的進步:比如,層的設計,活躍函式、損失函式、正則化、優化和快速計算。
除了從CNN的各個方面回顧其進展,我們還介紹了CNN在計算機視覺任務上的應用,其中包括影象分類、物體檢測、物體追蹤、姿態估計、文字檢測、視覺顯著檢測、動作識別和場景標籤。
雖然在實驗的測量中,CNN獲得了巨大的成功,但是,仍然還有很多工作值得進一步研究。
首先,鑑於最近的CNN變得越來越深,它們也需要大規模的資料庫和巨大的計算能力,來展開訓練。
人為蒐集標籤資料庫要求大量的人力勞動。
所以,大家都渴望能開發出無監督式的CNN學習方式。
同時,為了加速訓練程序,雖然已經有一些非同步的SGD演算法,證明了使用CPU和GPU叢集可以在這方面獲得成功,但是,開放高效可擴充套件的訓練演算法依然是有價值的。
在訓練的時間中,這些深度模型都是對記憶體有高的要求,並且消耗時間的,這使得它們無法在手機平臺上部署。
如何在不減少準確度的情況下,降低複雜性並獲得快速執行的模型,這是重要的研究方向。
其次,我們發現,CNN運用於新任務的一個主要障礙是:如何選擇合適的超引數?比如學習率、卷積過濾的核大小、層數等等,這需要大量的技術和經驗。
這些超引數存在內部依賴,這會讓調整變得很昂貴。
最近的研究顯示,在學習式深度CNN架構的選擇技巧上,存在巨大的提升空間。
最後,關於CNN,依然缺乏統一的理論。
目前的CNN模型運作模式依然是黑箱。
我們甚至都不知道它是如何工作的,工作原理是什麼。
當下,值得把更多的精力投入到研究CNN的基本規則上去。
同時,正如早期的CNN發展是受到了生物視覺感知機制的啟發,深度CNN和計算機神經科學二者需要進一步的深入研究。
有一些開放的問題,比如,生物學上大腦中的學習方式如何幫助人們設計更加高效的深度模型?帶權重分享的迴歸計算方式是否可以計算人類的視覺皮質等等。
我們希望這篇文章不僅能讓人們更好地理解CNN,同時也能促進CNN領域中未來的研究活動和應用發展Advertisement写评论取消回覆很抱歉,必須登入網站才能發佈留言。
近期文章Spark入門(一)用SparkShell初嘗Spark滋味2019.12.08Spark入門(二)如何用Idea運行我們的Spark項目2019.12.08Spark入門(三)Spark經典的單詞統計2019.12.08Spark入門(四)Spark的map、flatMap、mapToPair2019.12.08Spark入門(五)Spark的reduce和reduceByKey2019.12.08Spark入門(六)Spark的combineByKey、sortBykey2019.12.08Spark入門(七)Spark的intersection、subtract、union和distinct2019.12.08Spark實戰尋找5億次訪問中,訪問次數最多的人2019.12.08Spark實戰搭建我們的Spark分佈式架構2019.12.08【機器學習】深度學習開發環境搭建2019.12.08AdvertisementAdvertisement
延伸文章資訊
- 1卷積神經網路Convolutional Neural Networks - 資料科學・機器 ...
卷積神經網路的運作原理 ... CNN 又被稱為CNNs 或ConvNets,它是目前深度神經網路(deep neural network)領域的發展主力,在圖片辨別上甚至可以做到比人類還精準的...
- 2一文带你了解卷积神经网络CNN的发展史 - 机器之心
本文主要介绍了一些CNN的历史进展。 ... 卷积 神经网络 (Convolutional Neural Network, CNN)是一种 前馈 神经网络 ,它的人工 神经元 可以响应 ...
- 3瞭解CNN這一篇就夠了:卷積神經網路技術及發展 - 程式前沿
卷積神經網路(CNN)是一種常見的深度學習架構,受生物自然視覺認知機制啟發而來。1959年,Hubel & Wiesel [1] 發現,動物視覺皮層細胞負責檢測光學訊號。
- 4一文帶你瞭解卷積神經網路CNN的發展史 - IT人
卷積 神經網路 (Convolutional Neural Network, CNN)是一種 前饋 神經網路 ,它的人工 神經元 可以響應一部分覆蓋範圍內的周圍單元,對於大型 影象處理 ...
- 5卷積神經網路 - 中文百科全書
歷史