怎樣設計最優的卷積神經網絡架構?|NAS原理剖析

2021-01-09 人工智慧遇見磐創

雖然,深度學習在近幾年發展迅速。但是,關於如何才能設計出最優的卷積神經網絡架構這個問題仍在處於探索階段。

其中一大部分原因是因為當前那些取得成功的神經網絡的架構設計原理仍然是一個黑盒。雖然我們有著關於改進神經網絡表現的豐富心得,但其實並沒有真正了解神經網絡是如何達到當前這麼優秀的表現。

關於CNNs的一些線索

我們從如下幾點開始剖析。近期研究提供了一些具體地證據證明這幾點確實可以用來提升CNN的表現:

增加圖像解析度增加網絡深度增加網絡寬度增加跳過連接(密集塊或殘差塊)經驗表明,以上幾種方式是使得CNN之所以取得最優結果的關鍵。增加圖像的解析度可以「餵養」網絡更多的信息去學習;增加網絡寬度與深度使網絡學習到更多的參數。另外,增加「跳過連接」可以增加網絡的複雜性,從而增強網絡的表徵能力。

密集連接塊(DenseNet)

一個寬網絡上的跳過連接(ResNext)

神經架構搜索

NAS是一種尋找最優神經網絡架構的算法。絕大多數NAS算法工作原理類似。

首先,定義一組適用於我們網絡的「構建塊」。然後,嘗試以不同的方式組合這些「構建快」進行訓練。通過這種試錯方式,NAS算法最終能夠確定哪一種「構建快」與哪一種網絡配置可以得到最優結果。

事實證明,這種方法行得通且可以找到最優的預測效果。如NASNet的論文中所示,可以組合出一些奇怪的結構。如下:

通過NAS算法發現的NASNEt塊

這也正是NAS的偉大之處之一,可以讓我們發現一些之前還未探索過的網絡結構。

然而,它也有自己的局限性。由於其從一組固定的「構建快」開始採樣和進行組合,所以我們將不能通過此算法發現新的構建塊。跳過連接也是如此,NASNet只允許含有一次下採樣的跳過連接,但其他類型的連接也同樣值得嘗試。

Facebook的人工智慧研究團隊通過「隨機連接神經網絡(randomly wired neural networks)」對NAS進行新的嘗試。它們的動機是:如果「架構搜索」在固定的塊和連接上表現得很好,那麼在更大的搜索空間下(例如:隨機連接)將會產生一些更優的配置。

隨機連接神經網絡

由於論文作者想要專門研究神經網絡的連接方式,所以他們對網絡結構做了如下限制:

網絡輸入尺寸為224x224網絡塊始終為ReLU-Conv-BatchNorm三項組形式。且三項組中的卷積都是參考自Xception結構中使用的3x3可分離卷積。多組張量的聚合(例如當跳過連接與原連接進行聚合時)均以加權和的方式進行聚合。這些權重具有可學習性與可持續更新性。網絡組成總是保持一致。一般的CNN結構是由多個卷積塊組成,然後通過多次向下採樣,直到最終的softmax分類層。這也已經成為網絡設計的標準。在這些研究實驗中均採用了這種範式。

通用CNN結構範式

ImageNet競賽的標準輸入尺寸為224x224--ImageNet數據集被用來作為一個基線數據集來檢驗「手工網絡」(NAS算法生成的網絡架構)的性能。ReLU-Conv-BatchNorm三項組塊也很常見,而且已經被廣泛證明成為了可以為深度卷積神經網絡帶來最優的效果。

張量聚合的方式不止一種,很多優異的網絡在沒有進行加權的情況下直接進行求和或連結--但不會對性能造成較大的影響。上述表格中描述的這些過去常用的網絡結構同樣也用在了ResNets,DenseNets和NASNets中。

注意,這並不是一個完全的隨機神經網絡。它並不是完全從零開始隨機化。而是在其他組件保持不變的情況下,針對CNN設計過程中一個被稱為「連接(wiring)」的單一組件進行探索。

作者試圖讓讀者明白的一個重要觀點--他們還沒有實現完全意義的隨機化神經網絡,但正開始對組件搜索空間一步一步的進行深入的探索。

在這些約束條件下,各種經典的隨機模型圖被用來生成網絡的隨機連接。

一些隨機連接網絡結構

隨機網絡打開了深度學習探索的大門

本研究的意義在於其探索性思想:拓展NAS算法的搜索空間,尋找新的、更好的網絡設計。雖然研究人員已經發現了一些很棒的設計,但是以手動嘗試的方式遍歷整個搜索空間實際上是不可行的。

這也擴展到了另一觀點:如果我們要擴展搜索空間,我們需要一種擅長搜索的算法(在本例中用的是網絡生成器),。這種算法必須知道要尋找什麼,或者至少類似梯度下降優化算法有著通過設計向優化方向靠攏的趨勢。

架構搜索是深度學習研究的下一個前沿領域。它使我們可以使用算法來發現最優的網絡架構,而不是反覆進行試驗。

目前,在搜索其他組件(在本例中是「連接方式」)時修復一些網絡組件已經成為可能。這將問題簡化為更容易處理的小問題。由於這是我們發現新穎架構的唯一方法,NAS算法應該具備一定程度的隨機性。

下一步是進一步擴展搜索空間和增情搜索算法的隨機性。這意味著隨機搜索思想將擴展到網絡中越來越多的組件上,直到全部網絡組件均可以被算法自動設計好為止。

當實現完全意義的NAS時會發生什麼?它會選擇像2x4這樣的非平方卷積嗎?它會使用反饋循環嗎?網絡變得更簡單還是更複雜?

神經架構搜索是一個令人興奮的新興研究領域。希望搜索算法變得更加具有隨機性從而實現利用隨機化的方式發現創造性的、以前從未想到過的架構。

相關焦點

  • 從聚合-轉移框架淺談卷積神經網絡的架構設計
    早期負責 Momenta 車道線檢測相關模塊,現專注於神經網絡基礎算法研發。以下是李翔在雷鋒網「AI 求職季·AI 工程師 offer 直通車系列直播」欄目的分享內容精選。本次 Paper Reading 我們並沒有關注某些特定的 paper,而是用一個視角對現有的代表性的卷積神經網絡設計進行總結。
  • 改進卷積神經網絡,你需要這14種設計模式
    ,而如何選擇使用這些新架構提升卷積神經網絡的性能就顯得越發重要了。最難優化的參數之一就是學習率(learning rate),它是調節神經網絡訓練的最重要的超參數。學習率太小,可能導致你永遠不會收斂到一個解決方案,學習率太大,可能導致你剛好跳過了最優解。即便是適應性學習率的方法,也可能在計算上過於昂貴,這取決於你的硬體資源。
  • 卷積神經網絡在圖像領域中的發展及存在問題
    深度網絡直到2006年多倫多大學的Geoff Hinton大牛在《Science》雜誌上發表的一篇關於深度置信網(Deep Belief Networks,DBN)的文章,他的方法是層疊很多個受限玻爾茲曼機(Restricted Boltzmann Machine,RBMs)組成的一個深度置信網絡,經過無監督的逐層貪心算法來訓練,解決了局部最優、梯度消失等問題,並在MN1ST
  • 谷歌大腦提出NAS-FPN:一種學會自動架構搜索的特徵金字塔網絡
    標檢測也能用神經架構搜索,這是一個自動搜索的特徵金字塔網絡。神經架構搜索已經在圖像識別上展現出很強的能力,不論是可微架構搜索的速度,還是基於強化學習搜索的準確度,很多時候自動架構搜索已經超越了我們手動設計的版本。與此同時,學習視覺的特徵表示是計算機視覺中的一個基本問題。不論是圖像分類還是目標檢測,抽取圖像特徵才是最首要的。
  • 應用豐富的「卷積神經網絡」技術,怎樣實現了圖像識別?
    (原標題:應用豐富的「卷積神經網絡」技術,怎樣實現了圖像識別?)解決這一問題的方法之一是利用神經網絡。理論上,我們可以利用卷積神經網絡來分析圖像;但實際上從計算的角度來看,這樣做的成本非常高。舉例來說,即使是一個處理一張很小的圖像(假設是30*30像素)的卷積神經網絡,仍需要五十萬的參數和900個輸入。
  • Nature Communications:人工智慧地震信息挖掘——基於高效分類多尺度濾波卷積神經網絡的自動化設計
    耿智等-NC:人工智慧地震信息挖掘——基於高效分類多尺度濾波卷積神經網絡的自動化設計人工神經網絡可以正確學習此類圖像中的所有形態模式,其中許多是基於現行的卷積神經網絡(CNN),而CNN是專門針對計算機視覺中與圖像相關的任務而設計的。與視覺圖像相比,地震反射信號具有本質上的不同:稀疏信號極性變化及有限帶寬。此外,地質特徵的地震響應在波傳播路徑、頻率、幅度和極性方向方面也有所不同。因此基於數據驅動的ANN地震解釋研究是典型的高維稀疏信號的複雜映射問題。
  • 卷積神經網絡數學原理解析
    事實上,我們每天都在使用計算機視覺——當我們用面部解鎖手機或在社交媒體上發照片前使用自動修圖。卷積神經網絡可能是這一巨大成功背後最關鍵的構建模塊。這一次,我們將加深理解神經網絡如何工作於CNNs。出於建議,這篇文章將包括相當複雜的數學方程,如果你不習慣線性代數和微分,請不要氣餒。我的目標不是讓你們記住這些公式,而是讓你們對下面發生的事情有一個直觀的認識。
  • 卷積神經網絡(CNN)新手指南
    卷積神經網絡的確從生物學上的視覺皮層得到啟發,視覺皮層有微小區域的細胞對於特定區域的視野是十分敏感的。1962年,Hubel和 Wiesel發現大腦中的部分神經元只對一定的方向的邊緣做出回應。例如,當暴露在垂直邊緣或者一些當水平或對角線邊緣時,一些神經元才會做出回應。Hubel和 Wiesel發現,所有這些神經元都被架構在一個柱狀結構中,這樣的架構使它們能夠產生視覺感知。
  • 解析卷積神經網絡的應用
    解析卷積神經網絡的應用 貿澤電子 發表於 2019-08-21 15:29:46 目前,人們對性能強大且結構複雜的計算機已是司空見慣。
  • 卷積神經網絡的卷積到底是什麼
    卷積神經網絡是一種特殊的神經網絡結構,是自動駕駛汽車、人臉識別系統等計算機視覺應用的基礎,其中基本的矩陣乘法運算被卷積運算取代。 歷史 卷積神經網絡最初是由福島核電站在1980年引入的,當時名為Neocognitron。
  • 一文讀懂卷積神經網絡工作原理
    卷積神經網絡(Convolutional Neural Network, CNN)是人工神經網絡的一種,是當下語音分析和圖像識別領域的研究熱點。這篇文章用最簡明的語言和最直觀的圖像,帶你入門CNN。準備好了嗎?
  • [獨家]25張圖讓你讀懂神經網絡架構
    原標題:[獨家]25張圖讓你讀懂神經網絡架構 由於新的神經網絡架構無時無刻不在湧現,想要記錄所有的神經網絡是很困難的事情。要把所有這些縮略語指代的網絡(DCIGN,IiLSTM,DCGAN等)都弄清,一開始估計還無從下手。
  • 深度| 逐層剖析,谷歌機器翻譯突破背後的神經網絡架構是怎樣的?
    V1:編碼器-解碼器編碼器-解碼器架構開始了近期的神經機器翻譯趨勢,出現於數年前。如同名字中的含義,該架構包含兩個組件:一個解碼器和一個編碼器。一個詞級的編碼器-解碼器機器翻譯系統,如同下面所描述的:採用一個循環神經網絡,通常是 LSTM 來編碼用語言 A(英語)寫出的語句。
  • 清華大學博士生塗鋒斌:設計神經網絡硬體架構時,我們在思考些什麼...
    國際IT巨頭,如英特爾、谷歌、IBM,都在競相研發神經網絡計算晶片。然而,神經網絡的結構多樣、數據量大、計算量大的特點,給硬體設計帶來了巨大挑戰。因此,在設計面向神經網絡的高性能、高能效硬體架構時,我們需要思考清楚以下三個問題:雷鋒網本期公開課特邀請到清華大學微納電子系四年級博士生塗鋒斌,為我們分享神經網絡硬體架構的設計經驗。
  • 卷積神經網絡超詳細總結
    1)網絡結構**卷積神經網絡整體架構:**卷積神經網絡是一種多層的監督學習神經網絡,隱含層的卷積層和池採樣層是實現卷積神經網絡特徵提取功能的核心模塊。該網絡模型通過採用梯度下降法最小化損失函數對網絡中的權重參數逐層反向調節,通過頻繁的迭代訓練提高網絡的精度。
  • 反思卷積神經網絡:圖像角度泛化上的困難重重
    在無噪聲且結果可預測的數據集環境下,所設計出的算法和方法很可能不符合現實情況而導致表現不佳。 事實也確實如此。卷積神經網絡特別容易產生"對抗性"輸入,或對輸入進行小改動,而這些改動會有意或無意地幹擾神經網絡正常工作。
  • 卷積神經網絡(CNN)介紹與實踐
    - 來源:http://cs231n.github.io/classification/為了「教會」一種算法如何識別圖像中的對象,我們使用特定類型的人工神經網絡:卷積神經網絡(CNN)。他們的名字源於網絡中最重要的一個操作:卷積。卷積神經網絡受到大腦的啟發。
  • 深度學習入門:淺析卷積神經網絡
    至今已有數種深度學習方法,如卷積神經網絡(CNN)、自編碼神經網絡(包括Auto encoder和Sparse Coding)和深度置信網絡(DBN),並在各個領域中取得了極好的效果。根據廣義線性模型的假設,所給模型在給定x的條件下y的分布,通過最大化似然函數來求解最優參數,計算K個概率進行分類。
  • 卷積神經網絡中的參數共享/權重複制
    但是了解這個簡單的概念有助於更廣泛地理解卷積神經網絡的內部。卷積神經網絡(cnn)能夠使那些通過網絡饋送的圖像在進行仿射變換時具有不變性。 這個特點提供了識別偏移圖案、識別傾斜或輕微扭曲的圖像的能力。仿射不變性的這些特徵是由於CNN架構的三個主要屬性而引入的。
  • 基於卷積神經網絡的目標檢測算法簡介
    為什麼說使用設計的特徵存在缺點?什麼是卷積神經網絡?卷積神經網絡是一個層次模型,主要包括輸入層,卷積層,池化層、全連接層以及輸出層。卷積神經網絡是專門針對圖像而設計,主要特點在於卷積層的特徵是由前一層的局部特徵通過卷積共享的權重得到。