解讀| 如何用進化方法優化大規模圖像分類神經網絡?

2020-12-05 機器之心Pro

作者:Angulia Chao

參與:Joni、侯韻楚、高振

讓機器具備生物一樣的進化能力一直是計算機科學的一個熱門研究領域,今年三月份,谷歌的多位研究者提出了一種圖像分類器的大規模進化方法,機器之心也曾報導過這項研究,參閱:《深度 | 谷歌和 OpenAI 新研究:如何使用達爾文進化論輔助設計人工智慧算法?》。研究發布之後,機器之心的技術分析師又對這項重要研究進行了更加深度細緻的解讀。

論文:圖像分類器的大規模進化(Large-Scale Evolution of Image Classifiers)

https://arxiv.org/pdf/1703.01041.pdf

摘要:神經網絡已被證明可以有效地解決難題,但它們的架構設計起來頗具挑戰性,即便只是圖像分類問題也如此。進化算法(evolutionary algorithms)提供了一種能夠自動發現這類網絡的技術。儘管其計算需求顯著,但是設計出能與大型人工設計的架構相媲美的進化模型如今已非天方夜譚。我們以空前的規模採用了簡單的進化技術,並從平凡的初始條件出發,來發現可用於 CIFAR-10 和 CIFAR-100 數據集的模型。為此,我們使用直觀的新型變異算子(mutation operators)來導航大型搜索空間。我們認為,演化一旦開始,其輸出就應當是一個經過完整訓練的模型,不需任何人進行參與。這項研究尤其重要的是結果的可重複性、可變性以及計算要求。

解讀

不論是在學術研究還是產業應用方面,神經網絡都展現了強大的能力。為了解決不同的實際問題,多種網絡架構可根據特定的任務而建立。然而如今所創建的有效架構均為人工設計的成果,因此本文為解決神經網絡圖像分類方面的架構優化問題提出了新的方法。在進化算法中,所提出的方法通過操控直觀突變,來自動適應最優的網絡架構。此外,整個優化過程並不需要人為幹預來獲得經過完整訓練的模型。為了深入了解,我們將會介紹神經網絡中應用演化算法的細節,並將其與之前發表的論文進行比較。最後將會對本研究的整體質量進行簡要評估。

在圖像分類領域,只要擁有足夠的訓練數據,神經網絡對於多個困難任務而言便是十分成功的分類器,但只有經過研究人員與工程師多年的研究和分析,才能實現表現出色的網絡模型。因而以自動方式設計神經網絡架構成為熱議。若要實現架構的自動設計,一種直觀的方法便是「搜索」。因此我們應用了進化算法的思想:受到生物演化機制的啟發,算法將候選解決方案作為大群體中的個體,而後定義適應度函數,以度量每個候選解決方案的質量。我們還應用了迭代選擇過程,其中相對最優的個體將作為「父代」進行繁殖,通過變異和重組在群體中產生新的後代。通過重複上述操作,子代會繼承父代的優勢,而突變則進一步提供了群體多樣性。依次,我們終將搜索出最佳解決方案。

為了協助優化神經網絡,神經演化最初僅用於進化神經網絡的連接權重。以 NEAT(增強拓撲的神經演化)算法(Stanley 和 Miikkulainen)為例,它需要改變權重、增加現有節點之間的權重連接以及分割現有連接時插入節點這三種變異,在超參數搜索中也應用了其他類似的方法。但與如今廣泛使用的神經網絡(如 AlexNet 與 VGGnet)相比,上述方法僅適用於相當小規模的網絡。這些傳統方法側重於演化過程的效率而非規模,故而不適於最先進的網絡優化。另一方面,非演化性神經發現方法則更適合如今的「深度」網絡。因此我們使用了其他替代方法(如貝葉斯優化和強化學習)來優化深度模型,儘管它們的缺陷很明顯——網絡層數仍需由研究人員證明,而非算法本身。故而所提出的研究強調了在沒有人為幹涉的條件下,其在研究網絡架構的大規模搜索與基本初始條件方面的新穎性。實驗比較如下:

表 1. 與人工設計的架構相對比。「C10+」和「C100+」這兩列分別表示經過數據增強的 CIFAR-10 和 CIFAR-100 數據集的測試精度。「Reachable?」這一列則表示給定的人工設計的模型是否位於搜索空間內。「-」表示 Huang 等人的論文(2016b)未報告該值(並非原作者)。這張表大部分基於 Huang 等人的論文(2016a)。

表 2. 與自動發現的架構相對比。「C10+」和「C100+」分別包含經過數據增強的 CIFAR-10 和 CIFAR-100 數據集的測試精度。「-」表示該信息未報告或不為我們所知。請參考表 1 包括先進技術的人工設計結果。「離散參數」表明只能從少量值中挑選出參數(如從 {1,2,4} 中進行選擇)。

由表 1 和表 2 可得,根據所提出的演化方法,C10+以及 C100+的分類性能超過了人工方法和其他自動發現的架構,並不需經過後處理階段。

下文將對大規模演化方法做出詳細闡述。

根據演化算法的工作原理,該方法將經過訓練的架構視為個體。因此,我們能夠創建具有多個模型的群體,並將適應度值視為驗證集的精確度。本文建議使用圖形作為數據結構來編碼個體的基本架構。在這個設計圖中,頂點表示 3 級張量,這在卷積神經網絡中十分常見:使兩個維度作為圖像的空間坐標,而第三個張量表示 RGB 顏色通道;圖形的邊緣則表示連接、卷積或可變參數。隨後我們通過刪除低適應度值模型來應用進化規則,並選擇最優的父代來產生新的個體。在繁殖過程中,為了增加個體多樣性,我們也會使所選父代的複製版產生突變,接著會在大型搜索空間中重複進行隨機個體的成對比賽,以尋得最終的最優子代。對於具體的規模實現,我們已經開發了大規模並行的無鎖基礎設施。不同的計算機將進行異步操作,並在表示個體的文件目錄之下,依靠共享文件系統進行通信,移除和垃圾回收也將被用於處理計算效率問題。此外,繁殖過程對整個群體進行了演變。變異操作也會從預定集中隨機選擇。變異操作包括:

更改學習率(下文會列出抽樣細節)。身份(實際是指「保持訓練」)。重設權重(如 He et al.(2015)的樣本)。插入卷積(在「卷積主幹」中的隨機位置插入卷積,如圖 1 所示。插入的卷積具有 3×3 的濾波器,隨機步長為 1 或 2,信道數量與輸入相同。可以應用批量歸一化及 ReLU 激活,也可不進行隨機使用)。消除卷積改變步長(僅允許冪為 2 的步長)改變任一卷積的信道數。過濾器尺寸(水平或垂直方向隨機,並隨機選擇卷積,但僅為奇數值)插入一對一(插入一對一或身份連接,類似於插入卷積突變)添加跳過(隨機層之間的身份)刪除跳過(刪除隨機跳過)

在突變過程中,所有參數都會產生一個密集的搜索空間,這意味著任何參數都不存在上限。因此所有的模型深度都能夠實現。參數的這種無限性引起了對可能存在的真正大型架構集的探索。換言之,神經網絡的參數與架構都能夠在沒有人為幹預的條件下演化。

經過對理論背景的闡釋,我們逐步介紹了將要做的實驗的初始設置與驗證策略。眾所周知,在初始化方面,即便是一個經過訓練的卷積神經網絡也屬於強分類器,它還可能在實驗中達到相對較高的精確度,因此本文會從簡單個體所組成的群體出發。這些個體不包含卷積以及在分類方面性能不佳的網絡,同時其學習率會被初始化為很大的值:0.1。這種設置會強制個體進行學習,使強分類器進行演變,並能通過變異進行自我發現;同時實驗可以避免「操控」,進而大獲成功。

加速演化的另一種策略便是權重繼承。此處的繼承是指,只要有可能,個體便可繼承父代的部分或全部權重。在報告方法中,每次指的都是「最佳模式」。除了在一個實驗中選擇最佳模型,具有最高驗證精確度的模型還試圖在所有實驗中選擇「最佳實驗」。

除了訓練和測試策略,計算成本是實驗的另一個重要方面。它由 TensorFlow 實現,其中基因變異和卷積可被視為 TF(TensorFlow)操作。對於每一個 TF 操作,我們都會預測所需浮點運算(FLOP)的理論數,並在給定每個個體後分配計算成本:

其中 F 表示用於訓練和驗證的 FLOP,E 表示正在運行的時期,N 表示訓練和驗證的樣本數量。此外,每個實驗的計算成本是其全部個體成本之和。

下一步是去實現上文提到的算法。每個實驗需要在幾天內演變出一個群體,如下圖所示:

圖 1. 演化實驗進展。每個點代表群體中的個體。藍點(黑色,右上)表示存活個體,其餘個體已被殺死。四個圖表展示了發現的例子。這些對應於最優的個體(最右)以及它們的三個祖先。最優個體通過其驗證精確度進行選擇。演化有時會在不存在任何非線性的區域(「C」,白色背景)之間堆疊卷積,這在數學上與單個線性運算相同。一些卷積則與典型的人工設計架構不同,其後伴隨著多個非線性函數(「C + BN + R + BN + R + ...」,橙色背景)。

在訓練階段之後,所提出的方法在 CIFAR-10 數據集上使用了 9×10^19 FLOPS,使精確度達到了 94%,隨後我們應用了相同的神經網絡進化算法,其參數是 CIFAR-100 中使用 7×10^19 FLOPS,使精確度達到 76.3% 時的參數。我們所料不錯,這兩個數據集的結果與其他最先進的人工設計結果相比頗具競爭力。

我們還對多個實驗中的結果進行了統計分析,其演化進展如下圖所示:

圖 2. 結果和控制項的可重複性。本圖中,時間 t 處的垂直軸被定義為在 t 時刻或之前存活的具有最高驗證精確度個體的測試精確度。插圖了放大主圖的一部分。這條曲線所顯示的各實驗的進展情況如下。頂線(藍色實線)顯示了 5 次大規模演化實驗的平均測試精確度,其周圍陰影區域的寬度為±2s(插圖更為清晰)。下一行(主圖和插圖中的橙色虛線)則表示禁用權重繼承時的單一實驗,因此每個個體都需從隨機權重中進行訓練。最低位的曲線(點劃線)是隨機搜索控制項。所有實驗使用的硬體數量與類型都相同,而從驗證到測試集的泛化中出現的少量噪聲則解釋了曲線並非單調增加的原因。±2s 區域的窄寬度(主圖和插圖)則表明演化實驗中得到高精確度具備可重複性。

在分析時,它總結出了一個用於清查的大型搜索空間,來得到更好的最優解決方案。同時,突變率的適當增加有助於避免局部最小值。另一方面,當表示訓練步驟號的元參數 T 增大時,精確度便會增加。此外,更大的訓練步驟意味著,個體需經過更少的身份突變來達到給定的訓練水平。

圖 3. 對元參數的依賴。在這兩幅圖中,每個圓圈表示完整演化實驗的結果。兩個垂直軸則表示實驗結束時具有最高驗證精確度個體的測試精確度。所有群體的演化時間相同。每個水平軸的值存在 5 個數據點。左側為群體規模的影響。為了節省資源,這些實驗的個體訓練步驟數只有 2560 步。能夠發現,精確度隨著群體規模的增大而增加。右側為個體訓練步驟數量的影響。可以觀察到隨著步驟的增多,精確度將如何增加。

同時,其他的參數設置技巧也被應用於進一步探索,其性能如下:

圖 4. 避免局部最優。這幾幅圖顯示了兩次演化實驗的進展,而下述事件發生在演化中期。這些事件使群體能夠避免被困在局部最優中。在這兩幅圖中,每個點代表一個個體。這些實驗使用小規模群體與較少的訓練步驟,這 2560 個個體是主實驗。這兩種情況都使群體更容易受困,消耗的計算資源也更少。垂直軸是進化算法中舉足輕重的驗證精確度(或適應度)。上部:個體數為 100 的群體通過利用突變率上升的時期,成功避免局部最優的示例(第 5 節)。群體向高原期演變,每次繁殖的正常情況是突變為 1(左),隨後使突變率上升,使每次繁殖的突變為 5(中間),接著,再次將每次繁殖的突變改為 1(右)。可以發現,群體最終避免了最初的高原期。底部:個體數為 50 的群體通過重設權重,成功避免局部最優的示例(第 5 節)。權重分別在三個中間刻度的標記處進行了 3 次重設,每次重設後,群體都會達到精確度更高的新高原期。

綜上,本文提出了一種用於大規模搜索的新型神經演化算法,其新穎性在於它能夠處理相當大的神經網絡(如 CNN 等)。由於該方法使用了新的變異策略,故而在分類任務中極具競爭力;同時,經過訓練的模型獲得了良好的轉移能力(從 CIFAR-10 轉移到 CIFAR-100)。但考慮到在特定任務中,通用應用不具備多個並行的高性能計算機,因而存在計算成本昂貴的缺點。此外還需考慮到,如今只用一個功能強大的 CNN 分類器便可輕鬆完成分類任務。詳盡的搜索似乎並不必要,因為它花費雖多,卻只能提升一點點精確度。但若這個方法能夠擴展到適應多個任務(如具有改良空間的分割和檢測),這個嘗試便是良好開端,並且頗具潛力。

相關焦點

  • AutoML新進展:用進化算法發現神經網絡架構
    除了基於學習的方法(例如強化學習)之外,我們想知道是否可以使用我們的計算資源以前所未有的規模進行圖像分類器的編程演化。我們能否以最少的專家參與達成解決方案,今天的人工進化神經網絡能有多好的表現呢?我們通過兩篇論文來解決這些問題。  在ICML 2017上發表的「圖像分類器的大規模演化」中,我們用簡單的構建模塊和初始條件建立了一個演化過程。
  • ICCV 2019 論文解讀:用圖神經網絡改善視頻的多標籤分類
    作者 | 王磊本文介紹了汽車之家團隊在ICCV 2019一篇關於視頻理解論文相關的工作。針對視頻多標籤分類的問題,論文提出了將視頻多標籤之間相關性特徵加入到網絡之中,結果證明該方法可以顯著的提高視頻多標籤分類效果。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    舉個例子,計算機視覺科學家花了十年時間開發、調試一種名為SIFT的功能,可以支持圖像分類和其他使用線性方法的視覺任務。但之後,神經網絡出現了,篩選功能變得不再必要,作為訓練的一部分,神經網絡的解決方法是讓這些功能自動化。但是我認為,現在說神經網絡可以去到所有功能建設技術似乎還為時過早。而且,我也不認為會發生這種情況,線性模型和優秀的人為驅動功能引擎總會有它的一席之地。
  • TPU加AutoML:50美元快速訓練高效的ImageNet圖像分類網絡
    昨日,Jeff Dean 在推特上表示他們在 ImageNet 圖像分類上發布了新的 DAWNBench 結果,新型 AmoebaNet-D 網絡在 TPU 上實現了最低的訓練時間和最少的訓練成本。在這一個基準測試上,基於進化策略的 DAWNBench 要比殘差網絡效果更好,且訓練成本降低了一倍。
  • 如何用Python和深度神經網絡識別圖像?
    沒有機器對圖像的辨識,能做到嗎?你的好友可能(不止一次)給你演示如何用新買的iPhone X做面部識別解鎖了吧?沒有機器對圖像的辨識,能做到嗎?一個有用的規律是,隨著層數不斷向右推進,一般結果圖像(其實正規地說,應該叫做矩陣)會變得越來越小,但是層數會變得越來越多。只有這樣,我們才能把圖片中的規律信息抽取出來,並且儘量掌握足夠多的模式。如果你還是覺得不過癮,請訪問這個網站。它為你生動解析了卷積神經網絡中,各個層次上到底發生了什麼。
  • 40納秒完成圖像分類,圖像傳感器自帶神經網絡登上Nature
    過去,我們做圖像分類都是分成好幾步:先用傳感器收集圖像模擬信號,數模轉換後再交給計算機處理。整個過程既耗能又費時,就像眼睛把圖像傳給大腦。試想一下,如果人類眼睛可以直接處理圖像——不用勞煩大腦,那視覺圖像信息的處理速度豈不是可以大大提升?
  • 人工智慧神經網絡和生物大腦有什麼區別 神經網絡將如何發展
    ,例如人工神經網絡設法從圖像中提取低級和高級特徵。在監督式學習中,在人工標記的數據上訓練神經網絡(例如上述示例),這些差異變得更加明顯。扎多爾觀察到:「儘管這次訓練的最終結果是一種人工神經網絡,其能力至少在表面上模仿了人類對圖像進行分類的能力,但是人工系統的學習過程與新生兒的學習過程幾乎沒有相似之處。」
  • IBM Research AI團隊用大規模的模擬存儲器陣列訓練深度神經網絡
    打開APP IBM Research AI團隊用大規模的模擬存儲器陣列訓練深度神經網絡 李倩 發表於 2018-06-16 16:15:00
  • 神經進化:一種不一樣的深度學習
    具體而言,就像大自然通過突變、交叉或移除一些潛在的遺傳密碼來提高大腦的功能一樣,人工神經網絡通過進化算法能夠產生越來越好的拓撲、權重和超參數。簡單的說就是將進化的思想使用到神經網絡參數優化的更迭中。神經進化神經進化是一種機器學習技術,它使用基於群體的優化方法能夠不斷提高群體中每個神經網絡的質量,從而根據其要解決的問題生成越來越好的神經網絡。
  • 如何用自動機器學習實現神經網絡進化
    對大多數從事機器學習工作的人來說,設計一個神經網絡無異於製作一項藝術作品。神經網絡通常始於一個常見的架構,然後我們需要對參數不斷地進行調整和優化,直到找到一個好的組合層、激活函數、正則化器和優化參數。在一些知名的神經網絡架構,如VGG、Inception、ResNets、DenseNets等的指導下,我們需要對網絡的變量進行重複的操作,直到網絡達到我們期望的速度與準確度。
  • 圖像傳感器運行神經網絡!實現納秒級時間內圖像分類,或將推進邊緣...
    近日,奧地利維也納工業大學光子學研究所 Lukas Mennel 博士等人研發的一種超高速機器視覺設備——自帶神經網絡的圖像傳感器,將圖像處理速度提升了幾十萬倍。,經參數調優訓練神經網絡。神經網絡輸入層接收編碼簡單物理元素的信號(點、線),隨後這些信號優化為中級特徵(簡單形狀),最終在輸出層上形成圖像(3D 形狀);Lukas Mennel 團隊圖像傳感器處理過程(下圖 b 部分):晶片上的互連傳感器(圖中的正方形)收集信號,並用作人工神經網絡識別簡單特徵,減少傳感器和外部電路之間的冗餘數據移動。
  • 最強大腦皮層神經網絡重建 揭哺乳動物最大神經線路圖
    此前,人類只知大腦神經元的「樣子」,現在,哺乳動物神經元如何連接——首次得到揭秘,並實現了更大量級的大腦皮層神經網絡的重建。並且AI的方法在其中發揮重要作用,研究者還說,這種突破還可能進一步為AI發展提供指導:「揭開生物神經網絡連接秘密,或許可以進一步探明大腦高效計算原理。
  • 雜談CNN:如何通過優化求解輸入圖像
    機器學習和優化問題很多機器學習方法可以歸結為優化問題,對於一個參數模型,比如神經網絡,用 y=f(x;θ) 來表示的話,訓練模型其實就是下面的參數優化問題:其中 L 是loss function,比如神經網絡中分類常用的 cross-entropy。CNN學到了什麼?
  • 深度卷積神經網絡CNNs的多GPU並行框架 及其在圖像識別的應用
    1.CNNs模型並行導論1.1.典型應用分析:圖像識別 圖像識別是深度卷積神經網絡獲得成功的一個典型應用範例。 圖1揭示了一個具有5個卷積層和3個全連接層的深度卷積神經網絡,該模型可應用於圖像分類。
  • 一份完全解讀:是什麼使神經網絡變成圖神經網絡?
    本文將就「為什麼圖有用」、「為什麼很難在圖上定義卷積」、「是什麼使神經網絡成為了圖神經網絡」這些問題進行討論。首先,讓我們簡單回顧一下什麼是圖?圖 G 是由有向或無向邊連接的一組節點(頂點)。節點和邊通常是由專家依據知識經驗或是對問題的直覺進行設置的。
  • 詳解凸優化、圖神經網絡、強化學習、貝葉斯方法等四大主題
    在本期訓練營(第四期)中我們對內容做了大幅度的更新,一方面新增了對前沿主題的講解如圖神經網絡(GCN,GAT等),另外一方面對核心部分(如凸優化、強化學習)加大了對理論層面上的深度。    傅立葉變化    卷積操作    Time Domain, Spectral Domain    Laplacian, Graph Laplacian    第七周:譜域的圖神經網絡    卷積神經網絡回歸
  • 如何通過人工神經網絡實現圖像識別?
    人工神經網絡(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲尤其是基於誤差反向傳播(Error Back Propagation)算法的多層前饋網絡(Multiple-Layer Feedforward Network)(簡稱BP 網絡),可以以任意精度逼近任意的連續函數,所以廣泛應用於非線性建模、函數逼近、模式分類等方面。
  • 如何可視化卷積網絡分類圖像時關注的焦點
    在我們使用 CNN 進行圖片分類時,模型到底關注的是圖像的哪個區域?Grad-CAM 利用卷積網絡最後一個特徵圖的信息,並加權對應的梯度而構建模型分類的熱力圖,通過該熱力圖,我們可以清楚地了解哪一塊區域對於類別是最重要的。你在訓練神經網絡進行圖片分類時,有沒有想過網絡是否就是像人類感知信息一樣去理解圖像?
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    GAN(Generative Adversarial Networks,生成式對抗網絡)顧名思義,系統讓兩個神經網絡相互「磨鍊」,一個神經網絡負責生成接近真實的數據,另一個神經網絡負責區分真實數據與生成的數據。簡單來說,就是一個神經網絡「造假」,另一個神經網絡「打假」,而當系統達到平衡時,生成的數據看起來便會非常接近真實數據,達到「以假亂真」的效果。
  • 谷歌和OpenAI新研究:如何使用達爾文進化論輔助設計人工智慧算法?
    上個月,谷歌大腦和非營利性組織 OpenAI 分別就神經進化這一主題發表了還未經評議的論文,谷歌的論文是關於神經進化原理在圖像識別上的應用,而 OpenAI 的論文則是關於使用工作器(worker)算法讓一個主算法學會實現一個任務的最好方法。為本已複雜的人工智慧研究領域引入生物進化的思想不免使人困惑。因此,如果想解決困惑,就把算法看作馬吧。