谷歌AI出品的神經(jīng)網(wǎng)絡(luò )模型優(yōu)化技術(shù)MorphNet
本文經(jīng)AI新媒體量子位(公眾號 ID: QbitAI)授權轉載,轉載請聯(lián)系出處。
本文引用地址:http://dyxdggzs.com/article/201907/403023.htm想要調整你的神經(jīng)網(wǎng)絡(luò )來(lái)完成特定任務(wù)?這件事并沒(méi)有想象中那么簡(jiǎn)單。
深度神經(jīng)網(wǎng)絡(luò )(DNN)是塊好磚,不過(guò)想要搬動(dòng)它,需要耗費的計算資源和時(shí)間成本可能非常昂貴。
現在,Google AI放出了MorphNet。他們用流行的圖像分類(lèi)神經(jīng)網(wǎng)絡(luò )Inception V2對其進(jìn)行測試之后發(fā)現,在不犧牲精度的情況下,神經(jīng)網(wǎng)絡(luò )變得更快更小,算力消耗還減少了!
MorphNet是什么
MorphNet是一種神經(jīng)網(wǎng)絡(luò )模型優(yōu)化( refinement)技術(shù),走的是利用現有架構,針對特定任務(wù)優(yōu)化的路線(xiàn)。
也就是說(shuō)這是一個(gè)遷移學(xué)習問(wèn)題。遷移學(xué)習的難點(diǎn)在于找出不變量,模型需要處理許多與此前訓練的任務(wù)目標相近,但又不完全一樣的任務(wù),這會(huì )使模型性能大打折扣甚至崩潰。
而MorphNet的成功之處在于,只要將針對類(lèi)似問(wèn)題構建的神經(jīng)網(wǎng)絡(luò )作為輸入,就能為新任務(wù)創(chuàng )造更小、更快、更合身的新架構。
Google AI出品:讓神經(jīng)網(wǎng)絡(luò )更快更小更高效的模型優(yōu)化技術(shù)MorphNet
MorphNet通過(guò)循環(huán)收縮和擴展兩個(gè)階段來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò )。
收縮階段
在收縮階段,MorphNet會(huì )識別出低效神經(jīng)元,并運用稀疏正則化器來(lái)修剪它們。
需要說(shuō)明的是MorphNet會(huì )在考慮目標資源的情況下來(lái)計算一個(gè)神經(jīng)元的損失,因此在訓練過(guò)程之中,優(yōu)化器能夠意識到資源損失,從而認識到哪些神經(jīng)元是高效的,哪些又是可以被移除的。
有些不明白?那么來(lái)看看下面這個(gè)例子,看MorphNet是如何計算神經(jīng)網(wǎng)絡(luò )的計算成本(如FLOPs,即每秒浮點(diǎn)運算次數)的:
假設一個(gè)表示為矩陣乘法的神經(jīng)網(wǎng)絡(luò )層,該層具有 2 個(gè)輸入(Xn),6 個(gè)權重(a, b, …, f)以及 3 個(gè)輸出(Yn;神經(jīng)元)。也就是說(shuō)評估這一層需要 6 次乘法。
Google AI出品:讓神經(jīng)網(wǎng)絡(luò )更快更小更高效的模型優(yōu)化技術(shù)MorphNet
MorphNet將乘法數視作輸入數和輸出數的乘積。在左側的示例當中,雖然有兩個(gè)權重為0,進(jìn)行評估時(shí)仍然需要執行所有的乘法。但中間的示例顯示了結構的稀疏性,MorphNet能夠識別它的輸出數為 2,并且該層的乘法數從 6 減少到了4。按照這個(gè)想法,MorphNet可以確定網(wǎng)絡(luò )中每一個(gè)神經(jīng)元的增量成本,以產(chǎn)生右側這樣更為有效的模型。
擴展階段
在擴展階段,MorphNet使用寬度乘數來(lái)均勻地擴展所有層的大小。
舉個(gè)例子,如果擴展50%,那么對于低效層來(lái)說(shuō),神經(jīng)元從 100 個(gè)收縮到 10 個(gè)之后,只會(huì )重新擴展到15個(gè);而對于重要層來(lái)說(shuō),神經(jīng)元只會(huì )從 100 個(gè)收縮到 80 個(gè),重新擴展后則可能達到 120 個(gè),并且獲得更多可支配的資源。
也就是說(shuō),MorphNet的最終效果是將計算資源從網(wǎng)絡(luò )中效率低的部分重新分配到效率高的部分。
效果怎么樣
Google AI團隊用MorphNet對Inception V2網(wǎng)絡(luò )模型進(jìn)行了訓練。
基線(xiàn)方法是使用寬度乘數,通過(guò)均勻縮小每個(gè)卷積的輸出數量來(lái)權衡精度和算力消耗(紅色)。
MorphNet方法則直接以算力消耗為目標,在收縮模型時(shí)生成更好的權衡曲線(xiàn)(藍色)。
在同等精度之下,MorphNet方法將算力消耗降低了11%到15%。
在對Inception V2的優(yōu)化上MorphNet表現出色,對于其他的網(wǎng)絡(luò )模型,MorphNet也同樣好用。
既成功壓縮了模型尺寸/ FLOPs,在質(zhì)量上又幾乎沒(méi)有損失,果然Google出品,必屬精品。
這么好用的東西,Google已經(jīng)自己用起來(lái)了。Google AI團隊表示,MorphNet已應用于Google多個(gè)生產(chǎn)規模的圖像處理模型。
評論