李濤
摘要:卷積神經網絡在諸如目標識別、物體檢測等任務上取得了優異結果,然而設計一個性能優異的網絡依賴于專家知識。神經網絡搜索(NAS)致力于自動化的設計出高性能的卷積神經網絡,已經成為深度學習領域中的一個研究熱點。在本文中,介紹了不同的神經網絡搜索技術,并對每一種方法的優點和局限性進行了分析,最后指出了神經網絡搜索領域存在的主要挑戰和未來的研究方向。
關鍵詞:深度學習;卷積神經網絡;神經網絡搜索
中圖分類號:TP391 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)17-0177-02
Abstract: Convolutional neural networks have achieved excellent results on tasks such as target recognition and object detection. However, designing a network with excellent performance depends on expert knowledge. Neural architecture search (NAS) is dedicated to the automated design of high-performance convolutional neural networks, which has become a research hotspot in the field of deep learning. In this paper, different neural architecture search techniques are reviewed, and the advantages and limitations of each method are analyzed. Finally, the main challenges and research directions in the field of neural architecture search are pointed out.
Key words: deep learning; convolutional neural networks; neural architecture search
1 引言
神經網絡搜索(NAS)可以由三個部分組成,搜索空間、評估方法、搜索方法。搜索空間包含了所有可能被設計出的網絡結構,評估方法用來評估網絡結構性能,搜索方法決定了如何探索搜索空間并從中找出性能優良的網絡結構。接下來,將對這三部分進行仔細地介紹。
2 神經網絡搜索
2.1搜索空間
卷積神經網絡由卷積層、池化層和全連接層組成,決定卷積層類型的參數有卷積核大小、步長、通道數以及卷積類型等,決定池化層類型的參數有池化核大小、步長以及池化類型等,決定全連接層類型的參數則有通道數、激活函數等。卷積層、池化層以及全連接層可以看作組成卷積神經網絡的基本構件。通常,在神經網絡搜索方法中,搜索空間的定義決定了使用哪些基本構件以及如何使用這些基本構件來組成一個完整的卷積神經網絡。
在鏈式搜索空間中,卷積神經網絡是由一系列的卷積層、池化層和全連接層像一條長鏈那樣堆疊起來的,每一層只和之前的層存在連接。在鏈式搜索空間中,卷積神經網絡可以被寫成一個由多個網絡層組成的長序列。因此,鏈式搜索空間通常可以由兩類參數決定,一是網絡的深度即網絡層的個數,二是每一網絡層的具體類型,比如卷積層、池化層或者全連接層。比如,在Zoph[1]等人設計的搜索空間中,網絡是由不同的卷積層、池化層和全連接層按照鏈式順序組成的,神經網絡搜索方法需要預測每一網絡層的具體參數,比如通道數、步長等。一些經典的卷積神經網絡通過使用跳躍連接大大提升了網絡的性能。很多神經網絡搜索方法也在網絡搜索空間中的定義中使用了跳躍連接,這樣的搜索空間被稱為多分支網絡搜索空間。多分支網絡搜索空間可以由兩部分參數決定,一是不同層之間的連接方式,二是每一個網絡層的具體類型。基于多分支網絡搜索空間設計出的網絡結構性能往往優于基于鏈式搜索空間設計出的網絡結構。
2.2評估方法
神經網絡搜索方法需要對搜索出來的每一個網絡進行性能評估。最簡單的性能評估方法就是在訓練集上完整訓練網絡結構,并在驗證集上驗證網絡結構的性能。然而,由于搜索過程中需要評估成千上萬個模型,使用這種評估方法至少需要消耗幾十天的搜索時間。因此,很多研究者致力于降低評估網絡性能需要的計算資源。One-shot[2]方法定義了一個超網絡,搜索空間中的網絡都是這個超網網絡的子網絡,并且權重都繼承自這個超網絡。由于只需要訓練一個超網絡,one-shot方法能夠大大降低性能評估需要的計算資源。基于低保真的訓練方法,則在訓練過程中使用更少的訓練數據、更少的訓練批次或者更低分辨率的圖像,同樣降低了網絡性能評估需要消耗的計算資源。
2.3搜索方法
搜索方法決定了如何探索搜索空間并從中搜索到性能優異的網絡結構。進化算法[3]是一種比較經典的搜索方法,其通過模擬自然界的進化過程探索搜索空間。在進化算法中,單個網絡被看作進化的基本單位個體,網絡的性能用來表示相應個體的適應度,適應度高低來決定哪些網絡被選擇用來繁殖下一代個體,進化算法通過執行交叉、變異操作來具體產生下一代個體。通過模擬自然選擇的過程,進化算法能夠設計出高性能的網絡結構。強化學習算法[1]是另一種比較經典的搜索算法。在強化學習中,一個智能體負責設計網絡結構,其設計出來的網絡結構的性能被用作獎勵來更新智能體,使得智能體能夠設計出性能更加優異的網絡結構。可導的網絡搜索方法[4],則將網絡結構的搜索和網絡參數的訓練結合起來,將網絡結構看作一種可以訓練的參數,通過梯度傳播的方式訓練網絡參數以及網絡結構參數,從而搜索到具體的網絡結構。
3 挑戰和未來方向
目前大多數神經網絡搜索方法都用來處理分類任務,將神經網絡搜索方法應用到網絡壓縮、生成模型、語義分割等任務上成了一種迫切的需要。其次,如何處理多目標任務的需求也是神經網絡搜索方法面臨的一個挑戰,比如如何設計出高性能、低復雜度的網絡。此外,搜索空間決定了設計出的網絡結構性能的上限,然而大多數神經網絡搜索方法把研究重點放在性能評估和搜索方法上,因此迫切需要增加對搜索空間的研究。最后,不同的神經網絡搜索方法使用數據集不同,消耗計算資源不同,設計出的網絡復雜度不用,采用的正則化技術也不同,簡單地使用設計出的網絡性能來比較不同的神經網絡搜索方法并不公平,因此迫切需要制定一個基準來評價不同的神經網絡搜索方法。
4 總結
本文是對神經網絡搜索方法的全面綜述。神經網絡搜索方法可以由三個部分組成,搜索空間、搜索方法、評估方法,本文針對這三個部分進行了全面的介紹。最后,本文針對神經網絡搜索所面臨的挑戰和未來的研究方向進行了探討。隨著深度學習的發展,能夠自動化的設計出性能優異網絡結構的神經網絡搜索方法也將會越來越受到重視,本文能夠為相關研究者提供一定程度的參考。
參考文獻:
[1] Zoph B, Le Q V. Neural architecture search with reinforcement learning[J]. arXiv preprint arXiv:1611.01578, 2016.
[2] Bender G. Understanding and simplifying one-shot architecture search[J]. 2019.
[3] Real E, Moore S, Selle A, et al. Large-scale evolution of image classifiers[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017:.
[4] Liu H, Simonyan K, Yang Y. Darts: Differentiable architecture search[J]. arXiv preprint arXiv:1806.09055, 2018.
【通聯編輯:唐一東】