• 沒有找到結果。

基於卷積核冗餘的神經網路壓縮機制 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "基於卷積核冗餘的神經網路壓縮機制 - 政大學術集成"

Copied!
96
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University. 立. 碩士論文 政 治 Master Thesis 大. ‧ 國. 學 ‧. 基於卷積核冗餘的神經網路壓縮機制 Compression of Convolutional Neural Networks Based on Kernel Redundancy n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 指導教授 : 廖文宏 博士 研究生 : 陳乃瑋 撰. 中華民國 一百零七 年 十一 月 November 2018. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(2) 致謝. 首先要感謝廖老師這兩年多來的種種指導與教誨,讓我能夠完成我的論文,也謝謝老 師願意將實驗室的兩張 GTX 1080Ti 交給我使用,讓我能夠順利的進行大量 Deep learning. 政 治 大. 與電腦圖學實驗,此外也謝謝劉吉軒老師與鄭文皇老師,特地抽空來擔任我的口試委員,. 立. 並針對我的研究給予了很棒的建議跟未來方向。另外還要感謝我的父母,願意讓我多花兩. ‧ 國. 學. 年多的時間與金錢取得我的碩士學歷,尤其是我的媽媽,她在生活上幫了我很多的忙,使 我可以專心於學校的課業,不必為家務事煩惱。. ‧. 再來是 VIPL 的夥伴們,Maty、久芳、崇銘、佳霖、依凡、貞佑與義瑋學長學姐們,子. y. Nat. 萲、彥庭以及戎諒、辰瑋、宗賢,謝謝你們願意找我一起玩遊戲、一起聊天、一起吃飯,讓. sit. 我不至於變成邊緣肥宅,還願意把不要的紅蘿蔔跟小黃瓜絲給我吃。另外還要特別感謝彥. n. al. er. io. 庭與 Maty 學姐,在我做實驗做到快失智的時候,彥庭總是會給我一些建議跟方向,讓我能. i n U. v. 夠繼續做下去,而在撰寫論文的期間,Maty 學姐告訴了我許多撰寫論文的方法跟技巧。. Ch. engchi. 最後,還是要再次感謝這段期間老師跟大家的協助,因為有你們,我才能順利完成這 份研究,謝謝大家。. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(3) 摘要. 針對卷積神經網路模型與所需計算量過於龐大,導致難以將之部署於行動裝置或嵌入 式平台的問題,本論文提出了多樣性演算法用以對 CNN 模型做壓縮。多樣性演算法的核心. 政 治 大. 概念為保留各個卷積層中最具代表性的濾波器,僅維持卷積核之間的多樣性。我們將卷積. 立. 層內的濾波器的相似關係以無向圖來表示,每一個節點皆代表一個濾波器,節點與節點之. ‧ 國. 學. 間邊的值則是兩個濾波器之間的餘弦距離,而哪些節點會被移除則是透過邊的值、該節點 邊的值加總以及該節點所代表濾波器的權值絕對值加總來決定。經過剪枝後的模型,每一. ‧. 層卷積層的輸出通道數都會有所減少,參數量與浮點數運算量也會相應的降低,且不會產. y. Nat. 生稀疏網路的問題,而壓縮後的模型最後會再重新訓練使辨識準確率回復至原先的水準。. sit. 為了測試多樣性演算法的泛用性,我們使用 VGG、ResNet、DenseNet 系列模型與 CIFAR-. n. al. er. io. 10、CIFAR-100 資料集進行了十組的壓縮實驗。為了找到最佳的壓縮參數設置,我們在每. i n U. v. 組實驗上都做了非常充分的壓縮測試,並詳細記錄所有的實驗結果做為調整參數的重要依. Ch. engchi. 據,從各組實驗的壓縮結果顯示,多樣性演算法確實是有效的。在 CIFAR-10 資料集上,我 們的方法可以減少 VGG16 78.6%的參數量與約 46%的浮點數運算量,而在容許約 1%準確 率差異的情況下,則可以減少 90.7%的參數量與接近 70%的浮點數運算量。在 CIFAR-100 資料集上,可以減少 VGG16 46%的參數量與 18%的浮點數運算量,而在容許約 1%準確率 差異的情況下,則可以減少約 60.7%的參數量與接近 37.5%的浮點數運算量。. 關鍵字 : 卷積神經網路、模型壓縮、多樣性演算法、卷積核相似度. i. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(4) Abstract. The model size and floating-point operations (FLOP) required by convolutional neural networks make it difficult to deploy these models to mobile devices or embedded systems. In this thesis, we. 政 治 大. propose a method known as the diversifying algorithm to compress CNN models. The key concept is to maintain the diversity of convolutional kernels by preserving the most representative filters in each network layer. This is achieved by expressing the network architecture as an undirected graph. The nodes in the graph denote the filters, and the weights are computed using cosine distance. Nodes are removed by considering the combined effects of several factors, including edge weights, the sum of similarity and the sum of weights. After pruning, the number of output channels in each convolutional layer will be reduced. The compressed network is then retrained to retain accuracy with fewer model parameters, FLOPs and also avoid the problem of sparse. 立. ‧. ‧ 國. 學. y. Nat. sit. n. al. er. io. representation. We test the efficacy of the proposed diversifying algorithm on three types of CNN models, including VGG, ResNet and DenseNet using both CIFAR-10 and CIFAR-100 datasets through extensive experiments. On CIFAR-10 dataset, our method is able to reduce 78.6% of total parameters and nearly 46% FLOPs in VGG16. If 1% performance loss is allowed, we can achieve 90.7% parameter and 70% FLOP reduction. On CIFAR-100 dataset, we can reduce 46% parameter and 18% FLOP. Furthermore, we can achieve 60.7% parameter and nearly 37.5% FLOP reduction if 1% accuracy loss is allowed.. Ch. engchi. i n U. v. Keywords : Convolutional neural network、Model compression、Diversifying algorithm、Kernel similarity. ii. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(5) 目錄 摘要………………………………………………………………………………………………...i Abstract..…………………………………………………………………………………………..ii. 政 治 大. 目錄……………………………………………………………………………………………….iii 表目錄…………………………………………………………………………………………….vi. 立. 圖目錄…………………………………………………………………………………………...viii. ‧ 國. 學. 第一章 緒論…………………………………………………………………………………….1 研究背景與動機……………………………………………………………………….1. 1.2. 研究目的……………………………………………………………………………….2. 1.3. 論文架構……………………………………………………………………………….3. ‧. 1.1. sit. y. Nat. io. er. 第二章 技術背景與相關研究………………………………………………………………5 2.1. 深度學習的背景與突破……………………………………………………………….5. 2.2. 卷積神經網路概述….…..………………..…………………….……….……………..8. n. al. Ch. engchi. i n U. v. 2.2.1. 全連接與局部連接……………………………………………………………..8. 2.2.2. 權值共享與多卷積核…………………………………………………………..9. 2.2.3. 池化層…………………………………………………………………………10. 2.2.4. 多層卷積………………………………………………………………………10. 2.3 模型壓縮……………………………………………………………………………….12 2.3.1. Deep Compression……………………………………………………………..12. 2.3.2. Pruning Filters for Efficient ConvNets………………………………………...14. 2.3.3. Building Efficient ConvNets using Redundant Feature Pruning………………16. 2.3.4. 小結……………………………………………………………………………17 iii. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(6) 第三章 研究方法…………………………………………………………………………….18 3.1. 多樣性演算法………………………………………………………………………...18 3.1.1. 濾波器相似度分數.…………………………………………..……………….19. 3.1.2. 相似度加總…………………………………..………………….…………..21. 3.1.3. 濾波器權值絕對值加總………………………………………………………22. 3.1.4. 演算法步驟……………………………………………………………………23. 3.2 CNN 模型……………………………………………………………………………..26. 政 治 大 ResNet…………………………………………………………………………27 立. 3.2.1 VGG……………………………………………………………………………26 3.2.2. DenseNet………………………………………………………………………29. 學. ‧ 國. 3.2.3. 3.3 CIFAR 資料集………………………………………………………………………...31 深度學習套件及開發環境…………………………………………………………...32. 3.5. 實驗設計……………………………………………………………………………...33. ‧. 3.4. 實驗流程………………………………………………………………………33. 3.5.2. 分層剪枝………………………………………………………………………34. 3.5.3. 相似度門檻值的挑選…………………………………………………………34. 3.5.4. 壓縮實驗模型及相關設定……………………………………………………35. n. al. er. io. sit. y. Nat. 3.5.1. Ch. i. e. i n U. v. ngch 第四章 實驗結果及分析…………………………………………………………………...38 4.1. 4.2. 實驗一:VGG16 (CIFAR-10、CIFAR-100)………………………………………...38 4.1.1. VGG16 (CIFAR-10)…………………………………………………………...38. 4.1.2. VGG16 (CIFAR-100)………………………………………………………….42. 4.1.3. VGG16 小結…………………………………………………………………...45. 實驗二:ResNet56 / ResNet20 (CIFAR-10、CIFAR-100)………………………….45 4.2.1. ResNet56 (CIFAR-10、CIFAR-100)………………………………………….46. 4.2.2. ResNet20 (CIFAR-10、CIFAR-100)………………………………………….52. iv. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(7) 4.2.3 4.3. 4.4. ResNet56 / ResNet20 小結…………………………………………………….57. 實驗三:DenseNet-40-12 / DenseNet-BC-40-12 (CIFAR-10、CIFAR-100)……….58 4.3.1. DenseNet-40-12 (CIAFR-10、CIFAR-100)…………………………………..59. 4.3.2. DenseNet-BC-40-12 (CIFAR-10、CIFAR-100)………………………………65. 4.3.3. DenseNet-40-12 / DenseNet-BC-40-12 小結………………………………….70. 整體實驗結果整理與分析…………………………………………………………...71. 第五章 結論與未來方向………………………………………………………………...…74. 政 治 大. 參考文獻…………………………………………………………………………………………76. 立. 附錄一 VGG16 模型壓縮前後通道數對比…………………………………………………...78. ‧ 國. 學. 附錄二 ResNet56 模型壓縮前後通道數對比………………………………………………...79 附錄三 ResNet20 模型壓縮前後通道數對比………………………………………………...81. ‧. 附錄四 DenseNet-40-12 模型壓縮前後通道數對比………………………………………….82 附錄五 DenseNet-BC-40-12 模型壓縮前後通道數對比……………………………………..84. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. v. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(8) 表目錄 表 3-1. 各模型壓縮實驗設定…………………………………………………………………37. 表 4-1. 多樣性演算法於 VGG16(CIFAR-10)的 Benchmark、Seed 模型與三階壓縮實驗......40. 表 4-2. 多樣性演算法於 VGG16(CIFAR-10)的壓縮結果與比較…………….……………...41. 表 4-3. 多樣性演算法於 VGG16(CIFAR-100)的 Benchmark、Seed 模型與三階壓縮實驗…44. 表 4-4. 多樣性演算法於 VGG16(CIFAR-100)的壓縮結果….……………………………….45. 表 4-5. 多樣性演算法於 ResNet56(CIFAR-10)的 Benchmark、Seed 模型與三階壓縮實驗...47. 表 4-6. 多樣性演算法於 ResNet56(CIFAR-100)的 Benchmark、Seed 模型與三階壓縮實. 立. 政 治 大. ‧. ‧ 國. 學. y. Nat. 驗………………………………………………………………………………………49. 表 4-8. 多樣性演算法於 ResNet56(CIFAR-100)的壓縮結果………………………………..51. 表 4-9. 多樣性演算法於 ResNet20(CIFAR-10)的 Benchmark、Seed 模型與三階壓縮實驗...53. n. al. er. sit. 多樣性演算法於 ResNet56(CIFAR-10)的壓縮結果與比較…………………………50. io. 表 4-7. Ch. engchi. i n U. v. 表 4-10 多樣性演算法於 ResNet20(CIFAR-100)的 Benchmark、Seed 模型與三階壓縮實驗.55 表 4-11 多樣性演算法於 ResNet20(CIFAR-10)的壓縮結果…………………………………56 表 4-12 多樣性演算法於 ResNet20(CIFAR-100)的壓縮結果………………………………..56 表 4-13 多樣性演算法於 DenseNet-40-12(CIFAR-10)的 Benchmark、Seed 模型與低階壓縮 實驗……………………………………………………………………………………59 表 4-14 多樣性演算法於 DenseNet-40-12(CIFAR-10)的 Benchmark、Seed 模型與中高階壓 縮實驗………………………………………………………………………………….61 表 4-15 多樣性演算法於 DenseNet-40-12(CIFAR-100)的 Benchmark、Seed 模型與三階壓縮 實驗…………………………………………………………………………….………63 vi. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(9) 表 4-16 多樣性演算法於 DenseNet-40-12(CIFAR-10)的壓縮結果………………………….64 表 4-17 多樣性演算法於 DenseNet-40-12(CIFAR-100)的壓縮結果………………………...64 表 4-18 多樣性演算法於 DenseNet-BC-40-12(CIFAR-10)的 Benchmark、Seed 模型與三階壓 縮實驗…………………...………………………………………………………….66 表 4-19 多樣性演算法於 DenseNet-BC-40-12(CIFAR-100)的 Benchmark、Seed 模型與三階 壓縮實驗………………………………………………………………………………68 表 4-20 多樣性演算法於 DenseNet-BC-40-12(CIFAR-10)的壓縮結果……………………...70. 政 治 大 多樣性演算法壓縮實驗總覽表………………………………………………………72 立. 表 4-21 多樣性演算法於 DenseNet-BC-40-12(CIFAR-100)的壓縮結果…………………….70. 學 ‧. ‧ 國 io. sit. y. Nat. n. al. er. 表 4-22. Ch. engchi. i n U. v. vii. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(10) 圖目錄 圖 2-1. 神經元[6]………………………………………………………………………….…….5. 圖 2-2. 類神經網路[6]…………………………………………………………………….…….6. 圖 2-3. 歷年 ILSVRC Top-5 錯誤率[14].……………………………………………………….7. 圖 2-6. 池化層範例……………………………………………………………………………10. 圖 2-7. 多層卷積特徵擷取:人臉辨識範例…………………………………………..……….11. 圖 2-8. 剪枝流程圖(左)與剪枝前後的網路對比(右)[17]...………………………………….12. 圖 2-9. [17]壓縮結果……………………………………………………………..……………13. ‧. ‧ 國. Nat. y. 圖 2-4. 學. 圖 2-5. 治 政 全連接(左)與局部連接(右)……………………………………………………..……...8 大 立 權值共享(左)與多卷積核(右)…………………………………..……………………...9. io. sit. 圖 2-10 Deep Compression 三階段壓縮流程[1]………………………………………..….…..13. n. al. er. 圖 2-11 Deep Compression 壓縮結果[1]……………………………...….…………………….14. i n U. v. 圖 2-12 對濾波器進行剪枝並移除相應的特徵與下一層中對應此特徵的卷積核[2]…...….15. Ch. engchi. 圖 2-13 [2]壓縮結果(ResNet-34 於 ImageNet 資料集,其他皆於 CIFAR-10 資料集)……..….16 圖 2-14 平均連結聚合演算法[18]………………………………………………..……………16 圖 2-15 [18]壓縮結果(皆於 CIFAR-10 資料集)……………...……….……………………….17. 圖 3-1. 卷積運算(左)與濾波器權重向量化(右)……………………………………………...20. 圖 3-2. 相似度加總計算範例…………………………………………………………………21. 圖 3-3. 權值絕對值加總計算範例……………………………………………………………22. 圖 3-4. 多樣性演算法範例……………………………………………………………………24. 圖 3-5. 多樣性演算法範例:第一輪刪減……………………………………………………...24 viii. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(11) 圖 3-6. 多樣性演算法範例:第二輪刪減……………………………………………………...25. 圖 3-7. VGG 各版本網路架構圖[19]…………………………………………………………26. 圖 3-8. VGG 各版本網路參數量(單位為百萬)[19]………………………………………….26. 圖 3-9. Residual block[13]……………………………………………………………………..27. 圖 3-10 兩層及三層的 Residual block[13]…………………………………………………….28 圖 3-11 ResNet 不同層數時的網路架構[13]………………………………………………….28 圖 3-12 包含 5 層卷積層的 Dense block,其中 k = 4[20]…………………………………...29. 政 治 大 針對 ImageNet 所設計的四種 DenseNet 架構,其中 k = 32[20]…………………...30 立. 圖 3-13 包含 3 個 Dense block 的 DenseNet[20]……………………………………………...29 圖 3-14. ‧ 國. 學. 圖 3-15 CIFAR-10 圖片範例(左)與 CIFAR-100 分類結構(右)[5]……………………………31 圖 3-16 壓縮實驗流程圖……………………………………………………………………....33. ‧. 多樣性演算法於 VGG16(CIFAR-10)的三階壓縮實驗圖表………………………...41. 圖 4-2. 多樣性演算法於 VGG16(CIFAR-100)的三階壓縮實驗圖表……………………….44. 圖 4-3. 兩層 Residual block 剪枝限制………………………………………………………..46. 圖 4-4. 多樣性演算法於 ResNet56(CIFAR-10)的三階壓縮實驗圖表………………………48. 圖 4-5. 多樣性演算法於 ResNet56(CIFAR-100)的三階壓縮實驗圖表……………………..50. 圖 4-6. 多樣性演算法於 ResNet20(CIFAR-10)的三階壓縮實驗圖表………………………54. 圖 4-7. 多樣性演算法於 ResNet20(CIFAR-100)的三階壓縮實驗圖表……………………..55. 圖 4-8. 多樣性演算法於 DenseNet-40-12(CIFAR-10)的低階壓縮實驗圖表……………….60. 圖 4-9. 多樣性演算法於 DenseNet-40-12(CIFAR-10)的中高階壓縮實驗圖表…………….61. n. al. er. io. sit. y. Nat. 圖 4-1. Ch. engchi. i n U. v. 圖 4-10 多樣性演算法於 DenseNet-40-12(CIFAR-100)的三階壓縮實驗圖表……………...64 圖 4-11 多樣性演算法於 DenseNet-BC-40-12(CIFAR-10)的三階壓縮實驗圖表…………...67 圖 4-12 多樣性演算法於 DenseNet-BC-40-12(CIFAR-100)的三階壓縮實驗圖表………….69. ix. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(12) 第一章 緒論 1.1 研究背景與動機. 治 政 大 人類的能力。機器學習則是達到人工智慧的方法,透過演算法分析數據並從中學習,而其 立 中一個重要的領域為電腦視覺。電腦視覺主要目的在於如何讓電腦能辨識影像中的特徵及. 在 1950 年代,人工智慧的願景被提出,期待電腦可以像人類ㄧ樣有思考分析甚至優於. ‧ 國. 學. 物件,使得電腦透過攝影機能具有分析及觀察的能力。為了讓電腦能夠分析影像中的物件, 傳統機器學習的方法通常需要手動擷取代表這個物件的特徵。然而,同一個物件可能具有. ‧. 多種形狀與樣貌,如腳踏車有公路車、電動腳踏車、童車或是斜躺腳踏車等。因此,儘管. y. Nat. 傳統的機器學習已經被提出多年,但其效果仍然有限。九零年代期間,開始有學者提出多. 龐大的計算量,因此並未帶來令人滿意的成果。. n. al. er. io. sit. 層次神經網路(Multilayer neural network)架構,但由於當時的電腦效能無法負擔類神經網路. i n U. v. 隨著網際網路的普及,資料的搜集更為便利,而科技的快速發展,使得分散式運算技. Ch. engchi. 術漸趨成熟,GPU 用於深度學習(Deep learning)運算的效能遠高於 CPU,搭配開放式開發 平台,使深度學習重新受到重視,並被廣泛應用在日常生活中,如人流分析、街景分析、 物件識別等。其中,卷積神經網路(Convolutional neural network, CNN)在影像辨識更是有著 非常顯著的成果,在 2012 年 ImageNet 資料集辨識競賽中,Top-5 錯誤率一舉從 26%降到了 16%。 經過近幾年的發展,卷積神經網路在電腦視覺與圖型辨識領域已取得豐碩的成果,將 卷積神經網路架構移植到行動裝置或者是嵌入式系統變成一股趨勢,以利在這些平台上開 發出相關的應用,但囿於深度學習模型的大小跟所需的運算資源,對於儲存空間與運算能 力皆遠遠不及桌機或伺服器的行動裝置與嵌入式裝置來說是相當大的負擔。對於模型大小 1. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(13) 與所需計算量過於龐大的問題,目前的解決方法主要有兩種,第一種是對現有模型做壓縮, 如2016年Song Han等人提出的Deep Compression[1]或是2017年Hao Li等人提出的Purning Filters for Efficient ConvNets[2]等,第二種則是創建出更為輕量型的架構如2016年Forrest N. Iandola等人提出的SqueezeNet[3]、2017年Google提出的MobileNet[4]等。 Deep Compression 雖然對CNN模型參數量做了極致的壓縮[1],但對於辨識速度的問題, 並沒有得到與壓縮比相應的提升,另一個問題是其剪枝方式(pruning)會令整個網路變為稀 疏網路(Sparse network),透過CSR(Compressed sparse row)或CSC(Compressed sparse column). 政 治 大 GPU進行加速運算。[2]以濾波器(Filter)為單位的剪枝方式解決了稀疏網路的問題,但其刪 立 格式來儲存模型後,雖然會使得模型相當的小,但使用CSR或CSC格式儲存的模型卻無法以. ‧ 國. 學. 減的方式是對卷積層刪掉固定比例的濾波器,而哪些濾波器會被刪除則是依據濾波器的權 值絕對值加總大小來決定,權值絕對值加總較大的表示是較重要的保留下來,較小的則比. ‧. 較不重要可以刪去,但我們認為其判定濾波器重要性的方法值得商榷,因為我們曾嘗試計 算並觀察經過完整訓練後模型每一卷積層裡濾波器的權值絕對值加總,發現加總最大與最. Nat. sit. y. 小的值並沒有相差很多,而且也沒有濾波器的權值絕對值加總是很接近0的,因此我們試圖. n. al. er. io. 從另一個角度來判定該濾波器是否可以被刪除。. 1.2 研究目的. Ch. engchi. i n U. v. 基於上述的觀察,我們提出一個基於濾波器相似度(Filter or kernel similarity)的 CNN 模 型壓縮方法,在不降低辨識準確率的前提之下,對每一層卷積層的濾波器兩兩計算相似度, 並利用圖論的方式刪去相似度較高的濾波器,保留該卷積層濾波器之間的多樣性,試圖降 低 整 體 模 型 的 大 小 (Model size) 、 參 數 量 (Parameters) 以 及 浮 點 數 運 算 量 (Floating point operations, FLOP),以利於將深度學習模型部署至行動裝置或者是嵌入式系統,執行辨識任 務。本論文研究貢獻如下:. 2. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(14) (1) 我們所提出的多樣性演算法(Diversifying algorithm)不同於以往以權值大小作為判定濾 波器或卷積核重要性的依據,而是以濾波器權值相似性的角度來判斷是否有重複、多 餘的濾波器,也因此該濾波器是可以被刪除且不會影響到辨識準確率的。 (2) 我們利用圖論的方式來對濾波器進行篩選與刪除,其好處是對於同一組模型權重,刪 減的結果會是一致的,也就是說多樣性演算法中不包含任何的隨機性,這樣也使的實 驗的重複性(Repeatability)與再現性(Reproducibility)相對較高。 (3) 在先前與壓縮模型相關的研究中,都是以經過完整訓練的原始模型作為基礎,並對其. 政 治 大 以訓練至一半未完全收斂的原始模型作為剪枝的基礎模型,因此我們所花費的總訓練 立 做剪枝,再額外花費時間對壓縮後的模型進行重新訓練,而在我們的壓縮流程中,是. ‧ 國. 學. 回合數相比於先前的研究是比較少的。. (4) 我們將 CNN 中的卷積層分為低、中與高階特徵卷積層,並針對不同層級的卷積層設. ‧. 定不同的相似度門檻值做剪枝,另外由於不同層級的卷積層對參數量與 FLOP 的影響 力不同,因此我們可以透過對三階門檻值的調整,來操控參數量與 FLOP 之間的壓縮. Nat. sit. y. 比例,而其經過重新訓練後的辨識準確率會是相近的,根據不同狀況及需求對門檻值. al. er. io. 做出最合適的調整,是可行且重要的。. n. (5) 我們進行了多組的壓縮實驗,並詳細的紀錄下所有實驗的過程,而從壓縮結果來看,. Ch. i n U. v. 多樣性演算法的效果是相當不錯的,相較於先前研究的壓縮結果,無論是參數量或是. engchi. FLOP 的壓縮量都有一定的提升。. 1.3 論文架構 本論文分成五個章節,架構如下所述。第一章為緒論,主要描述研究背景、動機與目 的。第二章為技術背景與相關研究,在此章節將介紹深度學習的背景和不同於傳統機器學 習的幾個重要特性,接著探討近年來與卷積神經網路模型壓縮、為了減低參數量與運算量. 3. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(15) 所開發的輕量型網路架構以及專為行動裝置所設計的卷積神經網路架構等相關的研究。第 三章研究方法主要說明由本論文所提出用以壓縮卷積神經網路的多樣性演算法,做為實驗 測試用的三種 CNN 模型架構以及 CIFAR-10、CIFAR-100[5]資料集,最後則是深度學習工 具環境。第四章呈現壓縮實驗結果以及相關的分析與討論,第五章是結論與未來方向探討。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 4. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(16) 第二章 技術背景與相關研究 本章節首先回顧深度學習網路的發展背景,並介紹目前被廣泛使用於圖像識別、電腦 視覺領域的卷積神經網路及其核心運算概念,接著探討近年來與卷積神經網路模型壓縮、. 政 治 大. 發展輕量型網路架構以及行動裝置網路架構相關的研究成果。. 立. 2.1 深度學習的背景與突破. ‧ 國. 學. 深度學習其實指的基於深層類神經網路(Deep neural network)的機器學習框架。在 1943 年 Warren McCulloch 以及 Walter Pitts 首次提出了神經元的數學模型。到了 1958 年,心理. ‧. 學家 Rosenblatt 提出了感知器(Perception)的概念,加入了訓練修正權重的機制。類神經網路. y. Nat. 的神經元其實是將收集到的各種訊號根據權重(Weights)加權後加總,在透過啟動函數. io. sit. (Activation function)傳出去,如圖 2-1 所示。而類神經網路則是將神經元一層一層的連起來,. n. al. er. 可分為輸入層(Input layer)、輸出層(Output layer)和中間的隱藏層(Hidden layers),如圖 2-2 所. i n U. v. 示。輸入層表示輸入的特徵,輸出層表示預測的類別,而隱藏層則是用來增加神經網路的. Ch. engchi. 複雜度,每一層的神經元之間都有連結且各自擁有權重來處理訊號的加權。. 圖 2-1 神經元[6]. 5. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(17) 立. 政 治 大. 圖 2-2 類神經網路[6]. ‧ 國. 學. 然而類神經網路隨著神經元或是隱藏層的增加而增加計算量,受限於當時電腦的計算. ‧. 能力以及資料取得不易,類神經網路並沒有發揮很好的效果。但隨著網際網路的蓬勃發展, 研究者可以從網際網路上取得大量的圖片用來訓練深度學習模型,另一方面則是分散式運. Nat. sit. y. 算技術的成熟,將 GPU 用於深度學習演算法的運算可獲得大量的效能提升。伴隨上述科技. er. io. 的進展,讓深度學習再度受到重視。. al. 傳統人為設計(Handcraft)特徵,在近年快速被深度學習的資料驅動(Data-driven)之特徵. n. iv n C 擷取所取代,尤其在圖像識別領域中,深度學習更是將辨識準確率提升到了一個新的高度。 hengchi U 在 2010 年,深度學習在 MNIST[7]這個手寫數字的資料集上得到了突破性的發展,只有 0.3% 的 錯 誤 率 。 在 同 一 年 , 第 一 次 舉 辦 了 以 ImageNet[8] 為 基 礎 的 大 型 圖 片 識 別 競 賽 ILSVRC[9](ImageNet-large scale visual recognition challenge),有 120 萬張圖片作為訓練集 (Training data),5 萬張當驗證集(Validation data),15 萬張當測試集(Test data)共 1000 個類別。 2010 年 ILSVRC 競賽的第一名是 Nippon Electric Company(NEC)和伊利諾大學厄巴納-香檳 分校(University of Illinois at Urbana Champaign, UIUC)的聯合團隊,使用支持向量機(Support vector machine, SVM)的方法,識別分類的 Top-5 錯誤率為 28%[10]。2012 年 ILSVRC 的比 賽上,深度學習首次參賽,由 Alex Krizhevsky 等人所設計的 AlexNet[11]獲得冠軍,有別以. 6. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(18) 往微幅降低的錯誤率,將 Top-5 錯誤率從去年最佳的 25.5%降低到 16.4%。2014 年 Google 團隊則提出 GoogLeNet[12],使用 Inception 將不同卷積大小所得的特徵圖(Feature map)堆疊 起來,進一步取得 Top-5 錯誤率為 6.7%的優異成果。2015 年 ILSVRC 上,Kaiming He 等人 則提出 ResNet[13],設計 Bottleneck 的 Block,在其中利用 Shortcut 連結與殘差的學習,成 功避免深度所造成梯度消失問題(Gradient vanishing problem),在 152 層的架構下取得 Top5 錯誤率 3.57%。如圖 2-3 所示,可以明顯的從歷年 ILSVRC 看出深度學習在影像識別上有 很大的貢獻和突破。. 政 治 大 歸神經網路(Recurrent neural network, RNN)等。在上述歷年的 ILSVRC 裡,不管是 AlexNet、 立 然而深度學習又有不同類神經網路階層、架構和初始化的方式,如卷積神經網路、遞. ‧. ‧ 國. 學. GoogleNet 或是 ResNet 皆採用 CNN 架構。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2-3 歷年 ILSVRC Top-5 錯誤率[14]. 7. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(19) 2.2 卷積神經網路概述 CNN 的運作原理是由 Hubel 和 Wiesel 在 1960 年代所提出的,當時他們在研究貓腦皮 層中用於局部感之和方向選擇的神經元時,發現其可以有效低降低神經網路的複雜性而提 出了 CNN。就如同人類的大腦裡有幾十億甚至是幾百億個腦神經細胞,但在每一次接收動 作或傳遞訊息時只會使用到局部相鄰的細胞,而非全部的細胞。CNN 的幾個重要概念如下:. 政 治 大 CNN 的神經元使用局部連接,或稱為稀疏連接(Sparse connectivity)。每個神經元只需 立. 2.2.1 全連接與局部連接. ‧ 國. 學. 要對整張圖片的一個區塊進行感知,而圖片的空間關係也是局部的像素關係較為緊密,距 離較遠的像素關聯性則較低。對於一個 1000 x 1000 的輸入圖片而言,如果下一個隱藏層的. ‧. 神經元數目為 10^6 個,採用全連接(圖 2-4 左)則會有 1000 x 1000 x 10^6 = 10^12 個權值參 數,如此數目巨大的參數幾乎無法訓練;而採用局部連接(圖 2-4 右),隱藏層的每個神經元. Nat. sit. y. 僅與圖像中 10 x 10 的局部圖像相連接,那麼此時的權值參數數量為 10 x 10 x 10^6 = 10^8,. n. al. er. io. 將直接減少 4 個數量級。. Ch. engchi. i n U. v. 圖 2-4 全連接(左)與局部連接(右). 8. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(20) 2.2.2 權值共享與多卷積核 權值共享運作的原理其實是圖片一部分的特性與其他部分是一樣的,也就是說在圖片 這一部分學習的特徵也能用在其他部份上,所以對於整張圖片的所有位置,都能使用同樣 的特徵。在局部連接中隱藏層的每一個神經元連接的是一個 10 x 10 的局部圖像,因此有 10 x 10 個權值參數,將這 10 x 10 個權值參數共用給剩下的神經元,也就是說隱藏層中 10^6 個神經元的權值參數相同,那麼此時不管隱藏層神經元的數目是多少,需要訓練的參數就 是這 10 x 10 個權值參數(也就是卷積核的大小)。但是,這樣僅擷取了圖像的一種特徵,如. 政 治 大 的特徵,稱之為特徵圖。如果有 立 100 個卷積核,最終的權值參數也只有 100 x 100 = 10^4 個 果想要多擷取一些特徵,可以增加多個卷積核,不同的卷積核能夠得到圖像的不同映射下. ‧. ‧ 國. 學. 而已,如圖 2-5 所示。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2-5 權值共享(左)與多卷積核(右). 9. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(21) 2.2.3 池化層 對於一張圖片,最後可能會學習到一個擁有超過百萬甚至千萬特徵輸入的分類器,計 算量相當龐大。因此我們可以計算圖片一個區域裡的某個特定特徵的平均值或最大值來降 低特徵維度。如圖 2-6 為一個步幅(Stride)為 2,核大小(Kernel size)為 2 x 2,左下為取平均 值的池化層(Average pooling),右下為取最大值的池化層(Max pooling)。. 立. 政 治 大. ‧. ‧ 國. 學. n. al. er. io 2.2.4 多層卷積. sit. y. Nat. 圖 2-6 池化層範例. Ch. engchi. i n U. v. 在實際的應用中,會使用多層卷積來取得特徵,最後在接到全連接層做最後的分類。 多層卷積的目的在於一層卷積學到的特徵往往是局部的,但經過多次的卷積之後,就可以 將低層的特徵綜合起來得到一個比較全域的特徵。例如在人臉辨識中,一開始學到的是一 些低階的特徵(Low level feature),再來學到人臉的某些部份,如眼睛、鼻子、嘴巴等中階特 徵(Middle level feature),最後才學習到比較完整的人臉(High level feature),如圖 2-7 所示。. 10. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(22) 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. al. n. iv n C 圖 2-7 多層卷積特徵擷取:人臉辨識範例 hengchi U. 2.3 模型壓縮 對於 CNN 來說,若想要有更佳的辨識效果,最常見的方法就是增加網路的層數,然而 這也將產生參數儲存的成本,對於辨識模組而言,結果則是造成計算量上升與辨識時間的 拉長。因此想要把 CNN 導入到如手機、平板這類的行動裝置,或是 Jetson TX 系列[15]、 Raspberry Pi[16]這類的嵌入式平台,在記憶體空間、運算資源皆不如桌機或伺服器的限制 下,壓縮模型是其中一種可能的解決方案。. 11. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(23) 2.3.1 Deep Compression 2015 年 Song Han 等人提出的 Learning both Weights and Connections for Efficient Neural Networks[17]即透過剪枝,刪掉網路中較不重要的連接,來減少網路所需要的參數量,減少 記憶體和運算資源的消耗,使網路更加適合在行動裝置或嵌入式平台運行。如圖 2-8 左方 所示,剪枝可以分為三個步驟: (1) 正常的訓練模型,得到壓縮之前的預訓練模型(Pre-trained model) (2) 將所有低於一定門檻值的權值設為 0. 政 治 大 並不斷重複步驟 2 與 3 直到整個網路的權值都大於門檻值為止,經過剪枝前後的網路如圖 立 (3) 重新訓練(Retrain)經過剪枝之後的網路. ‧. ‧ 國. 學. 2-8 右方所示。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖 2-8 剪枝流程圖(左)與剪枝前後的網路對比(右)[17]. 如圖 2-9 所示,在 ImageNet 資料集上,其壓縮方法將 AlexNet 的參數量減少為原本的 1/9,從 6100 萬減少至 670 萬,而將 VGG-16 的參數量減少為原本的 1/13,從 1 億 3800 萬 減少至 1030 萬,且維持原有的辨識準確率。. 12. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(24) 圖 2-9 [17]壓縮結果. 政 治 大. (LeNet 系列網路於 MNIST 資料集以及 AlexNet、VGG-16 於 ImageNet 資料集). 立. ‧ 國. 學. Song Han 等人在 2016 年提出了更加有效的壓縮深度學習模型的方法 Deep Compression, Deep Compression 為[17]的延伸並將整個壓縮流程分為三個階段,如圖 2-9 所示,在對模型. ‧. 做剪枝之後,接著透過權值量化(Quantization)來共享一些權值,最後再以霍夫曼編碼. y. Nat. (Huffman coding)做更進一步的壓縮,如圖 2-10 所示,在不失辨識準確率的情況下,有效的. n. al. er. io. sit. 將 VGG-16 與 AlexNet 分別從 552MB 與 240MB 壓縮到 11.3MB 與 6.9MB。. Ch. engchi. i n U. v. 圖 2-10 Deep Compression 三階段壓縮流程[1]. 13. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(25) 圖 2-11 Deep Compression 壓縮結果[1]. 政 治 大. (LeNet 系列網路於 MNIST 資料集以及 AlexNet、VGG-16 於 ImageNet 資料集). 立. 雖然 Deep Compression 對 CNN 模型的參數量做了極致的壓縮,但對於辨識速度的問. ‧ 國. 學. 題,並沒有得到與壓縮比相應的提升,這是由於在 AlexNet 與 VGG-16 中,最後三層的全 連接層(Fully connected layers)佔據了絕大部分的參數量,但所佔的 FLOP 卻相當少,因此要. ‧. 提升模型的辨識速度,還是必須從卷積層的部分著手。另一個問題是網路在經過第一階段. y. Nat. 的剪枝後,有很多小於門檻值的權值被設為 0,因此整個網路就變成所謂的稀疏網路(Sparse. io. sit. network) , 針 對 此 稀 疏 連 接 (Sparse connections) 的 網 路 結 構 , 原 論 文 中 表 示 可 以 使 用. n. al. er. CSR(Compressed sparse row)或 CSC(Compressed sparse column)格式來儲存模型以減低檔案. i n U. v. 大小,但其缺點是目前的 GPU 並不支援執行以 CSR 或 CSC 格式儲存的模型檔案,也就是. Ch. engchi. 說,以 CSR 或 CSC 格式儲存的模型並不能透過 GPU 來加速其運行。. 2.3.2 Pruning Filters for Efficient ConvNets Hao Li 等人在 2017 年提出了此篇論文,其主要目的是為了加速 CNN 模型辨識的速度, 由於卷積層在 CNN 中佔據了極大部分的 FLOP,因此他們嘗試對卷積層裡的卷積核以濾波 器為單位進行剪枝,如圖 2-11 所示,而此剪枝方式並不會造成稀疏連接的問題,剪枝完成 後再透過重新訓練將辨識準確率回復至原先的水準。. 14. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(26) 圖 2-12 對濾波器進行剪枝並移除相應的特徵與下一層中對應此特徵的卷積核[2]. 政 治 大 在 Deep Compression 中,判斷某一權值的重要性是以該權值的絕對值大小來決定,如 立 果該權值的絕對值小於設定的門檻值,即會被設為 0,在此論文中也是以同樣的概念來決定. ‧ 國. 學. 濾波器的重要性,只是其計算的是整個濾波器裡所有權值的絕對值加總。整個壓縮過程可 以分為 4 個步驟,如下描述:. ‧. (1) 對於每一個濾波器 Fi,j,計算其權值的絕對值總和 sj. sit. y. Nat. (2) 依據絕對值總和 sj 做排序. io. er. (3) 針對絕對值總和較小的 m 個濾波器進行剪枝,移除與該濾波器相應的特徵圖,並將下 一層對應此特徵圖的卷積核一併刪除. n. al. Ch. i n U. v. (4) 為第 i 與 i+1 層卷積層創建新的卷積核矩陣(Kernel matrix),並將剪枝後所剩餘的卷積 核權重複製過去. engchi. 壓縮結果如圖 2-12 所示,除了 ResNet-34 是使用 ImageNet 資料集訓練模型之外,其餘 的皆是以 CIFAR-10 資料集訓練模型,後面有註明 scratch-train 的代表在對模型做剪枝之後, 將整個模型的權值做初始化後再做訓練。在 VGG-16 上,其壓縮方法減少了 64%的參數量 以及 34.2%的 FLOP,辨識速度為原本的 1.52 倍,且不造成辨識錯誤率的增加,甚至還降 低了一些,在 ResNet56 上,減少了 13.7%的參數量以及 27.6 的 FLOP,辨識速度為原本的 1.52 倍,而辨識錯誤率相比於原始模型的 6.96%還低了 0.02%。. 15. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(27) 政 治 大. 立. 圖 2-13 [2]壓縮結果(ResNet-34 於 ImageNet 資料集,其他皆於 CIFAR-10 資料集). ‧ 國. 學. 2.3.3 Building Efficient ConvNets using Redundant Feature Pruning. ‧. 由 Ayinde 等提出的論文 Building Efficient ConvNets using Redundant Feature Pruning[18], 如同[2]也是對卷積層的濾波器進行剪枝,不過其判定濾波器重要性的依據不再是該濾波器. Nat. sit. y. 的權值絕對值加總,而是濾波器權值之間的相似程度。其觀點為在卷積層裡許多的濾波器. al. er. io. 當中,有些濾波器的權值是很相似的,因此這些重複、多餘的濾波器可以被刪除,且不會. n. 影響到模型整體的辨識準確率。. Ch. i n U. v. 論文中表示濾波器之間相似度的計算方式是將濾波器裡的權值轉成一維向量,再兩兩. engchi. 計算餘弦距離(Cosine distance),得到兩兩濾波器之間的相似度。接著再採用平均連結聚合 演算法(Average-linkage agglomerative algorithm)將濾波器做分群,如圖 2-13 所示,再從各群 中隨機挑選一個濾波器做為代表,僅保留代表性的濾波器,其他濾波器則通通刪除。. 圖 2-14 平均連結聚合演算法[18]. 16. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(28) 治 政 圖 2-15 [18]壓縮結果(皆於 CIFAR-10 大 資料集) 立 ‧ 國. 學. 由上面數據可以看到此基於相似度的壓縮方法,可以減少 VGG-16 約 78%的參數量以 及 40.5%的 FLOP,且相比於原始模型,錯誤率只增加了 0.13%,而在 ResNet-56 上,減少. sit. y. Nat. 2.3.4 小結. ‧. 了 23.7%的參數量以及約 28%的 FLOP,錯誤率相比於原始模型的 6.61%增加了 0.27%。. er. io. 本論文所提出的壓縮演算法與[18]相同也是基於濾波器之間的相似度,為了避免稀疏. al. n. iv n C hengchi U 要的差異在於篩選濾波器的方法,不同於[18]對濾波器做分群並從各群中隨機找一個代表, 網路導致無法以 GPU 進行加速運算的問題,因此同樣也是以濾波器為單位來進行剪枝,主. 我們採用了圖論的方式來決定該保留與刪去的濾波器,使用圖論方法做篩選的好處為面對 同一組模型權重,其刪減的結果會是一致的,也就是說我們的壓縮方法,並不包含任何的 隨機性,而在篩選的過程中,除了兩兩濾波器之間的相似度之外,還考慮了各個濾波器的 相似度加總以及在[2]中作為判定濾波器重要性的權值絕對值加總。 本壓縮演算法的核心概念為依據相似度刪去重複、多餘的濾波器,保留各個卷積層中 具代表性的濾波器,在刪減的同時保持著卷積層內濾波器的多樣性,因此將此壓縮方法稱 作多樣性演算法(Diversifying algorithm),在第三章研究方法中將會詳細說明多樣性演算法 是如何在每一卷積層中找到具代表性的濾波器。 17. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(29) 第三章 研究方法 為了解決CNN模型大小與所需運算量過於龐大的問題,本論文提出了多樣性演算法來 對CNN模型進行壓縮,在不犧牲模型辨識準確率的前提下,同時減少模型的參數量與FLOP,. 治 政 留各個卷積層中具代表性的濾波器,但同時維持著卷積層內濾波器的多樣性,因此將此壓 大 立 縮方法稱作多樣性演算法。在本章節中,將詳細說明多樣性演算法的概念、重要參數與其 使模型更小、更快。多樣性演算法的核心概念為依據相似度刪去重複、多餘的濾波器,保. ‧ 國. 學. 計算方法、演算法步驟並以實際例子說明篩選濾波器的流程,接著介紹壓縮實驗中使用到 的VGG[19]、ResNet與DenseNet[20]模型,做為測試用的CIFAR-10和CIAFR-100資料集、深. ‧. 度學習套件、開發環境以及實驗設計。. y. Nat. n. er. io. al. sit. 3.1 多樣性演算法(Diversifying algorithm). i n U. v. 多樣性演算法的核心概念是 CNN 每一卷積層輸出特徵圖都包含了許多通道,每一個通. Ch. engchi. 道皆會對應到該卷積層裡的一個濾波器,每個濾波器又包含與輸入特徵圖相同通道數量的 卷積核,而在 CNN 模型中至關重要的就是這些卷積核的權重。然而在這些濾波器當中,或 許有一些是很相似的,也就是說兩個濾波器裡的權重是很雷同的,因此可以將其中一個濾 波器拿掉,而不至於對辨識準確率有顯著的影響,畢竟那個濾波器是重複且多餘的。 在基於濾波器相似度的多樣性演算法當中,會去計算兩兩濾波器之間的相似度分數 (Filter similarity score),接著設定一個門檻值,當相似度分數大於門檻值時,即代表這兩個 濾波器是類似的,因此可以將其中一個拿掉,至於兩個濾波器當中該保留哪一個,則是透 過相似度加總(Sum of similarity)與濾波器權值絕對值加總(Sum of weights)為依據來做挑選, 後續會詳細說明相似度分數、相似度加總以及濾波器權值絕對值加總的意義與計算方法。 18. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(30) 將多樣性演算法套用至 CNN 模型中每一層卷積層刪減多餘、重複的濾波器後,會得到 一個壓縮模型,其參數量、FLOP 與模型大小皆會下降,然而壓縮模型所伴隨的風險即是造 成辨識準確率的損失,因此我們會透過一系列的實驗,找到適當的門檻值,以不損失任何 或極小的辨識準確率為前提,盡可能的對模型做壓縮。 總結來說,多樣性演算法主要用於 CNN 模型的壓縮,期許能在不降低辨識準確率的同 時盡可能減少模型的參數量、FLOP 與模型大小,進而增加辨識的速度與減少運行時模型對 記憶體的佔用量。此演算法以濾波器之間的相似度、相似度總合與濾波器權值加總為依據,. 政 治 大. 再進一步利用圖論的方法對卷積層的濾波器做篩選與刪除,藉此達到壓縮 CNN 模型的目. 立. 學. ‧ 國. 的。. 3.1.1 濾波器相似度分數. ‧. 以輸入為 n 個通道、輸出為 m 個通道、卷積核大小 k x k 的卷積層為例,共會有 m 個 濾波器,每個濾波器又包含 n 個卷積核,每個卷積核大小為 k x k,所以通道數量從 n 變為. Nat. sit. y. m,權重數量為 n * m * k * k 個。如圖 3-1 左方是從 3 個通道(Feature 1、Feature 2、Feature. er. io. 3)轉為 2 個通道(Feature A、Feature B),卷積核大小為 3 x 3 的卷積層,因此會有 2 個濾波 器(藍色虛線框),每個濾波器裡會有 3 個大小為 3 x 3 的卷積核,所以此卷積層所包含的權. n. al. Ch. i n U. v. 重數量共有 3 x 2 x 3 x 3 = 54 個。相似度分數的計算方式則是分別將 m 個濾波器裡 n x k x. engchi. k 個權重轉成一維向量,如圖 3-2 右方所示,接著將這 m 個向量兩兩去計算夾角餘弦(式 3.1) 再取絕對值(式 3.2),得到兩兩濾波器之間的相似度分數,此相似度分數會是一個介於 0 到 1 之間的小數,分數愈接近 1 表示兩個濾波器愈相似,反之接近 0 則愈不同,而此相似度 分數也是多樣性演算法中最重要的參數。 選用夾角餘弦,而不採用一般常見的歐式距離等其他計算距離的方式,是因為對於像 1 1 1 2 2 2 1 0 0 0與 0 0 0 或是 0 −1 −1 −1 −2 −2 −2 −1. 1 1 −1 −1 −1 0 0與 0 0 0 這類權重成比例的卷積核 −1 −1 1 1 1. 而言,就卷積運算的角度來看,它們的作用其實是類似的,僅在於程度上的差別,如果採. 19. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(31) 用歐式距離來計算向量相似度的話,反而會因為的權重本身值的大小而影響到計算出來的 相似度分數。 1 1 1 取絕對值的意義則在於當兩個卷積核權重成負比例關係時,如上例 0 0 0 與 −1 −1 −1 −1 −1 −1 0 0 0 ,夾角餘弦值為-1,兩個向量恰好反方向,但就卷積運算的角度來看,它們的 1 1 1 效果也是類似的,因此取絕對值可以把這類成負比例關係但效果類似的卷積核視為相同。. 政 治 大 在 0 到 1 之間,因此不需要再做額外的正規化,在設定相似度門檻值時也只需選定一個介 立. 另外還有一個好處是藉由夾角餘弦所算出來的值會介於-1 至 1 之間,取絕對值後更被限制. 於 0 到 1 之間的數值即可。. ‧. ‧ 國. 學 er. io. sit. y. Nat. al. n. iv n C hengchi U 圖3-1 卷積運算(左)與濾波器權重向量化(右). (3.1). Similarity score = |cos(𝜃)| (3.2). 20. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(32) 3.1.2 相似度加總 相似度加總是用於決定在兩個相似的濾波器當中該保留哪一個的主要依據,其意義在 於可以藉由該數值大小得知某一特定濾波器與其他濾波器的總相似程度有多少,當該濾波 器與其他濾波器愈相似,則相似度加總會愈大,也表示說該濾波器與許多其他濾波器皆很 類似,因此在決定兩個相似的濾波器該保留哪一個的時候,我們會選擇保留相似度加總較 大的那個,因為該濾波器相對來說較具有代表性。 在得到兩兩濾波器之間的相似度分數後,就可以畫出一張以濾波器編號為節點,相似. 政 治 大 波器相似關係圖(Filter similarity 立 diagram),接著分別去計算每一個節點邊的相似度分數加總, 度分數為邊的完全圖(Complete graph),將低於設定門檻值的邊從圖中剔除後,即可得到濾. ‧ 國. 學. 就可以算出各個節點的相似度加總。以圖3-2為例,有4個節點A、B、C、D,分別代表4個 濾波器,兩兩節點之間邊的數值則代表兩個濾波器之間的相似度分數,共有C(4 , 2) = 6個邊. ‧. (EAB、EAC、EAD、EBC、EBD、ECD),此處假設相似度門檻值設定為0.5,把小於門檻值的邊 EAB、EAC、EAD、EBC拿掉之後,分別將各個節點邊的值加總即可得到各個節點的相似度加. Nat. sit. y. 總,以A、D節點為例,由於與A節點相連的邊EAB、EAC、EAD皆小於0.5而被剔除,因此A的. er. al. n. ECD = 0.8 + 0.6 = 1.4。. io. 相似度加總值為0,邊EBD、ECD還保留著且與D節點相連,因此D節點的相似度加總為EBD +. Ch. engchi. i n U. v. 圖3-2 相似度加總計算範例 21. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(33) 3.1.3 濾波器權值絕對值加總 相似度加總為挑選濾波器主要依據,權值絕對值加總則為次要依據,其使用時機為當 兩個濾波器相似度加總相同,無法決定該留下哪一個濾波器時,就交由權值絕對值加總來 決定。而會選擇權值絕對值加總來當次要挑選依據是由於在[1][2]這兩篇與壓縮CNN模型相 關的論文中,其篩選的重要依據就是權值絕對值加總,在這兩篇論文中皆認為權值絕對值 加總較大的卷積核、濾波器是相對重要的,雖然本論文所提出的多樣性演算法是以濾波器 之間的相似度為主,但為了解決相似度加總相同而無從挑選的情況,因此選擇了權值絕對. 政 治 大 權值絕對值加總的計算方式相當簡單,即是將濾波器裡所有的權值取絕對值做加總。 立. 值加總做為次要挑選依據。. ‧ 國. 學. 延續3.1.1的假設,輸入n個通道輸出m個通道,卷積核大小k x k,每個濾波器裡皆包含n x k x k個權值,將m個濾波器裡的n x k x k個權值分別取絕對值做加總即可得到各個濾波器的權. ‧. 值絕對值加總。以圖3-3為例,濾波器A的權值絕對值加總為33,濾波器B為51,因此如果必 須從濾波器A與B當中選擇一個作保留,我們會選擇權值絕對值加總較大的濾波器B。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3-3 權值絕對值加總計算範例. 22. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(34) 3.1.4 演算法步驟 多樣性演算法可以分為11個主要執行步驟,如下描述: (1) 設定一介於0 ~ 1之間的相似度門檻值。 (2) 取得CNN模型中某一卷積層的權重,將權重以濾波器為單位分開並依一定順序轉換成 一維向量。 (3) 計算兩兩濾波器之間的餘弦相似度,將小於門檻值的分數剔除後由大至小排序,得到 相似度分數列表。. 政 治 大 以濾波器編號為節點,濾波器之間的相似度分數為邊,構成一張完全圖。 立. (4) 計算各個濾波器的權值絕對值加總,得到權值絕對值加總列表。 (5). ‧ 國. (7) 計算每個節點的相似度加總,得到相似度加總列表。. 學. (6) 將小於門檻值的邊從完全圖中剔除,得到濾波器相似關係圖。. ‧. (8) 從相似度分數列表中找到擁有最大相似度分數的邊。. (9) 比較兩邊節點的相似度加總,以相似度加總值較大的為中心節點. Nat. sit. y. If 相似度加總相同. er. io. Then 比較兩節點的權值絕對值加總大小,以權值絕對值加總較大的為中心節點. al. iv n C (11) 重複(8)、(9)、(10)步驟直到圖中沒有任何邊存在為止 hengchi U n. (10) 刪除與中心節點有連結的其他節點,同時把與被刪除節點有連接的邊刪除。. 在此演算法中共使用到三個列表,第一個是用以儲存相似度分數高於設定門檻值邊的 分數與其兩端節點的編號(Edge list),第二、三個則分別紀錄各個節點的相似度加總(Sum of similarity)與權值絕對值加總(Sum of weights)。以圖3-4為實例說明,包含A至H共8個節點, 分別代表卷積層中的8個濾波器,此處假設步驟(1)至(7)都已完成,也就是說我們已經得到 濾波器相似關係圖以及上述三個列表,接著會從步驟(8)開始,一步一步說明是如何篩選該 被保留與刪除的濾波器。. 23. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(35) 立. 政 治 大 圖3-4 多樣性演算法範例. ‧ 國. 學. 檢查邊列表不為空. 找到相似度分數最大的邊EAB = 0.7. ‧. 比較A、B的相似度加總B > A,選定B為中心節點. sit. y. Nat. 刪除與中心節點B有連接的節點A、C、D. io. al. n. 第一輪結束後如圖3-5. er. 將與節點A、C、D有連接的邊EAB、EAC、EBC、EBD、EDE從邊列表中移除. Ch. engchi. i n U. v. 圖3-5 多樣性演算法範例:第一輪刪減 24. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(36) 檢查邊列表不為空 找到相似度分數最大的邊EFG = 0.5 比較F、G的相似度加總F = G,無法決定 再比較F、G的權值絕對值加總F > G,選定F為中心節點 刪除與中心節點F有連接的節點G 將與節點G有連接的邊EFG從邊列表中移除 第二輪結束後如圖3-6. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. i n U. v. 圖3-6 多樣性演算法範例:第二輪刪減 檢查邊列表為空,演算法結束. engchi. 刪去節點 : A、C、D、G 保留其餘節點. 從上面的結果可以看到,多樣性演算法透過邊的存在與否,來判定是否還存有相似的 濾波器,依序從最大的邊開始下手,也確保了從最為相似的兩個濾波器開始刪除,而決定 該保留何者的依據則為相似度加總以及權值絕對值加總。透過多樣性演算法,我們可以篩 選出重複、多餘的濾波器並做刪除,同時保證被保留下來的濾波器是具有代表性且多樣的。. 25. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(37) 3.2 CNN模型 3.2.1 VGG VGG是牛津大學Visual Geometry Group和Google DeepMind研究員共同研發的深度卷積 神經網路。VGG透過反覆堆疊3 x 3的卷積核與2 x 2的最大池化層,且不斷加深網路架構來 提升其性能,成功的建構了16至19層深的卷積神經網路。相比於之前state-of-the-art的網路 架構,其錯誤率大幅的下降,並取得ISLVRC 2014比賽分類項目的第二名以及定位項目的第. 政 治 大 與VGG-19,圖3-8則為每一版本的參數量,雖然從A到E網路逐漸加深,但網路的參數量並 立. 一名。圖3-7所示為VGG各個版本的網路架構圖,其中D與E也就是我們時常聽到的VGG-16. ‧. ‧ 國. 學. 沒有增加很多,這是由於大部分的參數量都集中在最後3個全連接層。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3-7 VGG各版本網路架構圖[19]. 圖3-8 VGG各版本網路參數量(單位為百萬)[19]. 26. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(38) 3.2.2 ResNet ResNet(Residual neural network)是由Kaiming He等人所提出,透過使用殘差學習模塊 (Residual block)成功訓練152層深的神經網路,在ILSVRC 2015比賽中獲得了冠軍,得到 3.57%的top-5錯誤率,但其參數量卻比VGG低,效果相當突出。 由於網路深度對於CNN的辨識結果相當重要,但在不斷加深神經網路的深度時,會出 現兩個問題,第一個是梯度消失問題,也就是在越深的網路中,梯度下降法(Gradient descent) 越難更新到越前面的層,導致參數更新的極度緩慢,然而此問題在Sergey loffe與Christian. 政 治 大 樣梯度在反向層層傳遞時仍能保持大小穩定,不會出現過小或過大的情況。第二個是準確 立. Szegedy提出BN(Batch Normalization)[21]後被順利解決,BN層能對各層的輸出做正規化,這. ‧ 國. 學. 率下降問題(Degradation problem),當網路越深時意味著參數空間更大,最佳化問題也變得 更難,因此增加網路深度反而出現更高的訓練誤差,為了解決準確率下降的問題,ResNet. ‧. 採用了Schmidhuber在Highway Network[22]所提出的概念,Highway Network提出除了非線 性轉換外,會保留一定比例的原始輸入直接輸出到下一層中,而ResNet中的Residual block. sit. y. Nat. 也利用了此概念,每兩層卷積層會有一個捷徑(Identity mapping)將原始輸入直接傳輸到後面. io. al. n. connection。. er. 的層中,如圖3-9所示,使得後面的層可以直接學習殘差,這種架構也被稱為Shortcut或Skip-. Ch. i n U. v. 傳統的卷積層或全連接層在傳遞資料時,多少都會有資料遺失、耗損的問題,而ResNet. engchi. 在某種程度上解決了這個問題,透過直接將輸入傳送到輸出,保護資料的完整性,整個網 路只需要學習輸入與輸出差別的那一部分,簡化了學習的目標和難度。. 圖3-9 Residual block[13] 在ResNet論文中,提出了兩層與三層的Residual block,如圖3-10所示。兩層的Residual 27. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(39) block包含兩個相同輸出通道數的3 x 3卷積層,由於殘差等於目標輸出減去輸入,因此輸入、 輸出的維度需保持一致,三層的Residual block則在3 x 3卷積層的前後使用了1 x 1的卷積層, 有先降維在升維的動作。圖3-11所示為ResNet在不同層數時的網路架構,其基礎結構相當類 似,皆是兩層或三層Residual block的堆疊。. 立. 政 治 大. ‧ 國. 學. 圖3-10 兩層及三層的Residual block[13]. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3-11 ResNet不同層數時的網路架構[13]. 28. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(40) 3.2.3 DenseNet DenseNet(Dense convolution network)是由康乃爾大學(Cornell University)的Gao Huang等 人所提出。DenseNet相比於ResNet擁有更多的Skip-connection,在ImageNet資料集上, DenseNet使用與ResNet相比大約一半的參數量即可達到與其相同的辨識準確率。 DenseNet是一種具有密集連接的卷積神經網絡,在該網路中任兩層之間都有直接的連 接,也就是說,網路每一層的輸入都是前面所有層輸出特徵圖的連接(Concatenate),而該層 所學習的特徵圖也會被直接傳給其後面所有層做為輸入。圖3-12為一個包含5層卷積層的. 政 治 大 DenseNet網路架構中會包含許多個Dense block,如圖3-13為使用3個Dense block所組成的分 立. Dense block,其中每一層卷積層輸出的特徵圖數量稱為Growth rate(k),在此例中k = 4。在. ‧ 國. 學. 類器,Block與Block之間則透過Transition layer連接在一起,Transition layer包含了1 x 1卷積 層與平均池化層,其用意在於降低特徵圖的大小,而各個Dense block內的特徵圖大小必須. ‧. 是相同的,在做拼接時才不會發生特徵圖大小不一致的問題。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3-12 包含5層卷積層的Dense block,其中k = 4[20]. 圖3-13 包含3個Dense block的DenseNet[20]. 29. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

(41) 論文中針對ImageNet資料集設計了四種版本的DenseNet架構,如圖3-14所示。可以看到 此處每個Dense block的3 x 3卷積層前都加了一層1 x 1的卷積層,就是所謂的Bottleneck layer, 目的是為了減少輸入的特徵圖數量,既能降低維度減少運算量,又能融合輸入特徵圖各個 通道的特徵,其預設輸出特徵圖的通道數為4k,論文中將增加Bottleneck layer後的DenseNet 架構稱為DenseNet-B。另外Transition layer也可以起到壓縮模型的作用,假設Transition layer 從上一層Dense Block所得到的特徵圖通道數量為m,透過Transition layer中1 x 1的卷積層, 可以將通道數變為⌊𝜃𝑚⌋,θ為壓縮比率且0 < θ ≤ 1,當θ = 1時,特徵圖通道數經過. 政 治 大. Transition layer後保持不變,即無壓縮,而當θ < 1時,Transition layer輸出特徵圖通道數變. 立. 為⌊𝜃𝑚⌋,論文中將這種架構稱為DenseNet-C,且預設θ = 0.5。DenseNet-BC所指的是包含. ‧. ‧ 國. 學. Bottleneck layer且Transition layer壓縮比率不為1時的網路架構。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3-14 針對ImageNet所設計的四種DenseNet架構,其中k = 32[20]. 30. DOI:10.6814/THE.NCCU.CS.003.2019.B02.

參考文獻

相關文件

基於「就業服務法」第 16

基於「就業服務法」第 16

基於「就業服務法」第 16

基於「就業服務法」第 16

 小賣部旁的花園,立著竹,立著羅漢松。松的

問題是,經歷了十多年的填鴨教育,學生早 就習慣了被動的接收模式,要找回早已失落

倒傳遞神經網路的演算法使 SPOT 假色影像轉換到 SPOT 自然色影 像。影像的結果。(3)以不同天的 SPOT 假色影像進行網路回想,產 生

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA