當前位置:股票大全官網 - 資訊咨詢 - 網絡架構搜索

網絡架構搜索

人工神經網絡作為計算智能方法的代表,起源於20世紀40年代,經歷了50-60年代的繁榮、70年代的低潮、80年代的復興和最近十年的廣泛關註。現在,它已經成為理論日益完善、應用逐漸發展的前沿方向。辛頓?等待2006年?2000年發表在《科學》上的文章引發了深度神經網絡研究的熱潮。面對大數據的挑戰,以深度信念網絡、卷積神經網絡、遞歸神經網絡為代表的深度神經網絡模型在許多應用領域顯示出明顯的優勢和潛力,特別是隨著數據量和數據維度的增加,深度學習的優勢越來越突出。比如谷歌?AlphaGo是用深度學習發展起來的?它可以從海量遊戲中學習正確的決策。微軟語音識別利用深度學習大幅降低識別錯誤率。百度基於深度學習的機器人“小”在跨年齡人臉識別方面已經超越人類。

經過多年的研究和發展,基於人工神經網絡的識別方法已經逐漸取代了傳統的模式識別方法。神經網絡目前已經成為壹種先進的技術,用於解決字符識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫字符識別等許多具有挑戰性的識別任務。其中,主流的神經網絡模型有卷積網絡和遞歸神經網絡,卷積神經網絡由?揚恩?樂村?妳在線嗎?1998?2000年提出,自?AlexNe?妳在線嗎?2012?年份?ImageNet?這個框架在比賽中被用於贏得壹等獎,卷積神經網絡迅速流行並廣泛應用於視覺任務。現在最先進的卷積神經網絡算法在圖像識別上甚至可以超過人類肉眼識別的精度。遞歸神經網絡是在?1990?在中,作為遞歸神經網絡的推廣,遞歸神經網絡可以引入門控機制來學習長距離依賴,適用於涉及結構關系的機器學習任務,在序列識別中有重要應用。

深度神經網絡和深度學習算法由於在科學研究和工程任務中取得了顯著的成果而非常受歡迎。它取代了傳統的手工特征提取方法,可以端到端地自動提取和學習特征。其中,深度神經網絡的顯著成功通常是由於其成功的架構設計,研究的重點已經從提取特征轉移到尋找最優架構。壹般來說,模型的容量越大,網絡的性能越好,可以擬合任何函數。因此,為了提高網絡性能,網絡結構設計得越來越復雜。比如VGG-16?大概有1.4億個浮點參數,整個網絡占用500多兆的存儲空間,需要1.5億次浮點運算才能處理壹個大小為$ 224 \乘以224$的圖像。雖然更深的網絡層次和復雜的拓撲結構可以更有效地學習特征,但網絡規模的增加意味著手動設計網絡時需要更多的試錯時間,甚至專家也需要大量的資源和時間來創建性能良好的模型。

神經網絡結構搜索是壹種自動學習網絡結構的新方法,用於降低沈重的網絡設計成本。到目前為止,用NAS方法設計的網絡性能已經超過了手工設計的體系結構。NAS可以被視為自動機器學習(AutoML)的壹個子領域,它與超參數優化和元學習明顯重疊。不同NAS方法的區別主要在於三個維度:搜索空間、搜索策略和性能評價,我們分別進行了考察。

搜索空間:搜索空間定義了網絡的所有可選結構和操作,通常是指數級甚至無界的。在設計搜索空間時結合先驗知識,即針對當前任務參考已有的先進結構設計知識,可以有效縮小搜索空間,簡化搜索。然而,這也會引入偏好,從而將網絡學習限制到超出當前人類知識的結構。

搜索策略:定義搜索空間後,搜索策略指導高性能模型架構的搜索,難點是保證探索和利用的平衡。壹方面希望快速找到性能好的架構,另壹方面需要避免過早收斂到次優架構。

性能評估:NSA的目的是尋找壹個對未知數據具有良好泛化性能的框架,而模型壹旦生成,就需要對其性能進行評估。直觀的方法是在訓練集上訓練收斂,在驗證集上得到其性能,但這種方法會消耗巨大的計算能力,從而限制了可以探索的網絡結構。壹些先進的方法側重於降低性能評估的計算成本,但它們會引入誤差。因此,平衡評價的效率和效果是壹個需要研究的問題。

從計算的角度來看,神經網絡代表的是壹個通過壹系列運算將輸入變量X轉化為輸出變量Y的函數。基於計算圖形語言,神經網絡可以表示為有向無環圖(DAG ),其中每個節點代表壹個張量z?,通過邊連接到其父節點I(k ),每個邊代表從候選操作集合o中選擇的操作o。k的計算公式為:

候選運算集$O$主要包括卷積、池化、激活函數、跳轉連接、拼接、加法等基本運算。此外,為了進壹步提高模型的性能,壹些先進的人工設計模塊也可以作為候選操作,如深度可分卷積、擴展卷積和群卷積。不同的超參數可以基於操作的類型來選擇,例如輸入節點選擇、卷積核的數量、大小、步長等。不同的搜索空間設計、選擇和組合操作有不同的方法,因此參數化形式也不同。壹般來說,壹個好的搜索空間應該能夠排除人類的偏見,並且足夠靈活,能夠覆蓋更廣泛的模型架構。

全局搜索空間具有高度的自由度來搜索完整的網絡結構。最簡單的例子就是鏈式搜索空間,如圖1左圖所示。固定數量的節點按順序堆疊,只有前壹個節點的輸出作為輸入提供給下壹個節點。每個節點代表壹個層,並具有指定的操作。右圖引入了更復雜的跳轉鏈接和多分支結構,此時當前節點可以將之前所有節點的輸出合並為輸入,大大增加了搜索的自由度。許多網絡都是多分支網絡的特例,例如

1)鏈網:;

2)剩余網絡:

3)DenseNets:

雖然全結構搜索容易實現,但也有壹些缺點。首先,搜索空間的大小與網絡的深度成指數關系,所以尋找壹個泛化性能好的深度網絡是很昂貴的。此外,生成的架構缺乏可移植性和靈活性,在小數據集上生成的模型可能不適合更大的數據集。壹些研究表明,在搜索全局結構時,初始架構的選擇非常重要。在適當的初始條件下,可以得到與單位搜索空間性能相當的架構,但初始架構選擇的指導原則尚不明確。

基於單元的搜索空間受人工設計知識的啟發,許多有效的網絡結構會重用固定結構,如重復LSTM塊或在RNNs中堆疊剩余模塊。因此只能搜索這種重復的細胞,整個神經結構的搜索問題簡化為在細胞搜索空間中搜索最優的細胞結構,從而大大縮小了搜索空間。大多數研究比較了基於全局搜索空間和基於單位搜索空間的實驗結果,證明了基於單位搜索空間可以獲得較好的性能。單元搜索空間的另壹個優點是,它可以很容易地在數據集和任務之間通用化,因為通過增加或減少卷積核和單元的數量,可以幾乎任意地改變架構的復雜性。

NASNet是最早提出的單位搜索空間之壹,也是目前最熱門的選擇。後續的大部分改進只是對操作選擇和機組組合策略的少量修改。如圖2所示,它由兩種類型的單元組成,即標準單元(normal?Cell),以及壹個簡化單元(reduction?細胞).每個單元由b個塊組成,每個塊由它的兩個輸入和相應的操作定義。可選輸入包括前兩個單元的輸出和單元中先前定義的塊的輸出,因此它支持跨單元的跳躍連接。未使用的塊被連接並用作單元的輸出,最後這些單元通過預定義的規則被級聯。

不同於按照人工定義的宏觀結構來連接單元結構,層次結構是將上壹步生成的單元結構作為下壹步單元結構的基本組成部分,通過叠代的思想得到最終的網絡結構。Hier的分層搜索空間通過合並低層單元生成高層單元,實現了單元級和網絡級的同時優化。這個方法分為三層。第壹層包含壹系列基本操作;第二層通過有向無環圖連接第壹層,構建不同的單元。圖結構用鄰接矩陣編碼。第三層是網絡級編碼,決定第二層的單元如何連接,組合成壹個完整的網絡。基於單元的搜索空間可以被視為這種分層搜索空間的特殊情況。

強化學習可以有效地模擬壹個連續的決策過程,在這個過程中,主體與環境相互作用,主體學習改進自己的行為以最大化目標回報。(圖3)給出了基於硬化的NAS算法的概述。智能體通常是壹個遞歸神經網絡(RNN),它在每壹步T執行壹個動作,從搜索空間中采樣壹個新樣本,同時接收狀態的觀測值和環境中的回報,更新智能體的采樣策略。這種方法非常適合於神經結構搜索。智能體的行為是生成神經結構,行為空間是搜索空間,環境是指對智能體生成的網絡的訓練和評價,回報是訓練好的網絡結構對未知數據的預測性能,是在最後壹次行為後得到的。

4.2進化算法

進化算法是壹種成熟的全局優化方法,具有很強的魯棒性和廣泛的適用性。許多研究使用進化算法來優化神經網絡的結構。進化算法進化出壹套模型,即壹套網絡;在每壹代中,從這組模型中選擇至少壹個模型作為父代和突變後的子代。訓練完後代後,評估其適應度,並將其添加到種群中。

典型的進化算法包括選擇、交叉、變異和更新。選擇時壹般采用聯盟選擇算法對父類進行采樣,將適應性最好的作為父類。檸檬水使用核密度估計進行適應度,這樣網絡選擇的概率與密度成反比。交織模式隨著不同的編碼方案而變化。變異是針對父代的壹些操作,比如增加或刪除層,改變層的超參數,增加跳轉連接,改變訓練超參數。對於子代,大多數方法隨機初始化子網絡的權重,而Lemonade利用網絡態射將父網絡學習到的權重轉移到其子網絡。Real等人讓後代繼承父母所有不受突變影響的參數。雖然這種繼承不是嚴格意義上的功能保留,但可以加速學習。在生成新的網絡時,有必要從群體中移除壹些個體。Real等人從種群中剔除了最差的個體,AmoebaNet剔除了最老的個體。還有壹些方法是定期丟棄所有個體,或者根本不刪除個體。EENA通過壹個變量調整最壞模型和最老模型的刪除概率。

基於智能體模型的優化方法(SMBO)使用智能體模型來逼近目標函數。也就是說,不需要訓練采樣的網絡結構,而只需要訓練壹個代理模型,並使用該代理模型來預測網絡性能。通常在實踐中,我們只需要得到架構的性能排名,而不必計算具體的損失值,所以代理模型只需要預測相對得分,選擇有希望的候選架構。然後只對預測性能好的架構進行評估,並以其驗證精度更新代理模型,這樣只需要對少量候選架構進行完整訓練,大大減少了搜索時間。代理模型通常被訓練為最小化平方誤差:

貝葉斯優化是超參數優化中最流行的方法之壹。最經典的是基於高斯過程的BO,生成的神經結構的驗證結果可以建模為高斯過程。而基於高斯過程的BO的推理時間尺度在觀測次數上是立方的,不擅長處理變長神經網絡。壹些工作使用基於樹或基於隨機森林的方法在非常高維的空間中進行高效搜索,並在許多問題上取得了優異的結果。Negrinho使用其搜索空間的樹結構,並使用蒙特卡羅樹進行搜索。雖然沒有完全的比較,但是初步的證據表明這些方法可以超越進化算法。

上述搜索策略搜索是從離散的搜索空間中提取神經結構樣本。DARTS提出了搜索空間的連續松弛,在連續可微的搜索空間中進行搜索的神經結構如圖4所示,下面的softmax函數用於松弛離散空間:

松弛後,結構搜索的任務轉化為網絡結構和神經權重的聯合優化。這兩類參數分別在訓練集和驗證集上交替優化,表現為壹個雙層優化問題。

為了指導搜索過程,有必要對生成的神經網絡的性能進行評估。壹種直觀的方法是訓練網絡收斂,然後評估其性能。然而,這種方法需要大量的時間和計算資源。為此,提出了幾種加速模型評估的方法。

為了減少計算負擔,可以通過實際性能的低質量近似來估計性能。實現方法包括:縮短訓練時間,選擇數據集子集,在低分辨率圖像上訓練,每層使用較少的通道,堆疊較少的單元結構。低質量條件下搜索到的最優網絡或單元構建最終結構,並在數據集上重新訓練得到目標網絡。雖然這些低精度近似可以降低訓練成本,但是性能被低估,並且不可避免地引入誤差。最近的研究表明,當低質量評估和完全評估之間存在較大差異時,網絡性能的相對排名可能會發生很大變化,並強調這種誤差會逐漸增加。

早期停止技術最初用於防止過度擬合。有研究在訓練初期預測網絡性能,預測驗證集上性能差的模型會被強制停止訓練,以加快模型評估速度。在早期評估網絡性能的壹種方法是學習曲線外推法。多姆漢?建議在訓練開始時插入學習曲線,並終止那些預測性能差的網絡結構的訓練。Swersky等人在評估學習曲線時,將網絡架構的超參數作為參考因素。另壹種方法根據梯度的局部統計信息實現提前停止,不再依賴於驗證集,允許優化器充分利用所有的訓練數據。

代理模型可以被訓練來預測網絡性能。PNAS建議訓練壹個代理網絡(LSTM)來預測網絡結構的性能。PNAS沒有考慮學習曲線,而是根據結構的特征來預測性能,並在訓練期間推斷更大的網絡結構。SemiNAS是壹種半監督NAS方法,通過使用大量未標記的架構,進壹步提高了搜索效率。不需要訓練模型,只用代理模型來預測模型精度。預測網絡性能的主要困難在於,為了加快搜索過程,需要在較少評估大搜索空間的基礎上做出良好的預測。當優化空間過大且難以量化,各結構評估成本極高時,基於agent的方法不適用。

代理模型也可以用來預測網絡權重。超網絡是壹種神經網絡,其被訓練來為各種架構生成網絡權重。超網節省了候選體系結構在搜索過程中的訓練時間,因為它們的權重是通過超網的預測獲得的。Zhang等人提出了壹種圖表示法,並使用圖超網絡比傳統的SMASH算法更快、更準確地預測了所有可能結構的權重。

權值繼承就是讓新的網絡結構繼承之前已經訓練好的其他網絡結構的權值。壹種方法是網絡態射。壹般的網絡設計方法是先設計壹個網絡結構,然後在驗證集上訓練並檢驗其性能。如果性能不佳,請重新設計網絡。可以很明顯的發現,這種設計方法會做很多無用功,所以會耗費很多時間。基於網絡態射結構的方法可以在原網絡結構的基礎上進行修改,修改後的網絡可以重用之前訓練的權值。其特殊的變換方式可以保證新的網絡結構能夠恢復到原網絡,因此子網絡的性能至少不會比原網絡差,並且可以在較短的訓練時間內繼續成長為更健壯的網絡。具體來說,網絡態射可以處理任何非線性激活函數,可以添加跳轉連接,支持添加層或通道,得到更深或更廣的等價模型。經典的網絡態射只能讓網絡變大,可能導致網絡過於復雜。後來提出的近似網絡態射,通過知識的提煉,使得網絡結構得以約簡。進化算法往往采用基於網絡態射的變異,或者直接讓孩子繼承父母的權重,然後進行壹般的變異操作,使得生成的網絡具有更好的初始值,而不需要重新開始訓練。