0
本文作者: 叢末 | 2019-09-21 20:40 |
雷鋒網(wǎng) AI 科技評(píng)論按:過去數(shù)年間,研究者和企業(yè)都試圖通過提供可獲得的預(yù)訓(xùn)練計(jì)算機(jī)視覺或機(jī)器翻譯模型,來讓更多非專業(yè)人士用上深度學(xué)習(xí)方法。將預(yù)訓(xùn)練模型用到另一項(xiàng)任務(wù)上的方法,就是我們所說的遷移學(xué)習(xí),但是這種方法依舊要求使用者具備一定的專業(yè)度,能夠?qū)υ诹硪粋€(gè)數(shù)據(jù)集上運(yùn)行的模型進(jìn)行微調(diào)。因而如果有方法能夠?qū)⑦@一步驟完全自動(dòng)化,可以讓更多的使用者從迄今為止機(jī)器學(xué)習(xí)領(lǐng)域所取得的重大突破受益。
該方法就是自動(dòng)機(jī)器學(xué)習(xí)(AutoML),它能夠涵蓋預(yù)測建模的多個(gè)部分,例如架構(gòu)搜索、超參數(shù)優(yōu)化等等。
近期,能夠?yàn)槟硞€(gè)給定的數(shù)據(jù)集搜索到「最佳」架構(gòu)的架構(gòu)搜索方法取得了突破性進(jìn)展,因而在本文中,我將聚焦架構(gòu)搜索部分展開討論。其中,文中展示的結(jié)果,是基于與 Jonathan Lorraine 合作進(jìn)行的工作得來的。
首先大家需要了解的是,僅有單個(gè)隱藏層和非線性激活函數(shù)的神經(jīng)網(wǎng)絡(luò),在該層有足夠多神經(jīng)元的情況下(即萬能近似定理,UAT),是能夠表示任意函數(shù)的。
然而,這種簡單的架構(gòu),雖然理論上能夠?qū)W習(xí)任意函數(shù),但是并不能表示出現(xiàn)在人類視覺皮層的分層過程。
神經(jīng)網(wǎng)絡(luò)架構(gòu)假定一個(gè)歸納偏置、淺層、寬廣并且不使用卷積的網(wǎng)絡(luò),在圖像法分類任務(wù)上的表現(xiàn)要比深度卷積網(wǎng)絡(luò)差得多。因此,為了讓神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)泛化,同時(shí)不會(huì)過度擬合訓(xùn)練數(shù)據(jù)集,找到歸納偏置正確的架構(gòu)是至關(guān)重要的(不管架構(gòu)是否由大腦所驅(qū)動(dòng))。
NAS 是谷歌推出的一項(xiàng)有啟發(fā)性的工作,后續(xù)推動(dòng)了 ENAS、PNAS、DARTS 等工作的出現(xiàn)。它涉及到使用強(qiáng)化學(xué)習(xí)(RL)來訓(xùn)練循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)控制器,從而自動(dòng)生成架構(gòu)。之后,這些架構(gòu)對(duì)其權(quán)重進(jìn)行訓(xùn)練并在驗(yàn)證集上進(jìn)行評(píng)估。它們?cè)隍?yàn)證集上的性能就是控制器的獎(jiǎng)勵(lì)信號(hào),后續(xù)可以增加生成表現(xiàn)良好的架構(gòu)的概率,以及降低生成表現(xiàn)不佳的架構(gòu)的概率。
對(duì)于沒有技術(shù)基礎(chǔ)的讀者而言,NAS 基本上還需要他們完成這一步驟:手動(dòng)調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)并學(xué)習(xí)哪種方法的表現(xiàn)更好,最終將表現(xiàn)最好的方法自動(dòng)化。自動(dòng)創(chuàng)建神經(jīng)網(wǎng)絡(luò)架構(gòu)的思想一開始并非由 NAS 提出,因?yàn)楹芫弥熬陀衅渌椒ㄓ蒙狭酥T如遺傳算法等方法,但是 NAS 有效地使用了 RL 來高效地搜索到能夠?qū)崿F(xiàn)詳盡搜索的空間。
下面,我將更深入地分析 NAS 的各個(gè)部分,然后再探討該方法存在的局限性以及由該方法衍生但更加高效的 ENAS(高效神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索),不過 ENAS 同樣也是一個(gè)非常有趣的失效模式。
當(dāng)對(duì)文本和下面展示如何對(duì)架構(gòu)采用和訓(xùn)練的圖進(jìn)行比較時(shí),下面的兩個(gè)小節(jié)是最好理解的。
NAS 工作原理圖解
短期記憶網(wǎng)絡(luò)(LSTM)控制器
控制器通過對(duì)大量預(yù)定義的時(shí)間步長做出一系列選擇,來生成架構(gòu)。例如,在生成卷積架構(gòu)時(shí),控制器一開始僅創(chuàng)建其中 6 層的架構(gòu)。對(duì)于每一層,控制器都只做 4 項(xiàng)決策:濾波器高、濾波器寬、濾波器個(gè)數(shù)和步長。假設(shè)第一層的編號(hào)為 0,則特定層 ? 的決策 ? 被采樣為:
濾波器高為 ?_{?,h} ~ p_{? x 4)
濾波器寬為 ?_{?,w} ~ p_{? x 4+1)
濾波器個(gè)數(shù)為 ?_{?,f} ~ p_{? x 4+2)
步長為 ?_{?,s} ~ p_{? x 4+3)
注意,時(shí)間步長 ? 的概率分布 p_?=f_?(h_?),只是該時(shí)間步長的隱藏狀態(tài)下的線性函數(shù),softmax 函數(shù)緊隨其后。
由于控制器是一個(gè) LSTM,因此在初始時(shí)間步長 h_0 = [0,0,...,0] 的隱藏狀態(tài)被設(shè)置為全 0 的向量。每個(gè)采樣的決策都有一組預(yù)設(shè)值,例如針對(duì)濾波器個(gè)數(shù)的 [24,36,48,64](看起來像是概率網(wǎng)格搜索)。最終層數(shù)會(huì)增加,因此需要 LSTM 提供動(dòng)態(tài)計(jì)算,并期望 LSTM 的隱藏狀態(tài)能夠記住過去的選擇并有偏向地決定未來時(shí)間步長的概率分布,從而將這些選擇考慮在內(nèi)。
訓(xùn)練采樣的架構(gòu)
在創(chuàng)建完給定的架構(gòu)之后,就要對(duì)其進(jìn)行 epoch 個(gè)數(shù)有限(本文中為 50)的訓(xùn)練,并且觀察驗(yàn)證準(zhǔn)確度 Acc_v。有趣的是,由于在過去 5 個(gè) epoch 中觀察到的最大驗(yàn)證準(zhǔn)確度隨后被立方化并且被用作使用策略梯度來更新控制器參數(shù)的獎(jiǎng)勵(lì),因此涉及一些并不明顯的獎(jiǎng)勵(lì)重塑(Reward Shaping):
NAS 使用的獎(jiǎng)勵(lì)重塑
當(dāng)我稍后討論 ENAS 時(shí),大家需要注意的一個(gè)重點(diǎn)是,經(jīng)過訓(xùn)練的架構(gòu),它的權(quán)重后續(xù)會(huì)被舍棄,并且在每次對(duì)架構(gòu)進(jìn)行采樣時(shí),這些權(quán)重都會(huì)被隨機(jī)初始化。由于架構(gòu)選擇非常簡單,因此所有經(jīng)采樣的架構(gòu)的記錄及其驗(yàn)證準(zhǔn)確性,都會(huì)得到保留。
選擇最佳架構(gòu)
在控制器訓(xùn)練期間,最佳性能的架構(gòu)會(huì)被采用,并且會(huì)在一些基本超參數(shù)例如學(xué)習(xí)速率和權(quán)重衰減上執(zhí)行網(wǎng)格搜索,以實(shí)現(xiàn)與 STOTA 相當(dāng)?shù)男阅堋?/p>
從深度學(xué)習(xí)專家到非專業(yè)人士,并非每個(gè)人都能使用 NAS 的原因是它的計(jì)算復(fù)雜性所帶來的昂貴的計(jì)算成本。實(shí)際上,它的計(jì)算大約需要消耗 32,000 GPU 個(gè)小時(shí)。如此說來,為什么不直接聘專家來設(shè)計(jì)架構(gòu)而投入如此多資源來自動(dòng)搜索一個(gè)架構(gòu)呢?
ENAS 的誕生,便是用來解決這個(gè)問題的。
權(quán)重共享
ENAS 通過使用不斷更新的共享參數(shù)池,而無需舍棄在訓(xùn)練過程中從所有經(jīng)采樣的架構(gòu)學(xué)到的權(quán)重。
這意味著,架構(gòu) 100 在被采樣時(shí),已經(jīng)提供了尤其是與隨機(jī)權(quán)重相比更加合理的準(zhǔn)確度的權(quán)重對(duì)將其初始化。這樣的話,搜索到一個(gè)性能良好的架構(gòu)所需要的 GPU 耗時(shí)就從 32000 個(gè)小時(shí)降到了 50 個(gè)小時(shí)!
通過下圖,大家可以非常好地理解該采樣過程?;仡櫼幌?,在 NAS 示例中,我展示了如何創(chuàng)建整個(gè) CNN 架構(gòu)。在這里,我將聚焦單個(gè)循環(huán)單元。而在 ENAS 環(huán)境中的單元基本上僅為一個(gè)有向無環(huán)圖(DAG),如果預(yù)先設(shè)定 DAG 中的節(jié)點(diǎn)數(shù),則它只需要學(xué)習(xí)連接。DAG 可以被視作一個(gè)計(jì)算圖,其邊緣表示將信息從一個(gè)節(jié)點(diǎn)傳送到另一個(gè)節(jié)點(diǎn)的矩陣乘法,以及表示不同「隱藏狀態(tài)」的節(jié)點(diǎn)。
DAG 的構(gòu)建,可以通過為每個(gè)節(jié)點(diǎn)選定:
在該節(jié)點(diǎn)使用的激活函數(shù),即 [tanh,sigmoid,ReLU];
用于連接當(dāng)前節(jié)點(diǎn)的前一節(jié)點(diǎn),例如在節(jié)點(diǎn) 4 處可能的選擇是 [1,2,3]。
下圖中采樣的 DAG 用紅色箭頭表示,剩余的藍(lán)色箭頭則表示不屬于采樣架構(gòu)的一部分,但顯示了創(chuàng)建其中包含 5 個(gè)節(jié)點(diǎn)的 DAG 時(shí)可能存在的一些其他連接。
未填充的藍(lán)色節(jié)點(diǎn)表示內(nèi)部節(jié)點(diǎn),橙色節(jié)點(diǎn)表示葉節(jié)點(diǎn)。葉節(jié)點(diǎn)通過平均的方法(或者也可能是其他機(jī)制)來組合它們的輸出,并且這種方法被視為當(dāng)前時(shí)間步長 h_ {t} 處的整個(gè)循環(huán)單元的隱藏狀態(tài)。
黑色箭頭表示硬編碼連接(例如,此處無法做選擇)。例如,單元始終將當(dāng)前時(shí)間步長 x_ {t} 處的特征和前一時(shí)間步長 h_ {t-1} 處的單元隱藏狀態(tài)作為輸入。
ENAS 如何對(duì) DAG 采樣
由于存在與 DAG 中每個(gè)邊都相關(guān)聯(lián)的矩陣,因此共享參數(shù)池僅是所有這些矩陣的集合。
盡管 NAS 或 ENAS 提供的架構(gòu)(以及它們學(xué)到的權(quán)重)在圖像分類和語言建模任務(wù)上都表現(xiàn)出色,但目前尚不清楚這樣的結(jié)果是否是由于搜索方法導(dǎo)致的。
架構(gòu)搜索真值
首先,針對(duì)一個(gè)給定的數(shù)據(jù)集,如果不將每個(gè)可能的架構(gòu)都訓(xùn)練一遍,并且為每一個(gè)架構(gòu)都執(zhí)行一次大范圍的超參數(shù)搜索,就不可能知道哪個(gè)才是該數(shù)據(jù)集的最佳架構(gòu)。這就使得我們很難說明白控制器事實(shí)上是否正在有效地搜索可能存在的架構(gòu)空間,或者是否僅僅只是重新創(chuàng)建此前已經(jīng)提供了高驗(yàn)證準(zhǔn)確率的架構(gòu)。
這里存在一個(gè)熵參數(shù),使得控制器在每個(gè)時(shí)間步長輸出的概率分布都更加均勻,從而增強(qiáng)了搜索,但是這種搜索基本上是隨機(jī)的,不過有利于對(duì)已被視為最好的架構(gòu)進(jìn)行微調(diào)。如果我們所關(guān)心的只是讓架構(gòu)達(dá)到某種程度的準(zhǔn)確性,這可能并不是什么大問題,不過對(duì)于架構(gòu)的良好性能,可能還存在另外一種解釋。
由誰決定搜索空間?
控制器在每個(gè)時(shí)間步長所做出的決定都非常有限。這些決定相當(dāng)于是從一組過去被認(rèn)為是在循環(huán)或卷積架構(gòu)上表現(xiàn)很好的選項(xiàng)中選擇出來的。例如,針對(duì)濾波器寬的選項(xiàng)是 [1,3,5,7],它們是已在 ResNets 或 DenseNets 等模型中應(yīng)用的標(biāo)準(zhǔn)值。因而,搜索空間本身存在此類偏差,以至于很難去對(duì)表現(xiàn)糟糕的架構(gòu)采樣。
顯而易見,擁有更多細(xì)粒度的選擇會(huì)增加搜索算法的采樣復(fù)雜度,但是如果我們真的相信搜索算法的有效性,我們就不會(huì)限制它去采用我們?nèi)祟愓J(rèn)為有效的值,因?yàn)檫@可能會(huì)阻止它發(fā)現(xiàn)更有效的架構(gòu)。
架構(gòu)搜索 VS 隨機(jī)搜索
在我們的實(shí)驗(yàn),以及 Sciuto 等人和 Li、Talwakar 在近期所做的相關(guān)工作中,使用基于 RL 的控制器來搜索架構(gòu)空間,似乎并沒有比使用隨機(jī)搜索更好。我們的實(shí)驗(yàn)聚焦的是面向 Penn Treebank 語言建模任務(wù)的 ENAS,該任務(wù)的目標(biāo)是生成循環(huán)單元。
如下圖所示,當(dāng)從經(jīng)過訓(xùn)練的控制器中采樣的 1000 個(gè)架構(gòu)與從未經(jīng)訓(xùn)練的控制器中采樣的 1000 個(gè)架構(gòu)相比時(shí),經(jīng)過訓(xùn)練的控制器的確表現(xiàn)更好,但這可以通過權(quán)重共享方案而不是控制器在搜索空間上的探索能力來加以解釋。
經(jīng)過訓(xùn)練的控制器采樣得到的一組架構(gòu)具備更少多樣性,因?yàn)樗诙x上無可避免地存在偏見。這就意味著,當(dāng)在訓(xùn)練期間更新共享參數(shù)時(shí),它們一定會(huì)對(duì)較少的架構(gòu)有效。而另一方面,隨機(jī)控制器采樣得到的架構(gòu)會(huì)更加多變,因此其更新共享參數(shù)的目的在于試圖變得對(duì)非常多的架構(gòu)有效,然而最終的結(jié)果是,它對(duì)于任何給定的架構(gòu)都不會(huì)特別有效。
經(jīng)過訓(xùn)練的控制器的性能 vs 未經(jīng)訓(xùn)練的控制器的性能
控制器在學(xué)習(xí)什么?
如果使用基于 RL 的控制器獲得的架構(gòu)最終并沒有比隨機(jī)搜索更好,那么控制器到底在學(xué)習(xí)什么呢?眾所周知,深度學(xué)習(xí)導(dǎo)致了黑盒模型無法解釋的結(jié)果,但對(duì)于圖像分類、目標(biāo)檢測甚至目標(biāo)分割等任務(wù)而言,我們能夠借助一些技術(shù)可視化 NN 關(guān)注的輸入圖像所具備的特征,盡管結(jié)果大打折扣,正如 Adebyo 等人所說的那樣,在最低限度上,我們可以預(yù)期控制器的循環(huán)屬性能夠基于過去的決策來做出未來傾向的決策,然而這在 ENAS 中,是不會(huì)發(fā)生的。
這種對(duì)架構(gòu)決策的無條件采樣是令人不安的,因?yàn)榭赡艽嬖诟咝卧蠊?jié)點(diǎn)之間有特定的連接模式,并且如果無法將過去的決策條件化,控制器是無法發(fā)現(xiàn)這種模式的。
下圖顯示了 100 個(gè)采樣架構(gòu)的 RNN 控制器的隱藏狀態(tài)(每行對(duì)應(yīng)于單個(gè)架構(gòu)的控制器隱藏狀態(tài))。請(qǐng)注意,在(a)中,即使采樣架構(gòu)不同,所有行也都是相同的,這表明控制器在隱藏狀態(tài)下,不會(huì)對(duì)架構(gòu)選擇進(jìn)行編碼。
控制器隱藏狀態(tài)可視化圖
是否有可能強(qiáng)制讓控制器記憶過去的決策呢?我們通過在用于訓(xùn)練控制器的原始損失中添加正則化項(xiàng)來研究該想法:一個(gè)自我監(jiān)督的目標(biāo),要求控制器能夠再現(xiàn)它曾看到過的過去的架構(gòu)。特別地:
經(jīng)過 5 個(gè) epoch 的訓(xùn)練,每個(gè) epoch 都采樣和存儲(chǔ) 1000 個(gè)架構(gòu)(最多可達(dá) 10,000 個(gè))。一旦此緩沖區(qū)滿了,每個(gè)時(shí)期 epoch 就會(huì)隨機(jī)替換 100 個(gè)架構(gòu);
在第 10 個(gè) epoch 處,添加一個(gè)監(jiān)督懲罰,用于從架構(gòu)的內(nèi)存緩沖區(qū)重建 100 個(gè)架構(gòu)的隨機(jī)樣本。在控制器訓(xùn)練的每一步中,此損失都會(huì)被添加到策略梯度損失中:L = L_ {PG} + L_ {Sup}。
這種正則化的方法與以自動(dòng)回歸方法中使用 RNN 進(jìn)行語言建模的方式類似:每個(gè)時(shí)間步長的目標(biāo),都是預(yù)測下一個(gè)步長的架構(gòu)選擇。這個(gè)問題跟「雞和蛋」的問題有點(diǎn)像。
如果我們要求控制器重建的架構(gòu),它的每個(gè)時(shí)間步長的選擇一開始都不會(huì)首先考慮過去的時(shí)間步長,那么我們的這種方法是不是更加強(qiáng)化了它的這一行為呢?事實(shí)上,這并不重要,因?yàn)槲覀冊(cè)趪L試讓控制器能夠記憶和重現(xiàn)序列,這至少能夠促使控制器的隱藏狀態(tài)能夠涵蓋控制器過去的選擇。
上圖(b)中顯示了這種正則化的影響,很明顯地是,控制器的隱藏狀態(tài)現(xiàn)在至少在采樣架構(gòu)之間是不同的。
為了確認(rèn)這種正則化是否真地讓控制器嵌入提供架構(gòu)之間有意義的相似性,我們將架構(gòu)嵌入之間的 L2 距離與架構(gòu)相似性的各種直觀概念相關(guān)聯(lián),這些直觀概念包括激活函數(shù)的個(gè)數(shù),或者采樣的 DAG 之間的公共連接等。
如下表所示,正則化給出了最佳的 Spearman 相關(guān)性,但這種相關(guān)性仍然很低。以一種不那么特定的方式去強(qiáng)制控制器記憶架構(gòu),似乎更有助于進(jìn)一步增加這種相關(guān)性。
架構(gòu)間的距離和其他概念之間的 Spearman 相關(guān)性
目前,神經(jīng)網(wǎng)絡(luò)搜索通過比較各種架構(gòu)從而選出最佳架構(gòu)的方式還過于簡單。僅考慮這些架構(gòu)在驗(yàn)證集上的性能,會(huì)遺漏許多我們可能希望模型能夠具有的有用屬性。例如,我們可能偏向使用架構(gòu)搜索來生成對(duì)于對(duì)抗性擾動(dòng)更魯棒的架構(gòu),或者更適合修剪的架構(gòu)。
為了賦予架構(gòu)搜索方法這一能力,以某種方式量化特定架構(gòu)可以學(xué)到的函數(shù)空間,將是有用的。這種方法有助于使用「更好」的更有趣的概念,因?yàn)樵S多架構(gòu)提供了類似的驗(yàn)證準(zhǔn)確性,然而即使 A_ {1} 的性能略差于 A_ {2},它也可能有我們看重但 A_ {2} 不具備的其他屬性。
隨著近來機(jī)器學(xué)習(xí)社區(qū)開始對(duì)提高隱私、降低偏見等領(lǐng)域產(chǎn)生興趣,我們?cè)絹碓叫枰又悄艿募軜?gòu)搜索技術(shù),來搜索到能夠滿足所有此類需求的架構(gòu)。雷鋒網(wǎng)
via https://towardsdatascience.com/neural-architecture-search-limitations-and-extensions-8141bec7681f 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。