【AutoML】强化学习如何用于模型量化?
大家好,歡迎來到專欄《AutoML》,在這個專欄中我們會講述AutoML技術在深度學習中的應用,這一期講述在模型量化中的應用。
作者&編輯 | 言有三
上一期給大家介紹了AutoML技術在模型剪枝中的應用,而量化作為模型壓縮的另外一個技術,是學術界和工業界的重點研究方向,今天給大家介紹AutoML在模型量化中的應用思路。
1 HAQ(混合精度量化學習)
HAQ(Hardware-Aware Automated Quantization with Mixed Precision)是一個自動化的混合精度量化框架,使用增強學習讓每一層都學習到了適合該層的量化位寬。
不同的網絡層有不同的冗余性,因此對于精度的要求也不同,當前已經有許多的芯片開始支持混合精度。通常來說,淺層特征提取需要更高的精度,卷積層比全連接層需要更高的精度。如果手動的去搜索每一層的位寬肯定是不現實的,因此需要采用自動搜索策略。
另一方面,一般大家使用FLOPS,模型大小等指標來評估模型壓縮的好壞,然后不同的平臺表現出來的差異可能很大,因此HAQ使用了新的指標,即芯片的延遲和功耗。
搜索的學習過程是代理Agent接收到層配置和統計信息作為觀察,然后輸出動作行為即權值和激活的位寬。其中一些概念如下:
(1) 觀測值-狀態空間,一個10維變量,如下:
(2) 動作空間,使用了連續函數來決定位寬,離散的位寬如下:
(3) 反饋,利用硬件加速器來獲取延遲和能量作為反饋信號,以指導Agent滿足資源約束。
(4) 量化,直接使用線性量化方法,其中s是縮放因子,clamp是截斷函數。
(5) c的選擇是計算原始分布和量化后分布的KL散度,這也是很多框架中的做法。
(5) 獎勵函數,在所有層被量化過后,再進行1個epoch的微調,并將重訓練后的驗證精度作為獎勵信號。
(6) 代理,使用了深度確定性策略梯度(DDPG)方法。
上圖是在延遲約束下,MobileNet-V1/V2模型在邊緣端和云端設備上的實驗結果,與固定的8bit量化方法相比,分別取得了1.4倍到1.95倍的加速。
上圖分別是邊緣端和云端設備上MobileNet-V1各個網絡層的量化特點,可以發現在邊緣端設備上depthwise卷積有更少的bits,pointwise有更多,在云端則是完全相反。這是因為云設備具有更大的內存帶寬和更高的并行性,而depthwise就是內存受限的操作,pointwise則是計算受限的操作,MobileNet-V2上能觀察到同樣的特點。
另外還有能量約束和模型大小約束的結果,讀者可以讀原始論文獲取細節。
與HAQ類似的研究還有AutoDB[2]等,感興趣同學可以延伸閱讀。
2 關于模型優化
如果說要我在深度學習這么多方向里選擇一個的話,我會毫不猶豫地選擇模型優化,這也是我一直在做的事情。公眾號寫過很多的模型解讀了,如下是一些文章總結和直播鏈接以及資源下載。
【完結】總結12大CNN主流模型架構設計思想
【知識星球】超3萬字的網絡結構解讀,學習必備
【總結】言有三&阿里天池深度學習模型設計直播匯總,附贈超過200頁直播PPT課件
知識星球也有一個模型結構1000變板塊,比公眾號的內容更深更廣。其中的模型優化部分主要包括緊湊模型的設計,剪枝,量化以及知識蒸餾等內容的詳細解讀,感興趣可以移步,添加有三微信Longlongtogo略有優惠。
[1]?Wang K, Liu Z, Lin Y, et al. HAQ: Hardware-Aware Automated Quantization with Mixed Precision[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 8612-8620.
[2] Lou Q, Liu L, Kim M, et al. AutoQB: AutoML for Network Quantization and Binarization on Mobile Devices[J]. arXiv preprint arXiv:1902.05690, 2019.
總結
這次我們介紹了AutoML在模型量化中的一個經典案例,至此已經基本介紹完AutoML在模型優化參數搜索中的各個方向,詳細深入各個方向就留待感興趣的讀者自己加油了。
下期預告:AutoML與模型結構搜索開篇。
知識星球推薦
有三AI知識星球由言有三維護,內設AI知識匯總,AI書籍,網絡結構,看圖猜技術,數據集,項目開發,Github推薦,AI1000問八大學習板塊,詳細了解可以閱讀。
【雜談】為什么邀請大家加入硬核知識星球有三AI
轉載文章請后臺聯系
侵權必究
往期文章
【AutoML】如何選擇最合適的數據增強操作
【AutoML】激活函數如何進行自動學習和配置
【AutoML】歸一化(Normalization)方法如何進行自動學習和配置
【AutoML】優化方法可以進行自動搜索學習嗎?
【AutoML】損失函數也可以進行自動搜索學習嗎?
【AutoML】如何使用強化學習進行模型剪枝?
【知識星球】分組卷積最新進展,全自動學習的分組有哪些經典模型?
【知識星球】卷積核和感受野可動態分配的分組卷積
【知識星球】有三AI 10月新主題,千奇百怪GAN上線!
【知識星球】剪枝量化初完結,蒸餾學習又上線
【知識星球】有沒有網絡模型是動態變化的,每次用的時候都不一樣?
總結
以上是生活随笔為你收集整理的【AutoML】强化学习如何用于模型量化?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】有三AI秋季划火热进行中,如何深
- 下一篇: 【每周CV论文推荐】 人脸识别剩下的难题