深度學(xué)習(xí)在模型及其數(shù)據(jù)集方面正以驚人的速度增長。在應(yīng)用方面,深度學(xué)習(xí)市場以圖像識別為主,其次是光學(xué)字符識別,以及面部和物體識別。根據(jù) Allied Market Research 的數(shù)據(jù),2020 年全球深度學(xué)習(xí)市場價值 68.5 億美元,預(yù)計到 2030 年將達(dá)到 1799.6 億美元,2021 年至 2030 年的復(fù)合年增長率為 39.2%。
曾經(jīng)有人認(rèn)為大型復(fù)雜模型性能更好,但現(xiàn)在這幾乎是一個神話。隨著邊緣人工智能的發(fā)展,越來越多的技術(shù)出現(xiàn)將大型復(fù)雜模型轉(zhuǎn)換為可以在邊緣運行的簡單模型,所有這些技術(shù)結(jié)合起來執(zhí)行模型壓縮。
什么是模型壓縮?
模型壓縮是在計算能力和內(nèi)存較低的邊緣設(shè)備上部署 SOTA(最先進(jìn)的)深度學(xué)習(xí)模型的過程,同時不會影響模型在準(zhǔn)確度、精確度、召回率等方面的性能。模型壓縮廣泛地減少了模型中的兩件事,即。大小和延遲。尺寸縮減側(cè)重于通過減少模型參數(shù)使模型更簡單,從而減少執(zhí)行中的 RAM 需求和內(nèi)存中的存儲需求。延遲減少是指減少模型進(jìn)行預(yù)測或推斷結(jié)果所花費的時間。模型大小和延遲通常同時存在,大多數(shù)技術(shù)都會降低兩者。
流行的模型壓縮技術(shù)
修剪
剪枝是最流行的模型壓縮技術(shù),它通過刪除冗余和無關(guān)緊要的參數(shù)來工作。神經(jīng)網(wǎng)絡(luò)中的這些參數(shù)可以是連接器、神經(jīng)元、通道,甚至是層。它很受歡迎,因為它同時減小了模型的大小并改善了延遲。
修剪
修剪可以在我們訓(xùn)練模型甚至訓(xùn)練后進(jìn)行。有不同類型的剪枝技術(shù),包括權(quán)重/連接剪枝、神經(jīng)元剪枝、過濾器剪枝和層剪枝。
量化
當(dāng)我們在剪枝中移除神經(jīng)元、連接、過濾器、層等以減少加權(quán)參數(shù)的數(shù)量時,權(quán)重的大小在量化期間會減小。在此過程中,將大集合中的值映射到較小集合中的值。與輸入網(wǎng)絡(luò)相比,輸出網(wǎng)絡(luò)的取值范圍更窄,但保留了大部分信息。有關(guān)此方法的更多詳細(xì)信息,您可以在此處閱讀我們關(guān)于模型量化的深入文章。
知識蒸餾
在知識蒸餾過程中,我們在一個非常大的數(shù)據(jù)集上訓(xùn)練一個復(fù)雜而大的模型。在對大型模型進(jìn)行微調(diào)后,它可以很好地處理看不見的數(shù)據(jù)。一旦實現(xiàn),這些知識就會轉(zhuǎn)移到更小的神經(jīng)網(wǎng)絡(luò)或模型中。教師網(wǎng)絡(luò)(較大的模型)和學(xué)生網(wǎng)絡(luò)(較小的模型)都被使用。這里存在兩個方面,即知識蒸餾,我們不調(diào)整教師模型,而在遷移學(xué)習(xí)中,我們使用精確的模型和權(quán)重,在一定程度上改變模型,并針對相關(guān)任務(wù)進(jìn)行調(diào)整。
知識蒸餾系統(tǒng)
知識、蒸餾算法和師生架構(gòu)模型是典型知識蒸餾系統(tǒng)的三個主要部分,如上圖所示。
低矩陣分解
矩陣構(gòu)成了大多數(shù)深度神經(jīng)架構(gòu)的主體。該技術(shù)旨在通過應(yīng)用矩陣或張量分解并將它們變成更小的矩陣來識別冗余參數(shù)。當(dāng)應(yīng)用于密集DNN(深度神經(jīng)網(wǎng)絡(luò))時,這種技術(shù)降低了 CNN(卷積神經(jīng)網(wǎng)絡(luò))層的存儲要求和分解,并提高了推理時間。具有二維和秩 r 的權(quán)重矩陣 A 可以分解為更小的矩陣,如下所示。
低矩陣分解
模型的準(zhǔn)確性和性能高度依賴于適當(dāng)?shù)姆纸夂偷燃夁x擇。低秩分解過程的主要挑戰(zhàn)是更難實現(xiàn)并且計算量很大??傮w而言,與全秩矩陣表示相比,密集層矩陣的因式分解導(dǎo)致模型更小,性能更快。
由于邊緣人工智能,模型壓縮策略變得非常重要。這些方法相互補(bǔ)充,可用于整個 AI 管道的各個階段。TensorFlow 和 Pytorch 等流行框架現(xiàn)在包括修剪和量化等技術(shù)。最終,該領(lǐng)域使用的技術(shù)數(shù)量將會增加。