了解CNN這一篇就夠了:卷積神經網絡技術及發展

2020-12-11 和訊

    本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

1 新智元編譯

  來源:arXiv.org

  譯者:聞菲、胡祥傑

  【新智元導讀】深度學習很火,說起深度學習中一個很重要的概念——卷積神經網絡(CNN)似乎也人人皆知。不過,CNN究竟是什麼,涉及哪些概念,經過如何發展,真正要有邏輯地歸納一遍,估計不少人都說不清。日前,南洋理工大學研究人員梳理CNN發展歷史,從基礎組成部分講起,介紹並探討CNN在視覺識別方面的原理及應用,是系統深入理解CNN的好文。

  Recent Advances in Convolutional Neural Networks

  卷積神經網絡進展

  Jiuxiang Gu, Zhenhua Wang, Jason Kuen, Lianyang Ma, Amir Shahroudy, Bing Shuai, Ting Liu, Xingxing Wang, Gang Wang

  關注新智元(AI_era),對話框輸入「0807」下載論文

  摘要

  過去幾年,深度學習在解決諸如視覺識別、語音識別和自然語言處理等很多問題方面都表現出色。在不同類型的神經網絡當中,卷積神經網絡是得到最深入研究的。早期由於缺乏訓練數據和計算能力,要在不產生過擬合的情況下訓練高性能卷積神經網絡是很困難的。標記數據和近來GPU的發展,使得卷積神經網絡研究湧現並取得一流結果。本文中,我們將縱覽卷積神經網絡近來發展,同時介紹卷積神經網絡在視覺識別方面的一些應用。

  引言

  卷積神經網絡(CNN)是一種常見的深度學習架構,受生物自然視覺認知機制啟發而來。1959年,Hubel & Wiesel [1] 發現,動物視覺皮層細胞負責檢測光學信號。受此啟發,1980年 Kunihiko Fukushima 提出了CNN的前身——neocognitron 。

  20世紀 90 年代,LeCun et al. [3] 等人發表論文,確立了CNN的現代結構,後來又對其進行完善。他們設計了一種多層的人工神經網絡,取名叫做LeNet-5,可以對手寫數字做分類。和其他神經網絡一樣, LeNet-5 也能使用 backpropagation 算法訓練。

  CNN能夠得出原始圖像的有效表徵,這使得CNN能夠直接從原始像素中,經過極少的預處理,識別視覺上面的規律。然而,由於當時缺乏大規模訓練數據,計算機的計算能力也跟不上,LeNet-5 對於複雜問題的處理結果並不理想。

  2006年起,人們設計了很多方法,想要克服難以訓練深度CNN的困難。其中,最著名的是 Krizhevsky et al.提出了一個經典的CNN 結構,並在圖像識別任務上取得了重大突破。其方法的整體框架叫做 AlexNet,與 LeNet-5 類似,但要更加深一些。

  AlexNet 取得成功後,研究人員又提出了其他的完善方法,其中最著名的要數 ZFNet [7], VGGNet [8], GoogleNet [9] 和 ResNet [10] 這四種。從結構看,CNN 發展的一個方向就是層數變得更多,ILSVRC 2015 冠軍 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)網絡中的網絡(Network in Network,NIN):由 Lin et al. [21] 提出的基本網絡結構

  2) Inception module: 由 Szegedy et al. [9] 提出,是 NIN 的拓展

  2. 池化層

  池化層是CNN的重要組成部分,通過減少卷積層之間的連接,降低運算複雜程度。以下是常用的幾種循環方法:

  1)Lp 池化:Lp 池化是建立在複雜細胞運行機制的基礎上,受生物啟發而來 [24] [25]

  2) 混合池化:受隨機Dropout [16] 和 DropConnect [28], Yu et al. 啟發而來

  3)隨機池化:隨機循環 [30] 是受 drptout 啟發而來的方法

  4)Spectral 池化

  3. 激活函數

  常用的非線性激活函數有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見於全連結層,後者relu常見於卷積層。

  1) ReLU

  2) Leaky ReLU

  3) Parametric ReLU

  4) Randomized ReLU

  5) ELU

  6) Maxout:

  7) Probout

4. Loss 函數

  1) Softmax loss

  2) Hinge loss

  3) Contrastive loss

  5. 正則化

1)DropOut

  2) DropConnect

  6. 優化

  1) 初始化權重

  2) 隨機梯度下降

  3) 批量標準化

  4) Shortcut 連接

  CNN 應用

  A 圖像分類

  B 物體檢測

  C 物體追蹤

  D 姿態預估(Pose estimatation)

  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領域中未來的研究活動和應用發展。

新智元Top10智能汽車創客大賽招募!

  新智元於7月11日啟動2016年【新智元100】人工智慧創業公司評選,在人工智慧概念誕生60周年之際,尋找中國最具競爭力的人工智慧創業企業。

  智能駕駛技術是汽車行業的重點發展方向之一,同時也是人工智慧相關產業創新落地的重要賽道之一。為此新智元聯合

北京

中汽四方共同舉辦「新智元Top10智能汽車創客大賽」,共同招募智能汽車相關優質創業公司,並聯合組織人工智慧技術專家、傳統汽車行業技術專家、關注智能汽車領域的知名風投機構,共同評審並篩選出Top 10進入決賽,在2016年10月16日「國際智能網聯汽車發展合作論壇」期間,進行路演、頒獎及展覽活動。

    文章來源:微信公眾號新智元

(責任編輯:馬郡 HN022)

相關焦點

  • 典型的深度學習算法(一):卷積神經網絡(CNN)
    通過上一篇文章,相信大家對深度學習的概念、原理已經有了大致了解,近期企通查將會對深度學習中的幾種典型算法進行介紹。在深度學習領域中,已經驗證的典型成熟算法有卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)、深度強化學習(DRL)等,下面企通查將帶領大家對典型的深度學習算法之一——卷積神經網絡(CNN)一探究竟。
  • 人工智慧之卷積神經網絡(CNN)
    ^_^本文引用地址:http://www.eepw.com.cn/article/201806/381807.htm  20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的複雜性,繼而提出了卷積神經網絡CNN(Convolutional Neural Networks)。
  • 如何入手卷積神經網絡
    本文從基礎入手,介紹了卷積網絡的基本原理以及相關的其它技術,並利用卷積網絡做了一個簡單項目作為示例參考。想入手 CNN 的朋友不可錯過~首先,我們先看看下面這張照片:卷積神經網絡之所以優於其它深度神經網絡是由於它特殊的操作。
  • CNN卷積神經網絡實例(基於pytorch)
    1.關於卷積神經網絡卷積神經網絡(Convolutional Neural Network,CNN) 是一種具有局部連接、權重共享等特徵的深層前饋神經網絡
  • 圖解:卷積神經網絡的數學原理分析
    卷積神經網絡可能是取得巨大成功的最關鍵的基礎。這次,我們將加深對神經網絡如何在CNN上工作的理解。出於建議,本文將包含非常複雜的數學方程式。如果您不習慣線性代數和微分,請不要氣our。我的目標不是讓您記住這些公式,而是讓您直觀地了解下面發生的事情。 在過去,我們知道了稱為緊密連接的神經網絡。這些網絡的神經元被分為幾組以形成連續的層。每個這樣的神經元連接到相鄰層中的每個神經元。
  • 理解神經網絡:從神經元到RNN、CNN、深度學習
    神經網絡 到目前為止,我們已經介紹完了神經元和激活函數,它們一起是構建任意神經網絡的基本構件。現在,我們更深入的了解什麼是神經網絡,以及它們不同的種類。我強烈的建議你,如果對於神經元和激活函數有任何的疑惑,回過頭去複習一下它們。
  • 【乾貨】基於pytorch的CNN、LSTM神經網絡模型調參小結
    的結合還有多層多通道CNN、LSTM、BiLSTM等多個神經網絡模型的的實現。Demo Site:  https://github.com/bamtercelboo/cnn-lstm-bilstm-deepcnn-clstm-in-pytorchPytorch是一個較新的深度學習框架,是一個 Python 優先的深度學習框架,能夠在強大的 GPU 加速基礎上實現張量和動態神經網絡。
  • AI入門:卷積神經網絡
    講到AI不得不講深度學習,而講到深度學習,又不能不講卷積神經網絡。如果把深度學習比作中國的網際網路界,那捲積神經網絡和循環神經網絡就是騰訊和阿里級別的地位。今天我們主要討論的卷積神經網絡,到底卷積神經網絡能解決什麼問題,它的結構是怎樣的?是怎麼學習的?應用在哪些具體的產品上?本文將為大家一一解答。
  • 看了這篇文章,了解深度卷積神經網絡在目標檢測中的進展
    近些年來,深度卷積神經網絡(DCNN)在圖像分類和識別上取得了很顯著的提高。回顧從2014到2016這兩年多的時間,先後湧現出了R-CNN,FastR-CNN,FasterR-CNN,ION,HyperNet,SDP-CRC,YOLO,G-CNN,SSD等越來越快速和準確的目標檢測方法。
  • 了解卷積神經網絡的原理與基本結構
    卷積神經網絡與普通神經網絡的區別在於,卷積神經網絡包含了一個由卷積層和子採樣層構成的特徵抽取器。在卷積神經網絡的卷積層中,一個神經元只與部分鄰層神經元連接。子採樣可以看作一種特殊的卷積過程。卷積和子採樣大大簡化了模型複雜度,減少了模型的參數。其中,該單元也可以被稱作是Logistic回歸模型。當將多個單元組合起來並具有分層結構時,就形成了神經網絡模型。下圖展示了一個具有一個隱含層的神經網絡。比較類似的,可以拓展到有2,3,4,5,…個隱含層。
  • 一文讓你了解卷積神經網絡
    卷積神經網絡(Convolutional Neural Network,CNN)是一種前饋神經網絡,它的人工神經元可以響應一部分覆蓋範圍內的周圍單元,對於大型圖像處理有出色表現。 它包括卷積層(convolutional layer)和池化層(pooling layer)。對比:卷積神經網絡、全連接神經網絡
  • 最全的DNN概述論文:詳解前饋、卷積和循環神經網絡技術
    且該文詳細介紹了每一種網絡的基本構建塊,其包括了基本架構、傳播方式、連接方式、激活函數、反向傳播的應用和各種優化算法的原理。本文不僅介紹了這三種神經網絡的基本原理與概念,同時還用數學表達式正式地定義了這些概念。這是一份十分全面的神經網絡綜述論文,機器之心簡要摘取了部分章節,更詳細和完整的論述請查看原論文。
  • 深度 | 從AlexNet到殘差網絡,理解卷積神經網絡的不同架構
    優秀的卷積神經網絡具有數百萬個參數和大量隱藏層。事實上,一個錯誤的經驗法則是:「隱藏層的數量越多,卷積神經網絡越好」。流行的卷積神經網絡有 AlexNet、VGG、Inception、ResNet。這些網絡為什麼性能如此好?它們是如何設計的呢?為什麼它們的結構是現在這樣?本文給出了一個簡單而全面的概述。這些問題的答案並不簡單,無法全部涵蓋在一篇博客中。
  • 7大類卷積神經網絡(CNN)創新綜述
    (CNN)是一種特殊類型的神經網絡,在各種競賽基準上表現出了當前最優結果。卷積特徵圖的激活函數定義為等式(3)。這表明寬度和深度一樣是定義學習原則的一個重要參數。Lu 等人和 Hanin & Sellke 最近表明,帶有線性整流激活函數的神經網絡要足夠寬才能隨著深度增加保持通用的近似特性。並且,如果網絡的最大寬度不大於輸入維度,緊緻集上的連續函數類無法被任意深度的網絡很好地近似。因此,多層堆疊(增加層)可能不會增加神經網絡的表徵能力。
  • 【深度學習】卷積神經網絡-CNN簡單理論介紹
    前言眾所周知,卷積神經網絡(Convolutional Neural Network, CNN)通常是被用在圖像識別領域的,其實還可以應用於語音識別,文本分類等多個領域。寫這篇文章主要是為了介紹TextCnn文本分類模型,當然也會詳細介紹CNN的具體內容,並輔以相關的案例。
  • 從圖嵌入到圖卷積:深度圖神經網絡的技術發展史
    而另一類數據,非歐空間中的圖數據,其數據的複雜性對現有的機器學習算法提出了很大的挑戰。圖神經網絡是處理前述非歐空間數據的利器,目前在社交網絡分析、電商推薦、文本檢索等場景發揮著重要的作用。本文將圍繞圖神經網絡的兩個典型方向:圖嵌入神經網絡及圖卷積神經網絡,通過對比不同時間點提出的圖神經網絡技術,簡要介紹圖神經網絡的發展歷程及其基本原理。
  • 深入了解VGG卷積神經網絡濾波器
    這是 VGG16 網絡的內部結構。許多卷積層與最大池化層交替。一個平坦(flatten)層連接著三個密集層。其中最後一層被稱為預測層,這個圖層應該能夠檢測高級特徵,比如面部特徵,在此例中,是鳥的形狀。
  • 李理:詳解卷積神經網絡
    本系列文章面向深度學習研發者,希望通過Image Caption Generation,一個有意思的具體任務,深入淺出地介紹深度學習的知識。
  • 詳解卷積神經網絡
    接下來介紹一種非常重要的神經網絡——卷積神經網絡。這種神經網絡在計算機視覺領域取得了重大的成功,而且在自然語言處理等其它領域也有很好的應用。深度學習受到大家的關注很大一個原因就是Alex等人實現的AlexNet(一種深度卷積神經網絡)在LSVRC-2010 ImageNet這個比賽中取得了非常好的成績。此後,卷積神經網絡及其變種被廣泛應用於各種圖像相關任務。
  • CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)的內部網絡結構有什麼區別?
    在實際應用中,所謂的深度神經網絡DNN,往往融合了多種已知的結構,包括卷積層或是LSTM單元。這裡的DNN應該特指全連接的神經元結構,並不包含卷積單元或是時間上的關聯。因此,如果一定要將DNN、CNN、RNN等進行對比,也未嘗不可。其實,如果我們順著神經網絡技術發展的脈絡,就很容易弄清這幾種網絡結構發明的初衷,和他們之間本質的區別,希望對大家有所幫助。