解讀百度AutoDL:打破SOTA紀錄的神經架構搜尋是如何煉成的
機器之心原創,作者:邱陸陸。
近日,百度大資料實驗室在 arXiv 上釋出了兩篇論文,一篇給出了任何深度學習網路在小學習率情況下的收斂性證明,包括用 AutoDL 搜出來的網路,另一篇則提供了一個正則化的方法,讓 AutoDL 搜尋到的網路的訓練結果超過了之前所有公開報道的結果。基於 PaddlePaddle 框架實現的程式碼已經開源,相應功能也可以通過百度 EasyDL 免費使用,這是繼去年 11 月 AutoDL 2.0 於 2018 百度世界大會上正式釋出以來,AutoDL 的又一次重要更新。
機器之心就 AutoDL 各方向的設計思路和論文內容採訪了百度大資料實驗室主任浣軍教授,以下為採訪實錄。
機器之心:百度開發 AutoDL 的初衷是什麼?想要實現什麼目標?
AutoDL 的理念,用一句話來概括,就是「開放普惠 AI」,讓廣大中小企業、初創企業和個人能夠更方便地應用大資料和深度學習。
現在,這些能力主要掌握在大公司研發中心或者高校中間,並未向中小企業和初創企業輻射,原因在於大資料分析和深度學習對硬體、軟體以及工程技術人員的能力要求都比較高。
AutoDL 所做的事情,就是用深度學習來設計深度學習,從而實現讓大家都能夠快速用到這項能力。我們的願景是把如今的「深度學習模型藝術品」變成「深度學習模型工業產品」,讓深度學習的模型能夠像工廠的產品一樣被大規模地生產出來。
機器之心:這一目標具體由哪些需求組成?如何滿足這些需求?
我們從三個維度思考這件事。硬體、應用場景和模態的多樣化決讓 AI 演算法的維度空間極為龐大。想要儘可能探索這一空間,就必然要從手工設計模型,轉向自動化生產模型,快速高效地產生能夠適配不同硬體、支援不同場景、適應不同模態的深度學習模型。
為了實現這些需求,我們將 AutoDL 分成三個部分,分別是 AutoDL Design,AutoDL Transfer 和 AutoDL Edge。
AutoDL Design 根據使用者提供的資料集從頭設計全新深度學習模型。
AutoDL Transfer 支援小資料建模,利用百度擁有的大量資料預訓練好的模型遷移到使用者具體的應用場景上。
AutoDL Edge 將深度學習模型部署到擁有不同算力、記憶體資源的硬體上,滿足不同的能源消耗、響應時間需求。是 AI 和 IoT 的結合,是深度學習和邊緣計算的完美結合。
AutoDL Design:更大的模型結構搜尋空間帶來更佳的效果
機器之心:從使用者給出標註資料集到拿到自動設計好的模型結構,是一個什麼樣的過程?
現在 AutoDL Design 有多條技術路線,但總的來說仍然是一個端到端的訓練過程。百度在模型結構優化方面選擇了兩條主要技術路線。
第一條技術路線利用深度增強學習完成設計。系統由兩部分組成,第一部分是網路結構的編碼器,第二部分是網路結構的評測器。
編碼器通常以 RNN 的方式把網路結構進行編碼,然後評測器把編碼的結果拿去進行訓練和評測,拿到包括準確率、模型大小在內的一些指標,反饋給編碼器,編碼器進行修改,再次編碼,如此迭代。經過若干次迭代以後,最終得到一個設計好的模型。
為了效能考慮,迭代中用到的訓練資料通常是幾萬張規模的資料集(比如 CIFAR-10),模型設計結束後,會用大規模資料(比如 ImageNet)重新訓練一次,進一步優化引數。

第二條技術路線是將結構圖構建為可微的結構。即,連線節點的邊不再是非 0 即 1 的狀態,而是變成一個可求微分的概率。
除此之外,我們還進行了超引數優化,正則化訓練等其他一系列優化,最終,我們在 CIFAR-10 上取得了正確率 98% 以上,這個結果優於所有有公開報道的設計網路效果,包括人類專家設計的和機器自動設計的。
機器之心:能否更詳細地解釋基於深度增強學習的技術路徑裡編碼器與評測器的工作?迭代過程中計算資源消耗情況?
編碼器的可以從一個隨機的模型開始,也可以從一種已知的模型出發。從效能角度考慮,通常我們會選擇從一個較優的模型結構出發。
模型優化分為三個層級,分別是單元格優化,單元格連線方式優化以及超引數優化。單元格(cell)是模型的基本結構,每個單元格由幾個到十幾個節點(node)組成。每個節點都是一種常見的操作,例如一次卷積運算就是一個節點,常見的節點中的操作有十個左右。

獎勵函式是一個正確率的函式。這裡的正確率並不是說每進行一次迭代就要在全部訓練資料上訓練到完全收斂。而是採用了「提前終止」(early stopping)的方法,用訓練到一定程度的結果來預測最終結果。
在 CIFAR-10 級別的資料集上(數萬張圖片),每次迭代平均需要不到 1 GPU hour,從開始搜尋到找到理想的模型結構,平均需要進行 50~200 次迭代。
機器之心:AutoDL Design 設計出的模型結構與人工設計的模型結構有什麼區別?
如果把影象識別的常見模型用有向無環圖表示出來,我們會發現:VGG 模型的結構是線性的;ResNet 線上性結構的基礎上添加了「跳層連線」;Inception 模型的結構更偏向樹狀。而 AutoDL Design 的不受任何現成網路結構的約束,能夠在所有可能的有向無環圖空間內進行探索。

另外,AutoDL Design 的一個特點是可以實現多目標優化:如果目標除了效果好之外,還對模型大小、執行時間有要求,系統也可以根據要求完成設計。
AutoDL Transfer:「小資料」也可以建「大模型」
機器之心:能否介紹一下 AutoDL Transfer 的優化方式?
AutoDL Transfer 是在 ResNet、DenseNet、VGG、Inception 等經典網路的基礎上,進行了一些基於人工經驗的元件改良,以及採用了超參優化技術進行搜尋。例如,我們增加了雙線性(bilinear)元件,把經過層層卷積的向量再進行兩兩組合,讓特徵更為豐富。
AutoDL Transfer 現在提供兩種服務,分別是靜態模型(Static Model)和動態模型(Dynamic Model)。
靜態模型是在大量已有資料集上進行測試後,選出能夠在大部分資料集上取得優異效能的模型結構,然後利用使用者資料精調模型引數。
動態模型則會根據使用者資料在不同元件以及超參的組合中重新進行一次搜尋。和靜態模型相比,動態模型能夠針對使用者資料進行更加精細的優化,但也需要使用者提供更多資料。

機器之心:什麼樣的使用者場景適合選擇 AutoDL Transfer?AutoDL Transfer 對使用者資料規模有什麼要求?
首先,資料量比較小的情景下,很難從頭訓練大模型,此時 AutoDL Transfer 仍然能保證一個很好的模型效果。
同時,即使使用者資料量比較大,遷移學習仍然能把初始階段從大規模資料集中習得的物體特徵的知識以引數的形式帶入到接下來有針對性的優化過程中,效果往往比從頭訓練要好。
AutoDL Transfer 還使用了一些百度自己研發的技術,包括自動資料增強、遷移過程中正則化項的優化等。這些技術都有助於在小資料條件下提升模型泛化能力,因此 AutoDL Transfer 對使用者資料規模幾乎沒有限制,分類任務中,每個類別的資料可以只有 100 張甚至幾十張。使用者可以在上傳資料後幾分鐘就拿到訓練好的模型結果。關於 AutoDL Transfer 的最新進展,可以見我們在 ICLR 2019 上發表的文章。

AutoDL Edge:事半功倍的終端計算
機器之心:AutoDL Edge 採用了哪些優化方法?
AutoDL Edge 主要旨在對模型進行壓縮,使得同等邊緣算力支援更多 AI 能力,從而拓寬應用場景。
因為市面上有非常多不同的硬體配置,因此我們的團隊先研究了一些裝置無關的通用的模型壓縮演算法,這類演算法能夠同時減小網路規模、提升推理速度且不改變模型的效能。
濾波器剪枝(Filter Pruning)就是其中一種典型的技術。我們會估算每一個卷積核的重要程度,在每一個卷積層中,去掉那些不那麼重要的卷積核。此外,我們也會對計算資源消耗最大的全連線層做矩陣低秩分解,加速矩陣乘法。

觀察到深度卷積網路的引數主要集中在卷積核上,我們最新採用的模型壓縮演算法通過引數共享來壓縮卷積核的引數空間。我們提出了一種新的卷積核的表示方式,使得卷積核可以在訓練過程中自動進行引數共享。我們提出的引數共享模型可以從頭開始訓練,而不是需要先訓練出一個大模型然後使用引數共享或者其他的壓縮方法。配合引數量化(quantization)方法,我們的方法在 CIFAR-10 上在準確率僅降低 0.27% 的條件下將 ResNet-18 壓縮了 50 多倍。在目標檢測任務上,我們的方法將 Single Shot MultiBox Detector(SSD)網路進行了有效壓縮,在引數數量(0.45M)明顯小於 Tiny SSD(1.13M)下,在 VOC 2007 的測試集上的平均準確率(mAP)反而有大幅提升。
此外,還有一些針對性特定晶片的優化,裝置提出了算力、能耗、響應時間等約束。而演算法設法在這些約束之下降低運算量,壓縮模型大小。一旦將模型壓縮到快取可以容納的大小,就可以極大加速 I/O。
值得一提的是,模型壓縮的過程也是自動化的。
同時,我們也在探索用 AutoDL Design 的思路,不需要針對一個大模型進行壓縮,而是從頭尋找一個小模型。
機器之心:關於此次公開的兩篇新論文,神經網路的收斂性證明有什麼意義?
深度神經網路廣泛使用隨機梯度下降,其優化的特性,例如是否會離開區域性最優,收斂到全域性最優一直是大家關心的問題,最近這方面也有一些有意思的進展。我們的探索主要集中在構造一族損失函式。通過這樣的構造,我們可以在即使學習率非常低的情況下,對於每一個區域性最優,證明 SGD 都一定的概率逃逸出區域性最優。逃逸概率不但與極值點的值有關而且我們也證明了與極值點附近的幾何性質有關。如果我們跑 SGD 足夠長時間,SGD 會以馬氏鏈的方式遍歷區域性最優,可以大概率收斂到全域性最優。基於這幾點,我們期望未來對極值點附近的幾何性質的研究會對深度學習有強有力的促進作用。
機器之心:第二篇論文提出,利用區域性拉德馬赫複雜度做正則化,從而提高網路泛化特性,能否詳細介紹一下其做法?
深度學習的核心問題之一在於如何保證在有限樣本上學到的分類器或者預測函式能在將來未觀察到的資料,例如測試資料上,仍然有預測錯誤率的保證。因為在資料點上的 0-1 的離散錯誤很難精確優化,在通常的實踐中,預測函式都是通過在訓練資料上最小化一個損失函式得到,這個經驗函式一般是預測錯誤率的一個上界。在統計中分類器在訓練集和測試集之間的差,可以用預測函式族的一個被稱之拉德馬赫複雜度的標準來衡量。預測函式族越小,拉氏複雜度也越小,經驗損失和泛化損失的差距也越小。拉氏複雜度在經典支援向量機有這廣泛的應用。
目前深度神經網路成為廣泛應用的預測函式。因為神經網路的多層結構,其所屬的函式族可以逼近任意的連續函式,這使得許多經典的用函式族的拉德馬赫複雜度作為正則化項的統計學習方法無法進行。但統計學習領域中的區域性拉德馬赫複雜度,即只考慮全函式族的一個子族上的拉德馬赫複雜度,卻可以避開全域性拉德馬赫複雜度的問題。
我們提出的區域性拉德馬赫複雜度方法借鑑了已有的區域性拉德馬赫複雜度方法,僅考慮在經驗損失函式的極小值點附近的一個球內的拉德馬赫複雜度。採用最近的拉德馬赫複雜度的估計方法,我們對摺頁損失函式 (Hinge Loss) 和交叉熵(cross entropy)推得了這個固定值的表示式,並且將其稱之為區域性拉德馬赫正則化項,並加在經驗損失函式上。我們對提出的區域性拉德馬赫正則化方法在標準的網路結構(即 ResNet-18)和 CIFAR-10 上進行了實驗,發現其可以有效降低損失函式在測試資料上的值並且提高預測準確率,體現了增強的泛化效能。我們進一步將該方法應用到被搜尋出來的網路結構上,發現區域性拉德馬赫正則化方法和其他的提高泛化效能的方法,包括混合(mix-up)和模型整合(model ensemble),可以相容。將我們的正則化方法作用在混合和模型整合之後,我們得到了 CIFAR-10 上目前最好的準確率。在我們的文章中也提供了基於PaddlePaddle框架實現的開原始碼。
進化中的 AutoDL:劍指「一步到位」的深度學習模型
機器之心:從 AutoDL 1.0 到 AutoDL 2.0,系統發生了哪些變化?
主要有三方面變化。
第一,在自動設計效果上,現在的 AutoDL 設計出的神經網路已經全面超過人類專家設計的網路效果。影象識別公開資料集 CIFAR-10 上,達到了超過 98% 的正確率。這個效果優於所有有公開報道的人類專家設計的網路的效果。
第二,在模態方面,除了視覺之外,我們也增加了對語音任務的支援,包括語音模型壓縮、語音模型自動建模等。
第三,在模型適配上,我們增加了一些具體的應用案例,包括對一些可以用於新零售的視覺硬體的支援。
機器之心:AutoDL 團隊現在在進行哪些新方向的探索?
我們特別關心 AutoDL 三個方向的結合,換言之,能不能同時完成模型的設計、遷移和適配。
這也是我們在強化學習技術路徑之外,也同時關注可微分結構路徑的原因:可微分結構既可以用於自動模型搜尋,也可以用於遷移學習。模型的安全性也是我們重點關注的方向。我們希望設計的網路能夠抗攻擊並且具有一定的可解釋性。
References:
1. Wenqing Hu, Zhanxing Zhu, Haoyi Xiong, Jun Huan, Quasi-potential as an implicit regularizer for the loss function in the stochastic gradient descent, https:// arxiv.org/abs/1901.0605 4
2. Yingzhen Yang, Xingjian Li, Jun Huan, An Empirical Study on Regularization of Deep Neural Networks by Local Rademacher Complexity, https:// arxiv.org/abs/1902.0087 3
3. ICLR'19】 Xingjian Li, Haoyi Xiong, Hanchao Wang, Yuxuan Rao, Liping Liu, Jun Huan, DELTA: Deep Learning Transfer Using Feature Map with Attention for Convolutional Networks, the Seventh International Conference on Learning Representations (ICLR’19), New Orleans, Louisiana, USA, May 2019 https:// openreview.net/forum? id=rkgbwsAcYm
4. PaddlePaddle code available at: https:// github.com/PaddlePaddle /models/tree/develop/fluid/AutoDL/LRC