自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

神經(jīng)架構(gòu)搜索方法知多少

開發(fā) 開發(fā)工具
本文對現(xiàn)有神經(jīng)架構(gòu)搜索方法做了統(tǒng)一、分類和對比,還做了詳細(xì)的分析。本文討論了常見搜索空間以及基于強(qiáng)化學(xué)習(xí)原理和進(jìn)化算法的常用架構(gòu)優(yōu)化算法,還有結(jié)合了代理模型和 one-shot 模型的方法。

研究人員對機(jī)器學(xué)習(xí)和深度學(xué)習(xí)自動化興趣的日益增長,促進(jìn)了神經(jīng)架構(gòu)優(yōu)化的自動化方法的發(fā)展。網(wǎng)絡(luò)架構(gòu)的選擇至關(guān)重要,深度學(xué)習(xí)中的諸多進(jìn)展也源于它的即時(shí)改進(jìn)。但深度學(xué)習(xí)技術(shù)是計(jì)算密集型,而且應(yīng)用深度學(xué)習(xí)需要較高的領(lǐng)域相關(guān)相關(guān)知識。因此,即便這一過程只有部分是自動化的,也有助于研究人員和從業(yè)人員更容易地使用深度學(xué)習(xí)。

這篇文章對現(xiàn)有方法做了統(tǒng)一和分類,并對比了不同的方法,還做了詳細(xì)的分析。本文討論了常見搜索空間以及基于強(qiáng)化學(xué)習(xí)原理和進(jìn)化算法的常用架構(gòu)優(yōu)化算法,還有結(jié)合了代理模型和一次性(one-shot)模型的方法。

此外,本文還討論了約束、多目標(biāo)架構(gòu)搜索、自動數(shù)據(jù)增強(qiáng)、優(yōu)化器以及激活函數(shù)搜索等新的研究方向。

引言

在過去的兩年中,機(jī)器學(xué)習(xí)領(lǐng)域一直在研究自動化搜索過程??梢赃@么說,Zoph 和 Le 的工作(2017)是這項(xiàng)研究工作開始的標(biāo)志,他們的工作證明強(qiáng)化學(xué)習(xí)算法可以發(fā)現(xiàn)好的架構(gòu)。此后不久,Real et al.(2017)表示,研究至今的神經(jīng)進(jìn)化方法(Floreano et al.,2008)也可以得到類似的結(jié)果。

但這兩種搜索方法都要用 GPU 運(yùn)行幾千小時(shí)。因此,后續(xù)工作都試圖降低這種計(jì)算負(fù)擔(dān)。沿著這條思路,許多成功的算法都利用了重用已經(jīng)學(xué)習(xí)好的模型參數(shù)的原則,其中最令人矚目的是 Cai et al.(2018a)和 Pham et al.(2018)的工作。Cai et al.(2018a)提出可以從一個(gè)簡單的架構(gòu)開始搜索,通過功能保留的操作逐步增加搜索的寬度和深度。

現(xiàn)在更流行也更快的搜索方法是 Pham et al.(2018)提出的,他們構(gòu)造了包含搜索空間中所有架構(gòu)的過參數(shù)化架構(gòu)。在算法的每一個(gè)時(shí)間步上,都會對這個(gè)大型架構(gòu)中的一小部分進(jìn)行采樣和訓(xùn)練。訓(xùn)練完成后,抽樣得到的架構(gòu)可以共享訓(xùn)練權(quán)重,這樣就可以將搜索的工作量減少到和訓(xùn)練單個(gè)架構(gòu)差不多的水平。

搜索空間的設(shè)計(jì)構(gòu)成了神經(jīng)架構(gòu)搜索的另一個(gè)重要組成部分。除了加快搜索過程外,這還會影響搜索的持續(xù)時(shí)間和搜索得到的解決方案的質(zhì)量。在神經(jīng)架構(gòu)搜索的早期工作中,設(shè)計(jì)空間主要是為了搜索順序架構(gòu)的。但隨著手工構(gòu)建的分支架構(gòu)已經(jīng)在性能上超越了傳統(tǒng)網(wǎng)絡(luò),因此剛發(fā)表不久后就提出了合適的搜索空間,并且這些空間已經(jīng)成為了該領(lǐng)域的規(guī)范(Zoph et al.,2018)。

在這些工作取得進(jìn)展的同時(shí),研究人員拓寬了神經(jīng)架構(gòu)搜索的視野,希望神經(jīng)架構(gòu)搜索可以減少搜索時(shí)間,降低發(fā)現(xiàn)架構(gòu)的泛化誤差。可以同時(shí)處理多個(gè)目標(biāo)函數(shù)的方法開始進(jìn)入人們的視野。這方面值得注意的工作包括為了將模型部署在移動設(shè)備上,試著限制模型參數(shù)數(shù)量(Tan et al.,2018;Kim et al.,2017)或其他部分。此外,已經(jīng)開發(fā)的架構(gòu)搜索技術(shù)也已經(jīng)擴(kuò)展到深度學(xué)習(xí)其他相關(guān)組件的高級自動化上了。例如,激活函數(shù)的搜索(Ramachandran et al.,2018)以及合適的數(shù)據(jù)增強(qiáng)(Cubuk et al.,2018a)。

目前,以神經(jīng)架構(gòu)搜索的形式實(shí)現(xiàn)深度學(xué)習(xí)自動化是機(jī)器學(xué)習(xí)領(lǐng)域發(fā)展最快的方向之一。每周在 arXiv.org (http://arxiv.org/) 和主流會議刊物上都會出現(xiàn)一些有趣的工作,因此人們很容易迷失方向。

本文總結(jié)了現(xiàn)有方法。我們可以通過這樣的總結(jié)辯證地審視不同的方法,并理解不同組件的好處,這些組件有助于神經(jīng)架構(gòu)搜索的設(shè)計(jì)與成功。在這一過程中,作者還試圖消除一些常見的誤解,并指出當(dāng)前架構(gòu)搜索趨勢中的一些陷阱。作者還做了適當(dāng)?shù)膶?shí)驗(yàn)補(bǔ)充自己的想法。

1. 神經(jīng)架構(gòu)搜索空間

神經(jīng)架構(gòu)搜索空間是神經(jīng)架構(gòu)一般定義的子空間。其運(yùn)算空間是有限的,而且可以對架構(gòu)施加一定的約束。本文接下來用搜索空間指代神經(jīng)架構(gòu)搜索方法的可行方案的集合。

2. 全局搜索空間

全局搜索空間中的實(shí)例(instances)在運(yùn)算方面有很大的自由度??梢约僭O(shè)一個(gè)架構(gòu)模板,它限制了架構(gòu)定義中所允許的結(jié)構(gòu)選擇的自由。這個(gè)模板一般是用來修復(fù)網(wǎng)絡(luò)圖的某些方面的。

圖 1 展示了模板約束搜索空間的架構(gòu)樣例。

模板約束搜索空間的架構(gòu)樣例

圖 1:全局搜索空間:(a)順序搜索空間;(b)和跳躍(skips)相同;(c)架構(gòu)模板,只有深藍(lán)色運(yùn)算之間的連接沒有修復(fù)。

Tan et al.(2018)的另一項(xiàng)工作是找到可以部署在移動設(shè)備上的神經(jīng)網(wǎng)絡(luò)模型,該模型可以在準(zhǔn)確性、推理時(shí)間以及參數(shù)數(shù)量等多個(gè)方面高效地執(zhí)行。他們以此為目的設(shè)計(jì)了合適的搜索空間,該空間由具有層級表征的架構(gòu)組成。

圖 2

圖 2:Tan et al.(2018)提出將架構(gòu)分解成不同部分。每一部分 i 都有自己的模式(藍(lán)色運(yùn)算),這一部分會重復(fù) n_i 次并有 f_i 個(gè)過濾器。

3. 基于單元(cell-based)搜索空間

cell-based 搜索空間建立在一個(gè)觀察結(jié)果之上,即許多有效的手工架構(gòu)都基于重復(fù)的固定結(jié)構(gòu)。這樣的架構(gòu)一般是較小的圖堆疊起來形成的較大的架構(gòu)。在文獻(xiàn)中,一般將這些重復(fù)結(jié)構(gòu)稱為單元(cell 或 unit)或塊(block)。在本文中用 cell 指代這樣的結(jié)構(gòu)。

在 cell-based 搜索空間中,網(wǎng)絡(luò)是通過在模板定義的、預(yù)先指定好的排列中重復(fù) cell 結(jié)構(gòu)來構(gòu)建的。如圖 3 所示,cell 一般是一個(gè)小的有向無環(huán)圖。

圖 3

圖 3:NASNet 搜索空間實(shí)例的結(jié)構(gòu)。n 個(gè)正常單元(normal cell)后面跟著一個(gè)縮減單元(reduction cell)。這樣的序列會重復(fù)幾次,縮減單元也可能會重復(fù)。

圖 4 展示了 cell 結(jié)構(gòu)可視化的例子。

cell 結(jié)構(gòu)可視化的例子

圖 4

圖 4:以 NASNet-A 架構(gòu)的縮減單元(Zoph et al.,2018)為例,展示一個(gè) cell 在 NASNet 搜索空間中是什么樣子。可以將 block 用做其他 block(如 block 1 和 block 3)的輸入,未使用的 block 連在一起成為 cell 的輸出。

已經(jīng)可以用 cell-based 設(shè)計(jì)范式來定義適用于移動設(shè)備的搜索空間了。Dong et al.(2018)提出了一個(gè)專門滿足這類需求(比如參數(shù)較少的目標(biāo)和更少的推理時(shí)間)的搜索空間。

Dong et al.

圖 7:Dong et al.(2018)用的移動搜索空間。包括 cell 在內(nèi)的整個(gè)網(wǎng)絡(luò)都是密集連接的。

4. 全局搜索空間 vs. cell-based 搜索空間

cell-based 搜索空間,尤其是 NASNet 搜索空間,是開發(fā)新方法時(shí)最常用的選擇。大多數(shù)研究這兩個(gè)搜索空間的工作都提供了經(jīng)驗(yàn)證據(jù)支持這一選擇,這些經(jīng)驗(yàn)證據(jù)表明 cell-based 搜索空間可以得到更好的結(jié)果。

無論如何,cell-based 搜索空間得益于發(fā)現(xiàn)的架構(gòu)可以很容易地跨數(shù)據(jù)集遷移。此外,通過改變過濾器和單元的數(shù)量,幾乎可以任意改變架構(gòu)的復(fù)雜性。

通常,全局搜索空間中的架構(gòu)不會顯示上面說的所有這些屬性,但是某些情況也可能會從中受益。例如,可以改變過濾器的數(shù)量自然地修改架構(gòu),但要想將發(fā)現(xiàn)的架構(gòu)轉(zhuǎn)移到輸入結(jié)構(gòu)不同的新數(shù)據(jù)集或深化體系結(jié)構(gòu)并不是一件容易的事。

二、優(yōu)化方法

響應(yīng)函數(shù) f 的優(yōu)化是一個(gè)全局黑箱優(yōu)化問題。接下來將會討論幾種基于強(qiáng)化學(xué)習(xí)、進(jìn)化算法等的優(yōu)化策略。

1. 強(qiáng)化學(xué)習(xí)

強(qiáng)化學(xué)習(xí)對于順序決策過程的建模是很有用的,在這個(gè)過程中,智能體(agent)和環(huán)境交互的唯一目標(biāo)是***化未來收益。

圖 9:強(qiáng)化學(xué)習(xí)算法的一般框架。

時(shí)序差分學(xué)習(xí)(Temporal Difference Learning):像 SARSA、TD-λ 和 Q-learning 這樣的方法都試著通過近似***值函數(shù)隱式地找出這種策略。然后根據(jù)***值函數(shù)將***策略定義為貪心策略。***值函數(shù) v ∗ (s) 和 q ∗ (a, s) 滿足 Bellman ***標(biāo)準(zhǔn)。

策略梯度方法(Policy Gradient Methods):RL 中的其他替代方法(統(tǒng)稱為策略梯度方法)不適用價(jià)值函數(shù),而是直接學(xué)習(xí)由參數(shù)集合 πθ(a|s) 定義的策略。這些方法在不顯式參考價(jià)值函數(shù)的情況下選擇動作(action)。

基于 Q-Learning 的優(yōu)化: Baker et al.(2017)是最早提出用基于 RL 的算法進(jìn)行神經(jīng)架構(gòu)搜索的人之一。他們在設(shè)計(jì)算法時(shí)結(jié)合了 Q-learning、ε-greedy 和經(jīng)驗(yàn)回放(Experience replay)。他們方法中的動作是選擇要添加到架構(gòu)中的不同層,以及終止構(gòu)建架構(gòu)并將它認(rèn)定為已經(jīng)完成的運(yùn)算。

基于策略梯度方法的優(yōu)化:基于策略梯度方法的替代方法也已經(jīng)用在神經(jīng)架構(gòu)搜索中了。Zoph 和 Le(2017)是***個(gè)研究這種建模方法的。他們直接針對控制器建模,可以將控制器的預(yù)測值視為構(gòu)建神經(jīng)架構(gòu)的動作。

圖 10:Zoph 和 Le(2017)用控制器預(yù)測一層的結(jié)構(gòu)(圖中沒有呈現(xiàn)跳躍連接(skip connection)的預(yù)測值)。

2. 進(jìn)化算法

進(jìn)化算法(Evolutionary algorithms,EA)是基于種群的黑箱函數(shù)全局優(yōu)化器,它必需的組件有:初始化(initialization)、父代選擇(parent selection)、重組(recombination)與變異(mutation)以及新代選擇(survivor selection)。

進(jìn)化算法的一般框架

圖 11:進(jìn)化算法的一般框架。

在這一工作的背景下,本文討論了六個(gè)基于 EA 的神經(jīng)架構(gòu)搜索的重要工作。表 1 中對這些方法做了簡單的概述。

表 1:用于神經(jīng)架構(gòu)搜索的各種進(jìn)化算法的高級細(xì)節(jié)。

3. 基于代理模型的優(yōu)化

顧名思義,基于代理模型的優(yōu)化器用代理模型 f hat 來近似響應(yīng)函數(shù) f。就神經(jīng)架構(gòu)搜索而言,這可以近似響應(yīng)不在訓(xùn)練步消耗時(shí)間且能提升整個(gè)搜索過程效率的架構(gòu)。將該代理模型建模為機(jī)器學(xué)習(xí)模型,在元數(shù)據(jù)集上進(jìn)行訓(xùn)練,這個(gè)元數(shù)據(jù)集中包含架構(gòu)描述以及對應(yīng)的響應(yīng)函數(shù)值。

Luo et al.(2018)用了一種有趣的方式。他們共同學(xué)習(xí)了用于架構(gòu)表征的自動編碼器和代理模型,該代理模型用自動編碼器提供的連續(xù)編碼,即架構(gòu)代碼作為輸入(圖 15)。

一個(gè)關(guān)鍵的區(qū)別在于,他們的搜索算法使用代理模型,通過對架構(gòu)代碼執(zhí)行梯度步驟來采樣新的架構(gòu)。

圖 15:Luo et al.(2018)提出結(jié)合自動編碼器和代理模型。這個(gè)模型通過共同學(xué)習(xí)實(shí)現(xiàn)了 α≈α ̂ 和 f(α)≈f ̂(α)

4. one-shot 架構(gòu)搜索

將在搜索過程中只訓(xùn)練一個(gè)單一神經(jīng)網(wǎng)絡(luò)(single neural network)的架構(gòu)搜索方法定義為 one-shot。然后該神經(jīng)網(wǎng)絡(luò)在整個(gè)搜索空間中推導(dǎo)出一個(gè)架構(gòu),將其作為優(yōu)化問題的解決方案。大多數(shù)用 one-shot 方法考慮的架構(gòu)都是基于過參數(shù)化網(wǎng)絡(luò)的。

這類方法的優(yōu)點(diǎn)是搜索工作量相對較低——只比搜索空間中一個(gè)架構(gòu)的訓(xùn)練成本略高一點(diǎn)。正如我們后面要討論的,這個(gè)方法可以和之前討論過的許多優(yōu)化方法結(jié)合在一起。

權(quán)重共享(Weight Sharing):Pham et al.(2018)在 NASNet 搜索空間(見 2.2)的子空間中進(jìn)行搜索,并在覆蓋了整個(gè)搜索空間的過參數(shù)化網(wǎng)絡(luò)上進(jìn)行運(yùn)算。

圖 17

圖 17:左圖:特定深度的卷積神經(jīng)結(jié)構(gòu)的一部分。圖中展示了尺寸不同(如 4 和 8)的運(yùn)算。卷積神經(jīng)結(jié)構(gòu)的深度是任意的。右圖:在順序搜索空間中只有兩步運(yùn)算的權(quán)重共享示例。

可微架構(gòu)搜索:Liu et al.(2018c)提出了一種替代的優(yōu)化方法,這種方法用基于梯度的優(yōu)化方法使訓(xùn)練集損失最小化,學(xué)習(xí)了模型 θ 的參數(shù);又使驗(yàn)證集損失最小化,學(xué)習(xí)了結(jié)構(gòu)參數(shù) β。

超網(wǎng)絡(luò)(Hypernetworks):Brock et al.(2018)提出可以使用動態(tài)超網(wǎng)絡(luò)(dynamic hypernetworks,Ha et al.,2017),這是一種可以根據(jù)一個(gè)變量條件(在這種情況下是架構(gòu)描述)為另一個(gè)神經(jīng)網(wǎng)絡(luò)生成權(quán)重的神經(jīng)網(wǎng)絡(luò)。經(jīng)過訓(xùn)練的超網(wǎng)絡(luò)可以生成各種架構(gòu)的網(wǎng)絡(luò)權(quán)重。它可以用超網(wǎng)絡(luò)對不同架構(gòu)排序,并衍生出最終架構(gòu),然后再從頭開始訓(xùn)練。這一方法還可以共享權(quán)重,但大多數(shù)權(quán)重都在超網(wǎng)絡(luò)中共享。

總結(jié)

表 2 給出了不同算法在 CIFAR-10 基準(zhǔn)數(shù)據(jù)集上完成分類任務(wù)得到的結(jié)果。

CIFAR-10

CIFAR-10

表 2

表 2:本文討論的不同搜索算法在 CIFAR-10 上得到的結(jié)果以及所需搜索時(shí)間。此外,上表還列出了各種隨機(jī)搜索和人工設(shè)計(jì)的架構(gòu)得到的結(jié)果。

論文鏈接:https://arxiv.org/abs/1905.01392

【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號“機(jī)器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2024-08-06 10:07:15

2012-02-13 22:50:59

集群高可用

2010-08-16 09:15:57

2013-12-23 14:00:31

Windows 8.2Windows 8.1

2021-12-04 11:17:32

Javascript繼承編程

2025-04-14 08:50:00

Google ADK人工智能AI

2017-07-14 10:51:37

性能優(yōu)化SQL性能分析

2010-09-29 09:28:04

DHCP工作原理

2022-01-06 16:20:04

Java排序算法排序

2018-12-12 15:01:22

開源存儲 軟件

2024-07-01 12:30:09

2013-08-02 09:42:37

BYODBYOC云存儲

2021-12-09 06:41:56

Python協(xié)程多并發(fā)

2022-05-08 18:02:11

tunnel隧道云原生

2009-03-06 19:19:55

2009-05-13 17:31:06

DBAOracleIT

2018-08-31 10:53:25

MySQL存儲引擎

2020-09-08 10:56:55

Java多線程存儲器

2021-07-22 07:20:24

JS 遍歷方法前端

2012-09-10 16:38:40

Windows Ser
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號