徐鵬濤 曹健 陳瑋乾 劉晟榮 王源 張興
基于離群值去除的卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練后量化預(yù)處理方法
徐鵬濤 曹健?陳瑋乾 劉晟榮 王源 張興?
北京大學(xué)軟件與微電子學(xué)院, 北京 102600;?通信作者, E-mail: caojian@ss.pku.edu.cn (曹健), zhx@pku.edu.cn (張興)
為了提高訓(xùn)練后量化模型的性能, 提出一種基于離群值去除的模型訓(xùn)練后量化預(yù)處理方法。該方法僅通過排序、比較等簡(jiǎn)易的操作, 實(shí)現(xiàn)權(quán)重、激活值的離群值去除, 使模型在量化時(shí)僅損失少量的信息, 從而提升量化模型的精度。實(shí)驗(yàn)結(jié)果表明, 在使用不同的量化方法前, 采用所提方法進(jìn)行預(yù)處理, 可顯著地提升性能。
卷積神經(jīng)網(wǎng)絡(luò); 訓(xùn)練后量化; 預(yù)處理; 離群值去除; 圖像分類
隨著算力的不斷增強(qiáng), 深度學(xué)習(xí)模型規(guī)模越來越大, 在各種計(jì)算機(jī)視覺任務(wù)中表現(xiàn)出越來越優(yōu)異的性能[1–3]。但是, 資源有限的終端設(shè)備卻難以部署龐大的模型, 即使勉強(qiáng)部署, 模型的實(shí)際推理速度也難以達(dá)到實(shí)際使用的要求。為在保證模型精度的情況下減小模型規(guī)模, 研究者提出模型剪枝[4–8]、模型量化[9–12]和自動(dòng)化搜索[13–15]等模型壓縮方法。其中, 模型量化為模型壓縮中的一種主流的方法, 分為訓(xùn)練中量化和訓(xùn)練后量化。
訓(xùn)練中量化即在訓(xùn)練中模擬量化過程, 最大程度地減少量化帶來的精度誤差, 其代表作 IAO 由Jacob 等[10]2017 年提出。該方法引入模擬量化, 通過線性量化方法, 將權(quán)重和激活值量化為 8 位定點(diǎn)數(shù), 取得不錯(cuò)的效果。DoReFaNet[11]使用 tanh 函數(shù)進(jìn)行非線性量化, 調(diào)整量化精度, 降低量化誤差。雖然訓(xùn)練中量化可以取得優(yōu)異的性能, 但由于必須在訓(xùn)練時(shí)就介入模型優(yōu)化的特點(diǎn), 并不適合快速的工程應(yīng)用。
訓(xùn)練后量化指對(duì)訓(xùn)練好的浮點(diǎn)模型進(jìn)行量化, 通常僅使用少量的校準(zhǔn)信息來獲得合適的量化參數(shù)。此類方法能在很短的時(shí)間內(nèi)對(duì)模型完成量化, 非常適合應(yīng)用部署, 目前很多主流的終端推理框架都使用此類方法。比如, 阿里巴巴的 MNN[16]框架采用 8 位線性量化的方法, 在嵌入式終端有優(yōu)異的推理效果。
對(duì)模型進(jìn)行量化后, 模型精度通常會(huì)有一定程度的下降, 而訓(xùn)練后量化方法下降的程度會(huì)更大。為了減小精度損失, 本文從量化的基本原理出發(fā), 提出一種預(yù)處理方法, 即在量化前對(duì)模型權(quán)重和激活值進(jìn)行離群值去除, 以期提高量化后模型的精度。
訓(xùn)練后量化中最重要的一點(diǎn)是找到合適的縮放因子值, 該值表示浮點(diǎn)值和量化值的比例關(guān)系。圖1 展示 8 位對(duì)稱量化時(shí)二者的對(duì)應(yīng)關(guān)系, 其縮放因子值由最大、最小值中絕對(duì)值最大的決定。
可以看到, 圖 1 中浮點(diǎn)值的最大值偏離其他值的距離過大, 導(dǎo)致量化值的空白區(qū)間過大, 無法很好地利用量化值有限的信息去表達(dá)原始模型的浮點(diǎn)值信息, 致使量化模型精度顯著下降。本文將類似圖 1 中最大值這樣的值定義為離群值。由于卷積神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的魯棒性, 去除離群值幾乎不會(huì)影響原始浮點(diǎn)模型的精度。因此, 本文提出一種量化預(yù)處理方法, 在量化前將這些離群值去除掉, 從而有效地提升量化模型的精度。圖 2 展示離群點(diǎn)去除后浮點(diǎn)值與量化值的對(duì)應(yīng)關(guān)系, 其中去除的離群值對(duì)應(yīng)量化的最值。量化分為權(quán)重量化和激活值量化, 本文將針對(duì)兩種量化方法分別設(shè)計(jì)離群值去除方法。
1)對(duì)原始浮點(diǎn)模型權(quán)重進(jìn)行求絕對(duì)值運(yùn)算, 得到絕對(duì)值權(quán)重。
2)對(duì)絕對(duì)值權(quán)重進(jìn)行降序排列運(yùn)算, 得到排序權(quán)重。
3)將排序靠前占比為的權(quán)重視為離群值, 并獲得除去離群值后排序權(quán)重的最大值。
4)將原始浮點(diǎn)模型中的離群值改變成絕對(duì)值為, 符號(hào)(即正負(fù))與原始浮點(diǎn)模型中符號(hào)相同的更新值, 即完成離群值的去除。
圖1 8位對(duì)稱量化浮點(diǎn)值、量化值對(duì)應(yīng)關(guān)系
圖2 離群值去除后8位對(duì)稱量化浮點(diǎn)值與量化值對(duì)應(yīng)關(guān)系
與權(quán)重不同, 模型的激活值隨著輸入圖片的不同而變化, 因此無法像權(quán)重一樣直接對(duì)離群值進(jìn)行去除操作。本文采用閾值去除的方式, 在量化前求得離群值閾值, 然后在量化時(shí)進(jìn)行動(dòng)態(tài)離群值去除。為了求得激活離群值閾值, 需要將部分圖片進(jìn)行推理, 獲取模型激活值。考慮到訓(xùn)練后量化操作也需要圖片, 因此本文使用與量化時(shí)相同的圖片。去除離群值的步驟如下。
1)將量化時(shí)圖片依次輸入神經(jīng)網(wǎng)絡(luò), 獲取每層的激活值。
2)對(duì)激活值進(jìn)行求絕對(duì)值的運(yùn)算, 得到激活值的絕對(duì)值。
3)對(duì)激活值的絕對(duì)值進(jìn)行降序排列運(yùn)算, 得到排序激活值。
5)量化時(shí)將絕對(duì)值大于的激活值視為離群值, 將其改變成絕對(duì)值為, 符號(hào)(即正負(fù))與原始激活值符號(hào)相同的更新值后再進(jìn)行運(yùn)算, 即完成離群值的去除。
雖然上述方法中激活離群值去除的實(shí)際操作是在量化中完成, 但去除操作十分簡(jiǎn)單, 且?guī)缀醪粫?huì)耗費(fèi)時(shí)間, 耗時(shí)操作實(shí)際上是在量化前完成的求閾值操作。因此, 本文提出的激活離群值去除方法依然可視為一種預(yù)處理操作, 可簡(jiǎn)單地應(yīng)用于各種量化方法中。
在模型訓(xùn)練后, 結(jié)合上文所提兩種方法進(jìn)行量化前預(yù)處理, 消除離群值導(dǎo)致的量化中空白區(qū)間過大問題, 使量化模型對(duì)原始浮點(diǎn)模型進(jìn)行更好的表達(dá), 使量化模型的性能更加優(yōu)異。圖 3 展示使用本文預(yù)處理方法進(jìn)行訓(xùn)練后量化的具體流程。
將本文提出的預(yù)處理方法結(jié)合不同的訓(xùn)練后量化方法, 在不同數(shù)據(jù)集以及不同網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行實(shí)驗(yàn), 驗(yàn)證本文方法的有效性和普遍適用性。
本文采用規(guī)模不同的圖像分類數(shù)據(jù)集 CIFAR-10[17]和 ImageNet[18], 在 VGG[19]、ResNet[20]和 Mob-ileNet[21]網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行實(shí)驗(yàn)。所用數(shù)據(jù)集及對(duì)應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)概況如表 1 所示。
圖3 預(yù)處理及量化流程
本文采用阿里巴巴 MNN[16]框架中使用的幾種量化方法, 包括最大絕對(duì)值(MAX_ABS)、相對(duì)熵(KL)和交替方向乘子(ADMM)方法。基于這 3 種方法的不同組合對(duì)模型進(jìn)行訓(xùn)練后量化, 量化方法組合如表 2 所示。由于 8 位量化精度下降少, 在工程上被廣泛使用, 因此本文的實(shí)驗(yàn)均使用 8 位量化方法。另外, 為進(jìn)行公平的比較, 本文所用量化圖片集圖片數(shù)量均為 100 張。
首先, 在 CIFAR-10 上針對(duì)不同量化組合方法進(jìn)行實(shí)驗(yàn), 對(duì)比不采用和采用本文方法進(jìn)行預(yù)處理的量化后模型 Top-1%準(zhǔn)確率。表 3 展示的實(shí)驗(yàn)結(jié)果表明, 在不同的量化組合情況下, 使用本文提出的預(yù)處理方法后, 在不同網(wǎng)絡(luò)結(jié)構(gòu)中均可有效地提升量化后模型的精度, 驗(yàn)證了本文預(yù)處理方法的普遍適用性和有效性。
表1 本文所用數(shù)據(jù)集概況
表2 本文所用量化方法組合
表3 CIFAR-10數(shù)據(jù)集上準(zhǔn)確率對(duì)比(%)
表4 ImageNet數(shù)據(jù)集上準(zhǔn)確率對(duì)比(%)
為證明本文方法在大型數(shù)據(jù)集上依然適用, 在ImageNet 上對(duì) ResNet-18/34 進(jìn)行實(shí)驗(yàn), 對(duì)比量化模型的 Top-1%和 Top-5%準(zhǔn)確率。表 4 中實(shí)驗(yàn)結(jié)果證明, 使用本文方法在大型數(shù)據(jù)集上依然可有效地減少量化模型的精度損失, 具有明顯優(yōu)勢(shì)。
本文針對(duì)當(dāng)前訓(xùn)練后量化方法精度下降明顯的問題, 提出一種基于離群值去除的訓(xùn)練后量化預(yù)處理方法, 通過去除訓(xùn)練后浮點(diǎn)模型權(quán)重和激活值的離群值, 可以減少量化的空白區(qū)間, 從而有效地提升量化模型性能。實(shí)驗(yàn)結(jié)果表明, 該方法在不同量化方法、數(shù)據(jù)集和網(wǎng)絡(luò)模型中, 均可對(duì)模型量化產(chǎn)生正向的效果。
在未來的工作中, 我們將探索如何自適應(yīng)地產(chǎn)生離群值百分比參數(shù), 而非人為地設(shè)定, 從而取得更好的性能。
[1]Redmon J, Farhadi A. YOLOv3: an incremental imp-rovement [EB/OL]. (2018–04–08)[2021–06–20]. https: //arxiv.org/ abs/1804.02767
[2]Zhou X, Wang D, Kr?henbühl P. Objects as points [EB/OL].(2019–04–25)[2021–06–20]. https://arxiv.or g/abs/1904.07850
[3]He K, Gkioxari G, Girshick R, et al. Mask R-CNN [EB/OL]. (2018–01–24)[2021–06–20]. https://arxiv. org/abs/1703.06870
[4]Wen W, Wu C, Wang Y, et al. Learning structured sparsity in deep neural networks // Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelno, 2016: 2082–2090
[5]Zhou H, Alvarez J M, Porikli F. Less is more: towards compact CNNS // European Conference on Computer Vision. Cham: Springer, 2016: 662–677
[6]Han S, Mao H, Dally W J. Deep compression: compr-essing deep neural network with pruning, trained quantization and Huffman coding [EB/OL]. (2015–11–20)[2021–06–20]. https://arxiv.org/abs/1510.00149v3
[7]Liu Z, Sun M, Zhou T, et al. Rethinking the value of network pruning [EB/OL]. (2019–03–05)[2021–06– 20]. https://arxiv.org/abs/1810.05270
[8]Changpinyo S, Sandler M, Zhmoginov A. The power of sparsity in convolutional neural networks [EB/OL]. (2017–02–21)[2021–06–20]. https://arxiv.org/abs/170 2.06257
[9]Rastegari M, Ordonez V, Redmon J, et al. XNORNet: imagenet classification using binary convolutional neural networks // European Conference on Computer Vision. Cham: Springer, 2016: 525–542
[10]Jacob B, Kligys S, Chen B, et al. Quantization and training of neural networks for efficient integerarith-metic-only inference [EB/OL]. (2017–12–15) [2021–06–20]. https://arxiv.org/abs/1712.05877
[11]Zhou Shuchang, Wu Yuxin, Ni Zekun, et al. DoReFa-Net: training low bitwidth convolutional neural netw-orks with low bitwidth gradients [EB/OL]. (2018–02–02)[2021–06–20]. https://arxiv.org/abs/1606.06160
[12]Courbariaux M, Bengio Y. Binarynet: training deep neural networks with weights and activations constra-ined to +1 or –1 [EB/OL]. (2016–04–18)[2021–06–20]. https://arxiv.org/abs/1511.00363
[13]Jin J, Yan Z, Fu K, et al. Neural network architecture optimization through submodularity and supermodul-arity [EB/OL]. (2018–02–21)[2021–06–20]. https:// arxiv.org/abs/1609.00074
[14]Baker B, Gupta O, Naik N, et al. Designing neural network architectures using reinforcement learning [EB/OL]. (2016–11–07)[2021–06–20]. https://arxiv.org/abs/1611.02167v1
[15]Zhang L L, Yang Y, Jiang Y, et al. Fast hardware-aware neural architecture search [EB/OL]. (2020–04– 20)[2021–06–20]. https://arxiv.org/abs/1910.11609
[16]Jiang Xiaotang, Wang Huan, Chen Yiliu, et al. MNN: A universal and efficient inference engine [EB/OL]. (2020–02–27)[2021–06–20]. https://arxiv.org/abs/2002. 12418
[17]Krizhevsky A, Hinton G. Learning multiple layers of features from tiny images [EB/OL]. (2009–04–08) [2021–06–20]. http://citeseerx.ist.psu.edu/viewdoc/do wnload?doi=10.1.1.222.9220&rep=rep1&type=pdf
[18]Deng J, Dong W, Socher R, et al. ImageNet: a large-scale hierarchical image database // IEEE Conference on Computer Vision and Pattern Recognition. Miami, 2009: 248-255
[19]Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition [EB/OL]. (2015–04–10)[2021–06–20]. https://arxiv.org/abs/140 9.1556
[20]He K, Zhang X, Ren S, et al. Deep residual learning for image recognition // IEEE Conference on Compu-ter Vision and Pattern Recognition. Las Vegas, 2016: 770–778
[21]Sandler M, Howard A, Zhu M, et al. MobileNetv2: inverted residuals and linear bottlenecks // Proceedin-gs of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, 2018: 4510–4520
Post Training Quantization Preprocessing Method of Convolutional Neural Network via Outlier Removal
XU Pengtao, CAO Jian?, CHEN Weiqian, LIU Shengrong, WANG Yuan, ZHANG Xing?
School of Software and Microelectronics, Peking University, Beijing 102600; ? Corresponding author, E-mail: caojian@ss.pku.edu.cn (CAO Jian), zhx@pku.edu.cn (ZHANG Xing)
In order to improve the performance of post training quantization model, a quantization preprocessing method based on outlier removal is proposed. This method is simple and easy to use. The outliers of weight and activation value are removed only through simple operations such as sorting and comparison, so that the quantization model loses only a small amount of information and improves the accuracy. The experimental results show that the performance can be significantly improved by preprocessing with this method before using different quantization methods.
convolutional neural network; post training quantization; preprocessing; outlier removal; image classification
10.13209/j.0479-8023.2022.082
2021–10–26;
2022–02–21
國(guó)家自然科學(xué)基金聯(lián)合基金(U20A20204)資助