29.1 后端壓縮
(1)低秩近似
- 在卷積神經(jīng)網(wǎng)絡(luò)中责蝠,卷積運(yùn)算都是以矩陣相乘的方式進(jìn)行
- 對(duì)于復(fù)雜網(wǎng)絡(luò)彤悔,權(quán)重矩陣往往非常大薯定,非常消耗存儲(chǔ)和計(jì)算資源
- 低秩近似就是用若干個(gè)低秩矩陣組合重構(gòu)大的權(quán)重矩陣唾那,以此降低存儲(chǔ)和計(jì)算資源消耗庞钢。
事項(xiàng) | 特點(diǎn) |
---|---|
優(yōu)點(diǎn) | 可以降低存儲(chǔ)和計(jì)算消耗拔恰; 一般可以壓縮2-3倍;精度幾乎沒有損失基括; |
缺點(diǎn) | 模型越復(fù)雜颜懊,權(quán)重矩陣越大,利用低秩近似重構(gòu)參數(shù)矩陣不能保證模型的性能 ; 超參數(shù)的數(shù)量隨著網(wǎng)絡(luò)層數(shù)的增加呈線性變化趨勢(shì)河爹,例如中間層的特征通道數(shù)等等使鹅。 隨著模型復(fù)雜度的提升,搜索空間急劇增大昌抠。 |
(2)未加限制的剪枝
- 完成訓(xùn)練后患朱,不加限制地剪去那些冗余參數(shù)。
事項(xiàng) | 特點(diǎn) |
---|---|
優(yōu)點(diǎn) | 保持模型性能不損失的情況下炊苫,減少參數(shù)量9-11倍裁厅; 剔除不重要的權(quán)重,可以加快計(jì)算速度侨艾,同時(shí)也可以提高模型的泛化能力执虹; |
缺點(diǎn) | 極度依賴專門的運(yùn)行庫和特殊的運(yùn)行平臺(tái),不具有通用性唠梨; 壓縮率過大時(shí)袋励,破壞性能; |
(3)參數(shù)量化
- 神經(jīng)網(wǎng)絡(luò)的參數(shù)類型一般是32位浮點(diǎn)型当叭,使用較小的精度代替32位所表示的精度茬故。或者是將多個(gè)權(quán)重映射到同一數(shù)值蚁鳖,權(quán)重共享
- 量化其實(shí)是一種權(quán)值共享的策略
- 量化后的權(quán)值張量是一個(gè)高度稀疏的有很多共享權(quán)值的矩陣磺芭,對(duì)非零參數(shù),我們還可以進(jìn)行定點(diǎn)壓縮醉箕,以獲得更高的壓縮率钾腺。
事項(xiàng) | 特點(diǎn) |
---|---|
優(yōu)點(diǎn) | 模型性能損失很小,大小減少8-16倍讥裤; |
缺點(diǎn) | 壓縮率大時(shí)放棒,性能顯著下降; 依賴專門的運(yùn)行庫己英,通用性較差间螟; |
- 最為典型就是二值網(wǎng)絡(luò)、XNOR網(wǎng)絡(luò)等剧辐。其主要原理就是采用1bit對(duì)網(wǎng)絡(luò)的輸入寒亥、權(quán)重、響應(yīng)進(jìn)行編碼
- 減少模型大小的同時(shí)荧关,原始網(wǎng)絡(luò)的卷積操作可以被bit-wise運(yùn)算代替,極大提升了模型的速度
- 但是褂傀,如果原始網(wǎng)絡(luò)結(jié)果不夠復(fù)雜(模型描述能力)忍啤,由于二值網(wǎng)絡(luò)會(huì)較大程度降低模型的表達(dá)能力
- 因此現(xiàn)階段有相關(guān)的論文開始研究n-bit編碼方式成為n值網(wǎng)絡(luò)或者多值網(wǎng)絡(luò)或者變bit、組合bit量化來克服二值網(wǎng)絡(luò)表達(dá)能力不足的缺點(diǎn)
(4)二值網(wǎng)絡(luò)
- 相對(duì)量化更為極致,對(duì)于32bit浮點(diǎn)型數(shù)用1bit二進(jìn)制數(shù)-1或者1表示同波,可大大減小模型尺寸
事項(xiàng) | 特點(diǎn) |
---|---|
優(yōu)點(diǎn) | 網(wǎng)絡(luò)體積小鳄梅,運(yùn)算速度快,有時(shí)可避免部分網(wǎng)絡(luò)的overfitting |
缺點(diǎn) | 二值神經(jīng)網(wǎng)絡(luò)損失的信息相對(duì)于浮點(diǎn)精度是非常大未檩;<br />粗糙的二值化近似導(dǎo)致訓(xùn)練時(shí)模型收斂速度非常慢 |
(5)三值網(wǎng)絡(luò)
事項(xiàng) | 特點(diǎn) |
---|---|
優(yōu)點(diǎn) | 相對(duì)于二值神經(jīng)網(wǎng)絡(luò)戴尸,三值神經(jīng)網(wǎng)絡(luò)(Ternary Weight Networks)在同樣的模型結(jié)構(gòu)下可以達(dá)到成百上千倍的表達(dá)能力提升;并且,在計(jì)算時(shí)間復(fù)雜度上冤狡,三元網(wǎng)絡(luò)和二元網(wǎng)絡(luò)的計(jì)算復(fù)雜度是一樣的孙蒙。例如,對(duì)于ResNet-18層網(wǎng)絡(luò)中最常出現(xiàn)的卷積核(3x3大小)悲雳,二值神經(jīng)網(wǎng)絡(luò)模型最多可以表達(dá)2的3x3次方(=512)種結(jié)構(gòu)挎峦,而三元神經(jīng)網(wǎng)絡(luò)則可以表達(dá)3的3x3次方(=19683)種卷積核結(jié)構(gòu)。在表達(dá)能力上合瓢,三元神經(jīng)網(wǎng)絡(luò)相對(duì)要高19683/512 = 38倍坦胶。因此,三元神經(jīng)網(wǎng)絡(luò)模型能夠在保證計(jì)算復(fù)雜度很低的情況下大幅的提高網(wǎng)絡(luò)的表達(dá)能力晴楔,進(jìn)而可以在精度上相對(duì)于二值神經(jīng)網(wǎng)絡(luò)有質(zhì)的飛躍顿苇。另外,由于對(duì)中間信息的保存更多税弃,三元神經(jīng)網(wǎng)絡(luò)可以極大的加快網(wǎng)絡(luò)訓(xùn)練時(shí)的收斂速度岖圈,從而更快、更穩(wěn)定的達(dá)到最優(yōu)的結(jié)果钙皮。 |
大數(shù)據(jù)視頻推薦:
網(wǎng)易云課堂
CSDN
人工智能算法競(jìng)賽實(shí)戰(zhàn)
AIops智能運(yùn)維機(jī)器學(xué)習(xí)算法實(shí)戰(zhàn)
ELK7 stack開發(fā)運(yùn)維實(shí)戰(zhàn)
PySpark機(jī)器學(xué)習(xí)從入門到精通
AIOps智能運(yùn)維實(shí)戰(zhàn)
騰訊課堂
大數(shù)據(jù)語音推薦:
ELK7 stack開發(fā)運(yùn)維
企業(yè)級(jí)大數(shù)據(jù)技術(shù)應(yīng)用
大數(shù)據(jù)機(jī)器學(xué)習(xí)案例之推薦系統(tǒng)
自然語言處理
大數(shù)據(jù)基礎(chǔ)
人工智能:深度學(xué)習(xí)入門到精通