卷積神經網絡(Convolutional Neural Networks)特別是深度神經網絡(Deep Neural Networks)在計算機視覺任務上發揮著愈發重要的作用。在一個神經網絡模型中,通常 包含卷積層、匯合層、全連接層、非線形層等基本結構,通過這些基本結構的堆疊,最 終形成我們所常用的深度神經網絡。早在 1998 年,LeCun 等人使用少數幾個基本結構組 成 5 層的 LeNet-5 網絡[1],并在 MNIST 數據集上得到了 98.9%的分類精度,但此時的深 度神經網絡還相對簡單,并且只能用于簡單的任務上;在 2012 年的 ImageNet 圖像分類 競賽中,AlexNet[2]將深度提高到了 8 層,并且達到了遠超傳統方法的結果;此后,VGG 團隊提出的 VGG-Net[3]進一步加深了網絡,使網絡最高達到了 19 層。雖然增加網絡的 深度能夠帶來性能的提升,但也不能無限制的增加網絡深度,隨著網絡的加深,梯度消 失會愈發嚴重,并且模型會變得愈發難以訓練。因此在 2016 年,He 等人提出 ResNet[4], 在模型中加入殘差結構,并一舉將網絡的深度提高到 152 層。至此,隨著深度學習的研 究逐步推進,神經網絡可以變得更寬更深更復雜,與此同時帶來更好的表示能力和性能 表現。當一些研究者將模型變得更大、更深時,另一些則考慮在保持模型精度的同時使模 型變得更小、更快,其中一類重要的方法為模型壓縮。模型壓縮大致上可以分為四類:模型量化、模型剪枝、低秩近似和知識蒸餾。通常來說我們用 32 位浮點數來保存模型,模型量化主要考慮用更小位數來保存模型 參數,通常使用的有 16 位浮點數和 8 位整數,其參數量和計算量都會相應地隨著存儲位 數而成倍降低;更有甚者,將模型量化成二值網絡[5],三元權重[6]或者同或網絡[7]。例 如,經過簡單量化之后的 MobileNetV1[8]僅僅只有 4-5MB,能夠輕松部署在各種移動平臺上。
模型剪枝[9,10,11,12]主要分為結構化剪枝和非結構化剪枝,非結構化剪枝去除不重 要的神經元,相應地,被剪除的神經元和其他神經元之間的連接在計算時會被忽略。由 于剪枝后的模型通常很稀疏,并且破壞了原有模型的結構,所以這類方法被稱為非結構 化剪枝。非結構化剪枝能極大降低模型的參數量和理論計算量,但是現有硬件架構的計 算方式無法對其進行加速,所以在實際運行速度上得不到提升,需要設計特定的硬件才 可能加速。與非結構化剪枝相對應的是結構化剪枝,結構化剪枝通常以濾波器或者整個 網絡層為基本單位進行剪枝。一個濾波器被剪枝,那么其前一個特征圖和下一個特征圖 都會發生相應的變化,但是模型的結構卻沒有被破壞,仍然能夠通過 GPU 或其他硬件來 加速,因此這類方法被稱之為結構化剪枝。低秩近似[13,14,15]將一個較大的卷積運算或者全連接運算替換成多個低維的運算。常用的低秩近似方法有 CP 分解法[13],Tucker 分解[14]和奇異值分解[15]。例如,一個 ?? × ??的全連接操作若能近似分解為?? × ??和?? × ??(其中?? ? ??, ??)那么這一層全連接 操作的計算量和參數量將被極大地縮減。
知識蒸餾(Knowledge Distillation)[16]通過使用一個足夠冗余的教師模型,來將其 知識 “傳授”給緊湊的學生模型。在訓練時同時使用教師模型的軟標簽和真實標記的硬 標簽來共同訓練學生模型,從而能夠使學生模型達到接近教師模型的性能,也因此能夠 降低達到目標精度所需的計算量和模型大小。上述模型壓縮方法能配合使用,一個模型經過結構化剪枝之后,由于其結構沒有發 生重要變化,所以能緊接著進行低秩近似以減少參數量和計算量,最后再通過參數量化 進一步減少參數量并加速。近些年來,隨著物聯網的發展,企業將深度學習模型部署在 嵌入式設備的需求在快速增長,而嵌入式設備計算能力有限,并且由于成本原因希望部 署的模型盡可能地小。模型壓縮的意義在于保證精度的同時盡可能減少計算量和參數量, 因此對于嵌入式設備的部署有切實的價值。模型壓縮包含很多內容,這里我們將主要關 注剪枝算法中的結構化剪枝。在本章的剩余部分,我們將首先介紹結構化剪枝的一些基 本方式,然后介紹一些經典的和最新的結構化剪枝算法,最后對結構化剪枝的應用和未 來發展進行總結和展望。
近年來, 深度神經網絡(DNNs)在許多人工智能任務中取得卓越表現, 例如計算機視覺(CV)、自然語言處理(NLP). 然而, 網絡設計嚴重依賴專家知識, 這是一個耗時且易出錯的工作. 于是, 作為自動化機器學習(AutoML)的重要子領域之一, 神經結構搜索(NAS)受到越來越多的關注, 旨在以自動化的方式設計表現優異的深度神經網絡模型. 全面細致地回顧神經結構搜索的發展過程, 進行了系統總結. 首先, 給出了神經結構搜索的研究框架, 并分析每個研究內容的作用; 接著, 根據其發展階段, 將現有工作劃分為4個方面, 介紹各階段發展的特點; 然后, 介紹現階段驗證結構搜索效果經常使用的數據庫, 創新性地總結該領域的規范化評估標準, 保證實驗對比的公平性, 促進該領域的長久發展; 最后, 對神經結構搜索研究面臨的挑戰進行了展望與分析.
深度學習 (deep learning)[1]已成為現階段人工智能領域發展的重要推動力. 不同于傳統手工設計特征, 深度神 經網絡以一種端到端的方式, 自動提取數據深層表征, 已在多個人工智能學科領域內取得卓越表現, 例如計算機視覺 (computer vision)、自然語言處理 (natural language processing)、語音識別 (speech recognition)、智能機器人 (intelligent robot) 等. 盡管深度學習在上述領域內取得成功, 研究人員還是面臨著神經網絡設計困難的挑戰. 尤其 是當前手工設計的神經網絡結構越來越復雜, 不利于更多研究人員和從業人員使用深度學習. 于是, 研究者開始尋 求一種自動化方式, 實現自主設計神經網絡的目標, 即神經結構搜索 (neural architecture search, NAS).
自動化機器學習 (automated machine learning, AutoML) 是一種自動化的數據驅動方法, 并做出一系列決策. 僅需要使用者提供數據, 自動化機器學習技術能夠自動獲取最佳訓練方案, 極大地降低機器學習技術的應用難度. 作 為自動化機器學習的重要子領域之一, 神經結構搜索旨在以一種自動化的方式, 解決高難度的復雜神經網絡設計 問題. 具體上, 根據專家預先定義的搜索空間 (search space), 神經結構搜索算法在一個龐大的神經網絡集合中評估 結構性能并尋找到表現最佳的網絡結構. 自動化結構搜索的結果往往是專家手工設計過程中未考慮的, 能夠取得 更加優異的性能表現, 尤其在一些硬件資源受限的應用場景中, NAS 往往能取得驚人的效果. 神經結構搜索在超 參數選擇的過程中扮演著關鍵角色, 而且具有重要的理論意義和應用價值. 面向一種特殊的神經網絡結構超參數, 神經結構搜索聯合優化理論和機器學習理論, 有效地解決神經網絡模型的調參問題, 降低神經網絡的使用成本與 實現成本, 促使模型設計的智能化與神經網絡應用的大眾化.
近年來, 神經結構搜索成為人工智能領域中的熱點方向之一. 根據 automl.org 列舉的文獻情況, NAS 文章發表 時間與數量分布如圖 1 所示. 自 2015 年起, 關于 NAS 的文章數量呈現指數增長的趨勢. 回顧神經結構搜索技術的 發展, 本文對神經結構搜索的已有重點研究工作進行全面綜述. 在 NAS 算法發展的初期, NAS 算法通常采用采樣 重新訓練的策略, 即從預先定義好的搜索空間中采樣數量龐大的網絡結構, 分別對每個采樣結構重新訓練并評估 性能, 以獲取表現最佳的神經網絡. 這是廣大研究者公認的真正意義上的一種神經結構搜索方法, 實驗結果的優越 性也表明其有效性. 然而, 對于 Cifar-10 數據集, 這類方法需要應用 800 個圖形處理單元, 持續近一個月才能完成 對最佳結構的搜索. 因此, 這種采樣重新訓練策略對計算資源的需求過大, 不利于 NAS 領域的發展與落地應用. 于 是, 為了降低搜索階段的資源消耗, 神經結構搜索領域內應用最廣的一種加速方式: 權重共享策略 (weight-sharing strategy), 即盡可能地利用已經訓練好的模型, 避免重新訓練. 目前這種權重共享的搜索策略已經成為神經網絡結 構搜索的主流方向. 簡而言之, 首先將預先設定的搜索空間表示為已經訓練好的超級網絡 (super-network), 然后在 保留原始權重的同時, 直接對采樣的子結構 (sub-architectures) 進行性能評估, 不需要重新進行模型訓練.
自 2018 年起, 已經有多篇神經結構搜索的研究綜述[2?5]對該任務進行了介紹. Elsken 等人[2]給出了較全面的 神經結構搜索領域的研究內容, 并從搜索空間、搜索策略和性能評估 3 個維度對 NAS 方法進行分類介紹. Xie 等 人[4]深入分析基于權重共享的神經結構搜索方法, 并給出現階段存在的優化缺陷與解決方案, 是目前 NAS 領域最 全面的研究型綜述. 然而, 回顧并反思現階段的 NAS 發展, 最嚴重的問題就是實驗評估中的不公平比較, 以及評估 數據的局限性進一步限制神經結構搜索算法的通用性能, 這兩個角度目前尚未在上述綜述論文中得到分析, 我們 將詳細分析并給出相應的解決方案.
為了給讀者提供清晰直觀的 NAS 發展經歷, 本文創新性地根據其發展階段, 將現有工作劃分為 4 個階段, 即 早期、快速發展期、應用期和反思期. 我們認為這種劃分方式能夠對今后研究 NAS 的工作人員提供很好的研究基礎, 更好地了解本領域的技術發展. 本文重點分析現階段 NAS 算法在實驗評估環節的缺陷, 建設性地提出規范 化評估手段, 公正客觀地對比不同方法, 推動該領域的良好發展與落地. 最后, 我們根據自身的研究基礎, 概括 NAS 領域的現有問題與挑戰, 提出若干點未來可能的研究方向, 幫助新的從業人員快速著手神經結構搜索研究.
近年來,卷積神經網絡(CNN)憑借強大的特征提取和表達能力,在圖像分析領域的諸多應用中取得了令人矚目的成就。但是,CNN性能的不斷提升幾乎完全得益于網絡模型的越來越深和越來越大,在這個情況下,部署完整的CNN往往需要巨大的內存開銷和高性能的計算單元(如GPU)支撐,而在計算資源受限的嵌入式設備以及高實時要求的移動終端上,CNN的廣泛應用存在局限性。因此,CNN迫切需要網絡輕量化。目前解決以上難題的網絡壓縮和加速途徑主要有知識蒸餾、網絡剪枝、參數量化、低秩分解、輕量化網絡設計等。首先介紹了卷積神經網絡的基本結構和發展歷程,簡述和對比了五種典型的網絡壓縮基本方法;然后重點針對知識蒸餾方法進行了詳細的梳理與總結,并在CIFAR數據集上對不同方法進行了實驗對比;其后介紹了知識蒸餾方法目前的評價體系,給出多類型方法的對比分析和評價;最后對該技術未來的拓展研究給出了初步的思考。
摘要: 隨著深度神經網絡和智能移動設備的快速發展,網絡結構輕量化設計逐漸成為前沿且熱門的研究方向,而輕量化的本質是在保持深度神經網絡精度的前提下優化存儲空間和提升運行速度。闡述深度學習的輕量化網絡結構設計方法,對比與分析人工設計的輕量化方法、基于神經網絡結構搜索的輕量化方法和基于自動模型壓縮的輕量化方法的創新點與優劣勢,總結與歸納上述3種主流輕量化方法中性能優異的網絡結構并分析各自的優勢和局限性。在此基礎上,指出輕量化網絡結構設計所面臨的挑戰,同時對其應用方向及未來發展趨勢進行展望。
深度神經網絡在圖像識別、語言識別和機器翻譯等人工智能任務中取得了巨大進展,很大程度上歸功于優秀的神經網絡結構設計。神經網絡大都由手工設計,需要專業的機器學習知識以及大量的試錯。為此,自動化的神經網絡結構搜索成為研究熱點。神經網絡結構搜索(neural architecture search,NAS)主要由搜索空間、搜索策略與性能評估方法3部分組成。在搜索空間設計上,出于計算量的考慮,通常不會搜索整個網絡結構,而是先將網絡分成幾塊,然后搜索塊中的結構。根據實際情況的不同,可以共享不同塊中的結構,也可以對每個塊單獨搜索不同的結構。在搜索策略上,主流的優化方法包含強化學習、進化算法、貝葉斯優化和基于梯度的優化等。在性能評估上,為了節省計算時間,通常不會將每一個網絡都充分訓練到收斂,而是通過權值共享、早停等方法盡可能減小單個網絡的訓練時間。與手工設計的網絡相比,神經網絡結構搜索得到的深度神經網絡具有更好的性能。在ImageNet分類任務上,與手工設計的MobileNetV2相比,通過神經網絡結構搜索得到的MobileNetV3減少了近30%的計算量,并且top-1分類精度提升了3.2%;在Cityscapes語義分割任務上,與手工設計的DeepLabv3+相比,通過神經網絡結構搜索得到的Auto-DeepLab-L可以在沒有ImageNet預訓練的情況下,達到比DeepLabv3+更高的平均交并比(mean intersection over union,mIOU),同時減小一半以上的計算量。神經網絡結構搜索得到的深度神經網絡通常比手工設計的神經網絡有著更好的表現,是未來神經網絡設計的發展趨勢。
//www.cjig.cn/jig/ch/reader/view_abstract.aspx?file_no=20210202&flag=1
近年來,隨著深度學習的飛速發展,深度神經網絡受到了越來越多的關注,在許多應用領域取得了顯著效果。通常,在較高的計算量下,深度神經網絡的學習能力隨著網絡層深度的增加而不斷提高,因此深度神經網絡在大型數據集上的表現非常卓越。然而,由于其計算量大、存儲成本高、模型復雜等特性,使得深度學習無法有效地應用于輕量級移動便攜設備。因此,壓縮、優化深度學習模型成為目前研究的熱點,當前主要的模型壓縮方法有模型裁剪、輕量級網絡設計、知識蒸餾、量化、體系結構搜索等。通過對以上方法的性能、優缺點和最新研究成果進行分析總結,對未來研究方向進行了展望。
摘要:卷積神經網絡在廣泛的應用中取得了優秀的表現,但巨大的資源消耗量使得其應用于移動端和嵌入式設備成為了挑戰。為了解決此類問題,需要對網絡模型在大小、速度和準確度方面做出平衡。首先,從模型是否預先訓練角度,簡要介紹了網絡壓縮與加速的兩類方法——神經網絡壓縮和緊湊的神經網絡。具體地,闡述了緊湊的神經網絡設計方法,展示了其中不同運算方式,強調了這些運算特點,并根據基礎運算不同,將其分為基于空間卷積的模型設計和基于移位卷積模型設計兩大類,然后每類分別選取三個網絡模型從基礎運算單元、核心構建塊和整體網絡結構進行論述。同時,分析了各網絡以及常規網絡在ImageNet數據集上的性能。最后,總結了現有的緊湊神經網絡設計技巧,并展望了未來的發展方向。
A Survey of Model Compression and Acceleration for Deep Neural Networks 深度卷積神經網絡(CNNs)最近在許多視覺識別任務中取得了巨大的成功。然而,現有的深度神經網絡模型在計算上是昂貴的和內存密集型的,這阻礙了它們在低內存資源的設備或有嚴格時間延遲要求的應用程序中的部署。因此,在不顯著降低模型性能的情況下,在深度網絡中進行模型壓縮和加速是一種自然的思路。在過去幾年中,這方面取得了巨大的進展。本文綜述了近年來發展起來的壓縮和加速CNNs模型的先進技術。這些技術大致分為四種方案: 參數剪枝和共享、低秩因子分解、傳輸/緊湊卷積過濾器和知識蒸餾。首先介紹參數修剪和共享的方法,然后介紹其他技術。對于每種方案,我們都提供了關于性能、相關應用程序、優點和缺點等方面的詳細分析。然后我們將討論一些最近比較成功的方法,例如,動態容量網絡和隨機深度網絡。然后,我們調查評估矩陣、用于評估模型性能的主要數據集和最近的基準測試工作。最后,對全文進行總結,并對今后的研究方向進行了展望。