張文燁,尚方信,郭 浩,3
(1.中國人民大學信息學院,北京 100872;2.山西虛擬現實產業技術研究院有限公司,太原 030024;3.太原理工大學信息與計算機學院,太原030024)(*通信作者電子郵箱slicent@foxmail.com)
近年來,卷積神經網絡(Convolutional Neural Network,CNN)被成功應用于許多計算機視覺問題的解決上,例如圖像分類[1-2]、目標檢測[3]和實例分割[4]等。但隨著神經網絡性能的增強,這些模型所需的運算量也顯著上升。現代深度學習模型大多運行在大容量內存和高性能計算設備上,如圖形處理器(Graphics Processing Unit,GPU),帶來高昂計算成本;同時,移動設備和嵌入式設備搭載神經網絡模型的需求與日俱增,而相關應用程序的運算性能、功耗和可用內存,均受設備平臺的限制。因此,對計算和內存的高需求成為在移動設備上部署深度神經網絡模型的瓶頸。
目前,解決這一矛盾的途徑可分為三類:即模型量化[5-6]、模型剪枝[7-8]和神經網絡架構搜索[9]。其中,量化神經網絡及二值神經網絡(Binarized Neural Network,BNN),致力于在取值有限的離散空間中,表征卷積神經網絡的權值。與32 位浮點數運算相比,較低位寬環境下進行的運算顯著降低了運算量。特別地,二值神經網絡將權值和激活函數輸出約束至二值類型(即+1或-1),使得乘法和累加運算可以被二進制位運算代替,大幅降低了運算成本;然而,對網絡權值與激活值的量化操作將限制相關數值的信息表征能力,在低位寬環境下將導致嚴重的預測精度損失。為了兼顧運算效率與模型性能,Wu 等[10]基于微分神經網絡架構搜索技術,在盡量保持預測精度的同時,逐層搜索特定的量化位寬(bit 數),構建了混合精度模型。另一方面,2019 年,Chen 等[11]提出了Octave 卷積,將輸入的特征圖分解為高頻信息和低頻信息兩部分,使用降采樣壓縮了低頻特征圖分辨率,在不損失預測精度的同時,顯著降低了卷積運算量。
與最初的量化神經網絡相比,混合精度架構在模型性能上有了明顯進步。但是,現有方法大多僅考慮圖像語義信息,或依賴損失函數及梯度指導精度混合模式,沒有考慮不同位置、不同深度的卷積核對圖像信息成分的側重。
一幅如圖1(a)所示的自然圖像可以被分解為緩慢變化的,描述圖像全局結構信息的低頻分量(如圖1(b))及描述快速變化的精細局部細節的高頻分量(如圖1(c));同時,由于圖像低頻分量在全局范圍上緩慢變化,其對數值量化造成的信息損失不敏感。本文利用Octave 卷積的高低頻信息混合架構,提出一種新的混合精度方法,在每一個卷積運算層面實現了量化特征圖的混合,并未增加運算量。其次,得益于Octave卷積是一種網絡結構無關的傳統卷積層替代方案,本文方法可即插即用地適配任意卷積神經網絡架構。與Octave卷積相比,本文方法進一步節省了運算成本與內存需求。

圖1 圖像的高低頻分量示意圖Fig.1 High-and low-frequency components of an image
作為卷積神經網絡的輸入信號,自然圖像通常包含多種頻率成分,其中,圖像全局信息通常由低頻成分編碼,而圖像局部的精細結構則常由高頻成分來表現。如圖2 所示,現有的基于傳統卷積方法(vanilla convolution)搭建的卷積神經網絡,其中一部分卷積核被訓練用于提取低頻特征,另一部分則專注于提取高頻特征。傳統卷積方法未考慮圖像頻率信息的差異,未針對不同頻率的特征圖進行有差別的處理;同時,低頻信息在空間上變化較緩慢,因此對特征圖分辨率不敏感。若實現高低頻信息的差異化處理,則可以由降低低頻特征圖分辨率的方式,減少卷積運算量。

圖2 AlexNet的第一層卷積核的可視化Fig.2 Visualization of the first layer’s convolution kernel of AlexNet
2019 年,Chen 等[11]提出了Octave 卷積方法,如圖3 所示。圖中XH、XL代表輸入的高頻與低頻特征圖;WH→H、WL→L分別代表高頻至高頻、低頻至低頻的卷積核參數;WH→L、WL→H代表用于高頻與低頻信息融合的卷積核參數。Octave 卷積方法將輸入卷積層的特征圖沿通道方向分為兩組,由高低頻卷積核分別處理并進行升采樣/降采樣后,進行高低頻分量的混合,最終輸出特征圖的高頻與低頻分量。輸出通道數之和與傳統卷積輸出通道數相同,此外,空間上變化較緩慢的低頻特征圖分辨率被減半,以節約運算量。

圖3 Octave卷積方法示意圖Fig.3 Schematic diagram of Octave convolution method
研究人員指出,Octave 卷積并未改變輸出特征圖的總通道數,也未改變卷積核參數量,而是專注于降低卷積神經網絡在空間維度(特征圖寬高維度)的冗余,因而該方法與現有的多種網絡拓撲結構和減少網絡特征冗余的方法是正交和互補的,并可以即插即用地直接替代現有卷積層,不改變卷積網絡整體的網絡尺寸和模型參數量。
卷積神經網絡及相關改進方法在計算機視覺問題的解決上取得了廣泛成功,但絕大多數模型的研究工作是在32 位浮點數環境下進行的,并需要同樣的運算環境來部署模型。與此同時,卷積神經網絡模型對于運算性能和內存的高要求,成為限制相關方法部署于移動設備和嵌入式設備的瓶頸。
數值量化是指減少表示數值的二進制數位數的操作,兩組進行乘法/累加運算的二進制數位數越短,則運算量越小。研究人員發現,對神經網絡中權值與激活值進行量化,不僅有助于加快模型運算速度,降低內存需求和運算成本,還可以減少模型權值文件的存儲大小,節約硬盤存儲容量。自2013年Bengio等[12]提出直通梯度估計(Straight Through gradient Estimator,STE)方法,為量化模型的訓練提供了計算方法基礎后,研究人員已廣泛證明,可以使用8位整數(INT8)來表示模型權值和激活值,且不會導致模型精度的顯著損失。目前,研究人員致力于在不顯著損失模型精度的前提下,將神經網絡量化至更低的位寬(如4/2/1 bits),以進一步壓縮模型對運算資源的需求。
2016 年,Zhou 等[6]提出了DoReFa-Net,即基于DoReFa 量化方法構建的卷積神經網絡,該方法支持模型權值、激活值與梯度被量化至不同位寬。要執行DoReFa量化方法,首先需要定義如下的量化方程:

在DoReFa 量化方法中,激活值xf被裁剪至[0,1],并按照如下方式量化至離散值xq:

模型權值wf按照式(3)、(4)進行量化:

DoReFa 首次將梯度納入量化的范圍內,但量化神經網絡的主要應用場景是在高運算性能設備(如GPU)上進行模型訓練和超參搜索等工作;而在移動端與嵌入式設備上,僅執行加載預訓練權值和推斷計算,無需考慮梯度。此外,研究人員發現,使用DoReFa 量化方法搭建的二值神經網絡,難以取得令人滿意的預測精度。
近年來,研究人員在STE 方法及其他梯度估計方法的基礎上,提出了多種二值神經網絡方法。如Rastegari 等[13]于2016 年提出的XNOR-Net 不僅將模型權值與卷積層輸入均轉化為二值表示,并使用同或邏輯運算(XNOR)代替卷積神經網絡中的二進制向量點乘;通過引入比例因子的方法,幫助多個二值卷積核模擬全精度卷積核權值。2018 年,Liu 等[14]提出了Bi-Real Net,近似求解了不可微符號函數的梯度公式,并使用裁剪函數替代線性整流函數(Rectified Linear Unit,ReLU)為模型提供非線性變換。除通用的模型量化方法以外,2019 年,研究人員探索了目標檢測模型的量化壓縮問題,并取得成功[15]。此外,壓縮后模型的部署問題也在近期取得進展,如量化后模型已可以在FPGA 平臺[16]、ARM 移動端平臺[17]等算力敏感的場景上完成部署。
傳統卷積方法在輸入和輸出特征圖在所有通道上均使用相同的空間分辨率。同時,Octave Conv 的工作證明,自然圖像及其特征圖可以被分解為編碼全局信息的低頻分量與編碼局部細節信息的高頻分量,且現有卷積方法在空間分辨率上存在冗余。
為便于說明,本文將以四維張量表示的二維卷積核,沿卷積核的空間方向展開為三維張量。如圖4 所示,Octave Conv卷積核WH→H、WL→H、WH→L、WL→L可分別被看作傳統卷積核在輸入通道與輸出通道方向按比例的切分結果;ain和aout分別代表輸入特征圖與輸出特征圖在通道方向被分解為低頻特征圖的比例;k為二維卷積核尺寸。

圖4 QOCN卷積核示意圖Fig.4 Schematic diagram of convolution kernel of QOCN
目前,量化卷積神經網絡方法大多立足于對傳統卷積方法的卷積核的量化操作,在空間分辨率上同樣存在冗余信息。為進一步降低量化神經網絡的運算量,本文根據Octave Conv的思想將輸入特征圖分解為高頻和低頻兩部分,并將處理低頻信息的卷積核WL→L,WL→H使用Bi-Real 方法量化至1 bit,處理高頻信息的卷積核WH→H,WH→L由DoReFa 方法量化至較高的位寬。接著,沿用Octave Conv 的高低頻混合架構,同時完成頻率混合與量化位寬混合。這樣的量化卷積運算規則被命名為QOCN 卷積(Quantized Octave Convolution,QOCN),下文簡稱QOCN Conv。具體地,本文在實驗部分分別將高頻網絡分支量化至2 bits、4 bits、8 bits 和16 bits,并進行了對比實驗。
結合BiReal量化方法與DoReFa量化方法,結合式(4),有卷積核量化函數如下:

值得注意的是,對卷積運算的量化操作僅約束了卷積核的離散取值空間,并未限制輸入特征圖,即激活值的取值范圍。而全精度的激活張量中常常包含統計上的異常值,進而影響量化卷積輸出特征圖的取值,并帶來了額外的運算量。目前主流的量化方法以量化激活值的方式解決這一問題。與量化卷積類似,本文提出的QOCN 方法基于Bi-Real 方法的1 bit 激活函數與DoReFa 對激活函數的量化操作,將低頻卷積的輸出特征圖量化至1 bit;高頻卷積的輸出特征圖則量化至與高頻卷積核相同的位寬。
現代卷積神經網絡中,通常由卷積層、歸一化層和非線性激活層組成一個基本單元。本文方法需要通過量化激活函數的方式提供量化卷積圖,一個完整的QOCN Module 同樣由卷積、歸一化和激活函數三部分組成,輸入的高低頻特征圖經QOCN Conv 處理后,輸出混合精度的高低頻特征圖并分別進行歸一化處理。接著,高頻特征圖由DoReFa Net 方法的量化激活函數處理,低頻特征圖由Bi-Real Net方法的激活函數(符號函數)處理,分別進行非線性變換,最終輸出量化的特征圖。
在梯度反向傳播階段,BiReal 方法對1 bit 位寬下激活函數和量化卷積的梯度進行了近似估計,DoReFa 方法基于直通梯度估計方法,給出了量化激活函數與量化卷積的梯度估計。本文沿用了相關設定。
本章首先基于CIFAR-10/100 和ImageNet 在圖像分類任務上驗證了本文提出的QOCN 方法性能,即使用不同位寬分別量化卷積組內的高低頻分量,將多個卷積組按照特定拓撲結構相連,如殘差神經網絡(Residual neural Network,ResNet)、MobileNet 等,作為一個整體進行實驗。實驗結果表明,基于Octave Conv 卷積方法對高低頻特征圖的混合機制設計的混合精度模型,可以在較低的量化位寬環境下達到與全精度模型接近的預測精度。將QOCN模型按照低頻位寬+高頻位寬的方式命名,如QOCN(1+4)代表模型中每一卷積組的低頻分支被量化至1 bit,而高頻分支被量化至4 bits。其次,為進一步理解QOCN方法的工作原理,體現基于不同位寬的卷積核獲得的卷積結果,本文基于在ImageNet 上訓練的ResNet18-QOCN(1+8)模型進行了不同位寬的特征圖可視化,對比了量化操作對高低頻特征圖的信息表征能力的影響。本文實驗代碼:https://github.com/parap1uie-s/quantization_octconv。
為驗證混合精度的QOCN 方法的有效性,本文在3 個公開數據集CIFAR-10、CIFAR-100 和ImageNet 上進行了對比實驗,并使用標準數據擴增策略。具體來說,本文在CIFAR-10/100 上對訓練集圖像進行隨機水平翻轉和隨機垂直翻轉;在ImageNet 訓練集上使用隨機裁剪、隨機水平翻轉和隨機垂直翻轉,并調整圖像大小至224 px×224 px,ImageNet驗證集上將圖像大小調整至256 px×256 px 并進行中心裁剪至224 px,以匹配模型輸入尺寸。在數據預處理環節,本文根據各數據集的均值和方差對圖像進行了歸一化。
在相同迭代輪次與訓練計劃的約束下,基于預訓練全精度模型權值訓練出的量化模型,其預測精度要高于從隨機初始狀態開始訓練的量化模型。QOCN 模型均以相應的預訓練全精度模型權值作為初始權值。本文實驗詳細訓練計劃,如表1 所示。除表中列出數據以外,本文實驗基于PyTorch1.4和4x Nvidia-V100 GPU 完成,訓練過程中使用包含動量項的隨機梯度下降(Stochastic Gradient Descent,SGD)優化器調整模型參數,BatchSize=256,αin與αout均為0.5。

表1 訓練計劃Tab.1 Training plan
表2~4 展示了傳統卷積(Vanilla Conv)、Octave Conv 與QOCN 在相同的網絡架構下搭建模型的性能表現,以正確率(Top-1 Accuracy)為度量模型性能的指標,其中,正確率是指預測類別正確的樣本數量與總樣本量的比值。特別地,Top-1正確率以模型輸出概率最大值所屬類別與真實類別是否相等作為預測正確的標準。首先,本文在最為簡單的CIFAR-10數據集上采用ResNet-20 和ResNet-56 結構,對比了QOCN 方法與基線方法(Baseline)的性能。如表2 所示,采用Octave 卷積的全精度模型(32 bits Octave Conv)取得了最高的正確率,而高低頻分支均被量化至1 bit 的模型(1 bit Octave Conv)分類性能與全精度模型具有顯著差異;高低頻分支均被量化至8 bits 時(8 bits Octave Conv),可獲得與32 bits 全精度模型接近的分類性能。這表明全精度ResNet 結構在CIFAR-10 分類任務上具有冗余參數和模型容量,但不足以支持全部運算在1 bit下進行。采用本文提出的混合精度方法時,僅具有2 bits高頻分支、低頻分支仍保持1 bit 位寬的QOCN(1+2),其分類性能已接近全精度模型;QOCN(1+4)則取得了與8 bit Octave Conv 接近的分類性能,說明了混合精度方法的有效性,且進一步縮小了與全精度模型的差異。

表2 QOCN和基線模型在CIFAR-10數據集上的分類性能對比Tab.2 Classification performance comparison of QOCN with baseline models on CIFAR-10 dataset
值得注意的是,本文提出的混合量化方法試圖取得模型性能(正確率)與運算代價之間的平衡,即盡可能少地損失正確率以換取盡可能多地減少運算代價。在相同模型結構前提下,以加載卷積參數所消耗的內存空間計算,加載全1 bit模型占用內存約為全精度模型的3%;加載全8 bits模型占用內存約為全精度模型的25%。當αin與αout均為0.5時,以QOCN(1+8)為例,占用內存約為全精度模型的14%,全8 bits模型的56%;更激進的QOCN(1+2)則僅使用8 bits模型18%的內存消耗,獲得與1 bit模型相比近11%的正確率增幅,接近了全8 bits 模型的性能。特別地,定制化的計算設備使用移位運算實現1 bit參數相關的運算,其運算延時遠小于全精度模型的1/32。
CIFAR-10 數據集僅要求模型提供較為簡單的10 分類能力。為更加充分地展示QOCN 方法的優勢,說明該方法兼顧了模型分類性能與運算資源需求壓縮,本文引入了更為復雜的CIFAR-100 和ImageNet 數據集。相關實驗數據如表3 和表4所示。

表3 QOCN和基線模型在CIFAR-100數據集上的分類性能對比Tab.3 Classification performance comparison of QOCN with baseline models on CIFAR-100 dataset

表4 QOCN和基線模型在ImageNet數據集上的分類性能對比Tab.4 Classification performance comparison of QOCN with baseline models on ImageNet dataset
在CIFAR-100 的實驗中,本文選取MobileNet V2、ResNet-26 和ResNet-101 分別代表主流的輕量化網絡、中等規模網絡和大型網絡。其中,被量化至1 bit的MobileNet V2表現最差,證明輕量化網絡具有更少的冗余運算量;但基于QOCN(1+2)構建的MobileNet V2 的分類性能已顯著上升。同時,QOCN(1+4)構建的所有模型,在CIFAR-100和ImageNet上均可以獲得與全精度方法接近的分類性能。
為充分展示QOCN 混合精度方法的有效性,本文在ImageNet 數據集上進行進一步實驗,并與主流神經網絡量化方法XNOR-Net[13]、DoReFa-Net[6]和層量化網絡(Layer-wise Quantization Net,LQ-Net)[18]對比,并使用與對比方法相同的模型結構與量化方案,為與前段實驗區分,本段實驗以“QOCN*”標注。具體地,將典型的ResNet-18 結構中,“卷積+批歸一化+激活函數”的結構替換為“批歸一化+卷積+激活函數”的結構,并解耦低頻分支的權值與激活值的量化位寬,W為量化權值位寬,A 為激活值位寬;保持高頻分支量化位寬與激活值一致。實驗結果如表5 所示。其中,XNOR-Net 方法僅用于1 bit 模型量化,作為基線結果;LQ-Net 與Dorefa-Net 均遵循卷積結果量化與激活值量化的混合模式,且使用自適應量化器的LQ-Net 方法指標上優于Dorefa-Net。采用高低頻分支卷積的本文方法可更有效地提取圖像中全局與局部信息,并在相同量化參數下獲得了優于上述基線方法的正確率。

表5 所提方法與主流模型混合量化方法對比Tab.5 Comparison of the proposed methods with mainstream mixed precision methods for model
為進一步理解QOCN 方法的工作原理,本節從ResNet18-QOCN(1+8)模型Stage1的輸出抽取了特征圖。由于原始特征圖通道數為64,不便進行可視化。為盡量反映特征圖的原始分布,本文于32 bits位寬下,將特征圖沿通道方向逐像素平均后,未進行二值化等后處理,因此低頻分量特征圖可視化結果并非嚴格的二值化圖像。如圖5 所示,高頻分量(H→H、H→L)借助較高的位寬保留了絕大多數目標相關的局部細節,而低頻分量(L→H、L→L)則承載了較低位寬就可以表達的圖像全局特征。

圖5 QOCN(1+8)高低頻分支特征圖可視化Fig.5 Visualization of high-and low-frequency branch feature maps of QOCN(1+8)
基于Octave 卷積,本文提出一種即插即用式的量化卷積神經網絡方法,并使用典型卷積網絡ResNet50,在主流數據集CIFAR-10/100 和ImageNet 上進行了廣泛實驗。實驗驗證了本文方法的有效性,在模型壓縮至1 bit+4 bits時,本文方法仍能在ImageNet 數據集上取得超過70%的準確率。在下一步工作中,將對QOCN 方法和混合精度模型進行更廣泛研究,進一步減少量化產生的性能損失。