《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 網(wǎng)絡(luò)規(guī)模更小,、速度更快,這是谷歌提出的MorphNet

網(wǎng)絡(luò)規(guī)模更小,、速度更快,,這是谷歌提出的MorphNet

2019-04-21

一直以來,,深度神經(jīng)網(wǎng)絡(luò)在圖像分類、文本識(shí)別等實(shí)際問題中發(fā)揮重要的作用,。但是,,考慮到計(jì)算資源和時(shí)間,深度神經(jīng)網(wǎng)絡(luò)架構(gòu)往往成本很高,。此次,,谷歌研究人員提出一種自動(dòng)化神經(jīng)網(wǎng)絡(luò)架構(gòu)的新方法 MorphNet,通過迭代縮放神經(jīng)網(wǎng)絡(luò),,節(jié)省了資源,,提升了性能。


深度神經(jīng)網(wǎng)絡(luò)(DNN)在解決圖像分類,、文本識(shí)別和語音轉(zhuǎn)錄等實(shí)際難題方面顯示出卓越的效能,。但是,為給定問題設(shè)計(jì)合適的 DNN 架構(gòu)依然是一項(xiàng)具有挑戰(zhàn)性的任務(wù),??紤]到巨大的架構(gòu)搜索空間,就計(jì)算資源和時(shí)間而言,,為具體應(yīng)用從零開始設(shè)計(jì)一個(gè)網(wǎng)絡(luò)是極其昂貴的,。神經(jīng)架構(gòu)搜索(NAS)和 AdaNet 等方法使用機(jī)器學(xué)習(xí)來搜索架構(gòu)設(shè)計(jì)空間,從而找出適合的改進(jìn)版架構(gòu),。另一種方法是利用現(xiàn)有架構(gòu)來解決類似問題,,即針對(duì)手頭任務(wù)一次性對(duì)架構(gòu)進(jìn)行優(yōu)化。


谷歌研究人員提出一種神經(jīng)網(wǎng)絡(luò)模型改進(jìn)的復(fù)雜方法 MorphNet。研究人員發(fā)表了論文《MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep Networks》,,MorphNet 將現(xiàn)有神經(jīng)網(wǎng)絡(luò)作為輸入,,為新問題生成規(guī)模更小、速度更快,、性能更好的新神經(jīng)網(wǎng)絡(luò),。研究人員已經(jīng)運(yùn)用該方法解決大規(guī)模問題,設(shè)計(jì)出規(guī)模更小,、準(zhǔn)確率更高的產(chǎn)品服務(wù)網(wǎng)絡(luò),。目前,MorphNet 的 TensoreFlow 實(shí)現(xiàn)已開源,,大家可以利用該方法更高效地創(chuàng)建自己的模型,。


MorphNet 開源項(xiàng)目地址:https://github.com/google-research/morph-net


MorphNet 的工作原理


MorphNet 通過收縮和擴(kuò)展階段的循環(huán)來優(yōu)化神經(jīng)網(wǎng)絡(luò)。在收縮階段,,MorphNet 通過稀疏性正則化項(xiàng)(sparsifying regularizer)識(shí)別出效率低的神經(jīng)元,,并將它們從網(wǎng)絡(luò)中去除,因而該網(wǎng)絡(luò)的總損失函數(shù)包含每一神經(jīng)元的成本,。但是對(duì)于所有神經(jīng)元,,MorphNet 沒有采用統(tǒng)一的成本度量,而是計(jì)算神經(jīng)元相對(duì)于目標(biāo)資源的成本,。隨著訓(xùn)練的繼續(xù)進(jìn)行,,優(yōu)化器在計(jì)算梯度時(shí)是了解資源成本信息的,從而得知哪些神經(jīng)元的資源效率高,,哪些神經(jīng)元可以去除,。

微信圖片_20190421163937.jpg

MorphNet 的算法。


例如,,考慮一下 MorphNet 如何計(jì)算神經(jīng)網(wǎng)絡(luò)的計(jì)算成本(如 FLOPs),。為簡(jiǎn)單起見,我們來思考一下被表示為矩陣乘法的神經(jīng)網(wǎng)絡(luò)層,。在這種情況下,,神經(jīng)網(wǎng)絡(luò)層擁有 2 個(gè)輸入(x_n)、6 個(gè)權(quán)重 (a,b,...,f) 和 3 個(gè)輸出(y_n),。使用標(biāo)準(zhǔn)教科書中行和列相乘的方法,,你會(huì)發(fā)現(xiàn)評(píng)估該神經(jīng)網(wǎng)絡(luò)層需要 6 次乘法。

微信圖片_20190421164002.png

神經(jīng)元的計(jì)算成本,。


MorphNet 將其計(jì)算成本表示為輸入數(shù)和輸出數(shù)的乘積,。請(qǐng)注意,盡管左邊示例顯示出了權(quán)重稀疏性,,其中兩個(gè)權(quán)重值為 0,,但我們依然需要執(zhí)行所有的乘法,以評(píng)估該神經(jīng)網(wǎng)絡(luò)層。但是,,中間示例顯示出了結(jié)構(gòu)性的稀疏,,其中神經(jīng)元 y_n 最后一行上的所有權(quán)重值均為 0。MorphNet 意識(shí)到該層的新輸出數(shù)為 2,,并且該層的乘次數(shù)量由 6 降至 4,。基于此,,MorphNet 可以確定該神經(jīng)網(wǎng)絡(luò)中每一神經(jīng)元的增量成本,,從而生成更高效的模型(右邊示例),其中神經(jīng)元 y_3 被移除,。


在擴(kuò)展階段,研究人員使用寬度乘數(shù)(width multiplier)來統(tǒng)一擴(kuò)展所有層的大小,。例如,,如果層大小擴(kuò)大 50%,則一個(gè)效率低的層(開始有 100 個(gè)神經(jīng)元,,之后縮小至 10 個(gè)神經(jīng)元)將能夠擴(kuò)展回 15,,而只縮小至 80 個(gè)神經(jīng)元的重要層可能擴(kuò)展至 120,并且擁有更多資源,。凈效應(yīng)則是將計(jì)算資源從該網(wǎng)絡(luò)效率低的部分重新分配給更有用的部分,。


用戶可以在收縮階段之后停止 MorphNet,從而削減該網(wǎng)絡(luò)規(guī)模,,使之符合更緊湊的資源預(yù)算,。這可以在目標(biāo)成本方面獲得更高效的網(wǎng)絡(luò),但有時(shí)可能導(dǎo)致準(zhǔn)確率下降,?;蛘撸脩粢部梢酝瓿蓴U(kuò)展階段,,這將與最初目標(biāo)資源相匹配,,但準(zhǔn)確率會(huì)更高。


為什么使用 MorphNet,?


MorphNet 可提供以下四個(gè)關(guān)鍵價(jià)值:


有針對(duì)性的正則化:MorphNet 采用的正則化方法比其他稀疏性正則化方法更有目的性,。具體來說,MorphNet 方法用于更好的稀疏化,,但它的目標(biāo)是減少資源(如每次推斷的 FLOPs 或模型大?。_@可以更好地控制由 MorphNet 推導(dǎo)出的網(wǎng)絡(luò)結(jié)構(gòu),,這些網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)應(yīng)用領(lǐng)域和約束而出現(xiàn)顯著差異,。


例如,下圖左展示了在 JFT 數(shù)據(jù)集上訓(xùn)練的 ResNet-101 基線網(wǎng)絡(luò)。在指定目標(biāo) FLOPs(FLOPs 降低 40%,,中間圖)或模型大?。?quán)重減少 43%,右圖)的情況下,,MorphNet 輸出的結(jié)構(gòu)具有很大差異,。在優(yōu)化計(jì)算成本時(shí),相比于網(wǎng)絡(luò)較高層中的低分辨率神經(jīng)元,,較低層中的高分辨率神經(jīng)元會(huì)被更多地修剪掉,。當(dāng)目標(biāo)是較小的模型大小時(shí),剪枝策略相反,。

微信圖片_20190421164020.png

MorphNet 有目標(biāo)性的正則化(Targeted Regularization),。矩形的寬度與層級(jí)中通道數(shù)成正比,底部的紫色條表示輸入層,。左:輸入到 MorphNet 的基線網(wǎng)絡(luò),;中:應(yīng)用 FLOP regularizer 后的輸出結(jié)果;右:應(yīng)用 size regularizer 后的輸出結(jié)果,。


MorphNet 能夠把特定的優(yōu)化參數(shù)作為目標(biāo),,這使得它可針對(duì)特定實(shí)現(xiàn)設(shè)立具體參數(shù)目標(biāo)。例如,,你可以把「延遲」作為整合設(shè)備特定計(jì)算時(shí)間和記憶時(shí)間的首要優(yōu)化參數(shù),。


拓?fù)渥儞Q(Topology Morphing):MorphNet 學(xué)習(xí)每一層的神經(jīng)元,因此該算法可能會(huì)遇到將一層中所有神經(jīng)元全都稀疏化的特殊情況,。當(dāng)一層中的神經(jīng)元數(shù)量為 0 時(shí),,它切斷了受影響的網(wǎng)絡(luò)分支,從而有效地改變了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),。例如,,在 ResNet 架構(gòu)中,MorphNet 可能保留殘差連接,,但移除殘差模塊(如下圖左所示),。對(duì)于 Inception 結(jié)構(gòu),MorphNet 可能移除整個(gè)并行分支(如下圖右所示),。

微信圖片_20190421164039.jpg

左:MorphNet 移除 ResNet 網(wǎng)絡(luò)中的殘差模塊,。右:MorphNet 移除 Inception 網(wǎng)絡(luò)中的并行分支。


可擴(kuò)展性:MorphNet 在單次訓(xùn)練運(yùn)行中學(xué)習(xí)新的網(wǎng)絡(luò)結(jié)構(gòu),,當(dāng)你的訓(xùn)練預(yù)算有限時(shí),,這是一種很棒的方法。MorphNet 還可直接用于昂貴的網(wǎng)絡(luò)和數(shù)據(jù)集,。例如,,在上述對(duì)比中,,MorphNet 直接用于 ResNet-101,后者是在 JFT 數(shù)據(jù)集上以極高計(jì)算成本訓(xùn)練出的,。


可移植性:MorphNet 輸出的網(wǎng)絡(luò)具備可移植性,,因?yàn)樗鼈兛梢詮念^開始訓(xùn)練,且模型權(quán)重并未與架構(gòu)學(xué)習(xí)過程綁定,。你不必復(fù)制檢查點(diǎn)或按照特定的訓(xùn)練腳本執(zhí)行訓(xùn)練,,只需正常訓(xùn)練新網(wǎng)絡(luò)即可。


Morphing Network


谷歌通過固定 FLOPs 將 MorphNet 應(yīng)用到在 ImageNet 數(shù)據(jù)集上訓(xùn)練的 Inception V2 模型上(詳見下圖),?;€方法統(tǒng)一縮小每個(gè)卷積的輸出,使用 width multiplier 權(quán)衡準(zhǔn)確率和 FLOPs(紅色),。而 MorphNet 方法在縮小模型時(shí)直接固定 FLOPs,,生成更好的權(quán)衡曲線。在相同準(zhǔn)確率的情況下,,新方法的 FLOP 成本比基線低 11%-15%,。

微信圖片_20190421164056.jpg

將 MorphNet 應(yīng)用于在 ImageNet 數(shù)據(jù)集上訓(xùn)練的 Inception V2 模型后的表現(xiàn)。僅使用 flop regularizer(藍(lán)色)的性能比基線(紅色)性能高出 11-15%,。一個(gè)完整循環(huán)之后(包括 flop regularizer 和 width multiplier),在相同成本的情況下模型的準(zhǔn)確率有所提升(「x1」,,紫色),,第二個(gè)循環(huán)之后,模型性能得到繼續(xù)提升(「x2」,,青色),。


這時(shí),你可以選擇一個(gè) MorphNet 網(wǎng)絡(luò)來滿足更小的 FLOP 預(yù)算,?;蛘撸憧梢詫⒕W(wǎng)絡(luò)擴(kuò)展回原始 FLOP 成本來完成縮放周期,,從而以相同的成本得到更好的準(zhǔn)確率(紫色),。再次重復(fù) MorphNet 縮小/放大將再次提升準(zhǔn)確率(青色),,使整體準(zhǔn)確率提升 1.1%,。


結(jié)論


谷歌已經(jīng)將 MorphNet 應(yīng)用到其多個(gè)生產(chǎn)級(jí)圖像處理模型中。MorphNet 可帶來模型大小/FLOPs 的顯著降低,,且?guī)缀醪粫?huì)造成質(zhì)量損失,。


論文:MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep

微信圖片_20190421164118.jpg


論文鏈接:https://arxiv.org/pdf/1711.06798.pdf


摘要:本研究介紹了一種自動(dòng)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的新方法 MorphNet。MorphNet 迭代地放縮網(wǎng)絡(luò),,具體來說,,它通過激活函數(shù)上的資源權(quán)重(resource-weighted)稀疏性正則化項(xiàng)來縮小網(wǎng)絡(luò),,通過在所有層上執(zhí)行統(tǒng)一的乘積因子(multiplicative factor)來放大網(wǎng)絡(luò)。MorphNet 可擴(kuò)展至大型網(wǎng)絡(luò),,對(duì)特定的資源約束具備適應(yīng)性(如 FLOPs per inference),,且能夠提升網(wǎng)絡(luò)性能。把 MorphNet 應(yīng)用到大量數(shù)據(jù)集上訓(xùn)練的標(biāo)準(zhǔn)網(wǎng)絡(luò)架構(gòu)時(shí),,該方法可以在每個(gè)領(lǐng)域中發(fā)現(xiàn)新的結(jié)構(gòu),,且在有限資源條件下提升網(wǎng)絡(luò)的性能。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。