AI天團(tuán)出道已久,成員都是集顏值和才華于一身的男紙,之前我們已經(jīng)見(jiàn)過(guò)其中三位了,壓軸出場(chǎng)的到底是誰(shuí)?
更為重要的是,他會(huì)帶給我們關(guān)于人工智能的什么新鮮東東呢?
王宇航,博士畢業(yè)于中國(guó)科學(xué)院自動(dòng)化研究所,現(xiàn)階段主要研究方向包括:深度學(xué)習(xí)、圖像語(yǔ)義分割、目標(biāo)檢測(cè)、網(wǎng)絡(luò)模型壓縮與加速等。
宇航告訴我們,深度神經(jīng)網(wǎng)絡(luò)也可以是一個(gè)“Transformer”,它可以在使用時(shí)根據(jù)輸入數(shù)據(jù)動(dòng)態(tài)地調(diào)整自己的結(jié)構(gòu)。至于為什么要設(shè)計(jì)這樣的網(wǎng)絡(luò)結(jié)構(gòu),宇航用“殺雞焉用牛刀”來(lái)形容它。
隨著近年來(lái)深度學(xué)習(xí)的快速發(fā)展,我們已經(jīng)能夠獲得越來(lái)越精確的模型實(shí)現(xiàn)對(duì)圖像目標(biāo)的識(shí)別,而相應(yīng)地,模型的體積也在成倍地增長(zhǎng),這給模型的部署和應(yīng)用帶來(lái)了很大的麻煩。因此,很多學(xué)者一直致力于給深度神經(jīng)網(wǎng)絡(luò)模型“減重”,從而實(shí)現(xiàn)效果和速度的平衡。
其中的主要方法包括對(duì)模型和知識(shí)進(jìn)行蒸餾,對(duì)模型進(jìn)行剪枝,以及對(duì)模型參數(shù)進(jìn)行分解和量化等等。這些方法都能夠提高模型中“有效計(jì)算”的密度,從而使模型變得更加高效。如果說(shuō)這些方法是獲得了更加高效的“靜態(tài)”模型的話,另一類方法則采用“動(dòng)態(tài)”的模型來(lái)提高應(yīng)用端的計(jì)算效率,它們針對(duì)不同的輸入數(shù)據(jù)動(dòng)態(tài)地調(diào)整網(wǎng)絡(luò)的前向過(guò)程,去除不必要的計(jì)算,從而達(dá)到加速的目的。
首先,我們可以分析一下深度神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練和預(yù)測(cè)過(guò)程中的不同:在訓(xùn)練的過(guò)程中,我們要求模型對(duì)來(lái)自不同場(chǎng)景不同類別的目標(biāo)都進(jìn)行學(xué)習(xí)和辨別,以豐富其“知識(shí)儲(chǔ)備”,并因此不得不引入更多的神經(jīng)元和網(wǎng)絡(luò)連接。
而在預(yù)測(cè)階段,我們的需求往往集中于個(gè)體圖像的識(shí)別,而應(yīng)對(duì)這樣相對(duì)單一的場(chǎng)景和目標(biāo),往往不需要我們使出全部的“看家本領(lǐng)”,只需要使用一部分相關(guān)知識(shí)針對(duì)性地去解決就可以了。
對(duì)于深度神經(jīng)網(wǎng)絡(luò)模型,參數(shù),或者說(shuō)神經(jīng)元之間的連接,就是它的“知識(shí)”,而針對(duì)不同的數(shù)據(jù)對(duì)網(wǎng)絡(luò)連接進(jìn)行選擇, 就可以動(dòng)態(tài)地調(diào)整網(wǎng)絡(luò)的計(jì)算過(guò)程,對(duì)于比較容易辨認(rèn)的圖像進(jìn)行較少的編碼和計(jì)算,而對(duì)于比較難以辨認(rèn)的圖像進(jìn)行較多的編碼和計(jì)算,從而提高網(wǎng)絡(luò)預(yù)測(cè)的整體效率。
本文介紹的這兩篇文章都是基于這樣的出發(fā)點(diǎn),而它們的關(guān)注點(diǎn)又各自不同。
“Runtime” 一文主要關(guān)注于減少網(wǎng)絡(luò)中卷積層的channel數(shù)量,如下圖所示:
為了簡(jiǎn)化模型,他們將網(wǎng)絡(luò)中每一個(gè)卷積層的卷積核分為k組,根據(jù)網(wǎng)絡(luò)各前層的輸出特征決定在本層中使用的卷積核數(shù)量m(1≤m≤k),并僅使用前m組卷積核參與運(yùn)算,從而通過(guò)減小m來(lái)削減層與層之間的連接,達(dá)到channel pruning的效果。
而 “SkipNet”一文則主要關(guān)注網(wǎng)絡(luò)中l(wèi)ayer的數(shù)量,其主要思想如下圖所示:
他們?yōu)榫W(wǎng)絡(luò)中的每一個(gè)層(或每一組層)學(xué)習(xí)一個(gè)“門”,并基于網(wǎng)絡(luò)各前層的輸出特征進(jìn)行判斷,是將前一層輸出的特征圖輸入本層進(jìn)行計(jì)算還是直接越過(guò)本層將其送入后續(xù)網(wǎng)絡(luò),從而通過(guò)“skip”掉盡可能多的層來(lái)實(shí)現(xiàn)加速的目的。
從直觀上來(lái)講,這兩篇文章分別從動(dòng)態(tài)削減模型的“寬度”和“深度”的角度,實(shí)現(xiàn)了對(duì)預(yù)測(cè)過(guò)程中網(wǎng)絡(luò)計(jì)算的約減。
那么如何實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)連接方式的動(dòng)態(tài)調(diào)整呢?
在網(wǎng)絡(luò)由淺至深的過(guò)程中,對(duì)于網(wǎng)絡(luò)中每一層連接方式的選擇(對(duì)于“Runtime” 一文是選擇該層使用的卷積核數(shù)量,而對(duì)于 “SkipNet”一文是選擇該層參與計(jì)算與否)可以看作一個(gè)序列決策過(guò)程,因此,這兩篇文章均選擇了強(qiáng)化學(xué)習(xí)的方式建模這一過(guò)程。將原始的主體CNN網(wǎng)絡(luò)作為“Environment”,學(xué)習(xí)一個(gè)額外的輕量的CNN或RNN網(wǎng)絡(luò)作為“Agent”來(lái)產(chǎn)生決策序列。其中,對(duì)于原CNN網(wǎng)絡(luò)每一層的決策,作為一個(gè)“Action”都將帶來(lái)相應(yīng)的“Reward”。
為了在最大限度地壓縮網(wǎng)絡(luò)計(jì)算的同時(shí)最大化網(wǎng)絡(luò)的分類精度,在構(gòu)建“Reward”函數(shù)的過(guò)程中,需要同時(shí)考慮兩個(gè)部分:1.對(duì)“Action”約減計(jì)算量的獎(jiǎng)勵(lì),即prune掉的channel越多或skip掉的layer越多,獲得獎(jiǎng)勵(lì)越大;2.網(wǎng)絡(luò)最終的分類預(yù)測(cè)損失,即最終分類預(yù)測(cè)的log損失越小,獲得獎(jiǎng)勵(lì)越大。由于這兩部分的梯度計(jì)算方式不同,因此在對(duì)模型目標(biāo)函數(shù)進(jìn)行優(yōu)化的過(guò)程中,會(huì)構(gòu)成一個(gè)“強(qiáng)化學(xué)習(xí)+監(jiān)督學(xué)習(xí)”的混合學(xué)習(xí)框架。
在具體的算法實(shí)現(xiàn)中,這兩篇文章對(duì)于“Reward”函數(shù)的設(shè)計(jì)和優(yōu)化策略的選擇各有不同。“Runtime”一文采取了交替更新的方式,而“SkipNet”一文則采用了混合優(yōu)化的方式,具體的細(xì)節(jié)我們就不在這里詳述了。
對(duì)于方法的效果,這兩篇文章都給出了嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)對(duì)比和可視化結(jié)果分析,大家可以根據(jù)興趣進(jìn)行更深入的閱讀和研究。而動(dòng)態(tài)網(wǎng)絡(luò)結(jié)構(gòu)的意義,可能也不止于單純的約減計(jì)算。網(wǎng)絡(luò)連接的改變實(shí)際上影響著整個(gè)特征編碼的過(guò)程,以“SkipNet”為例,對(duì)n個(gè)網(wǎng)絡(luò)層的選擇可能會(huì)帶來(lái)2^n種不同的特征編碼方式,而在訓(xùn)練這種動(dòng)態(tài)選擇策略的過(guò)程中,可能也會(huì)一定程度地解耦層與層之間的依賴關(guān)系,這也會(huì)為我們?nèi)蘸笤O(shè)計(jì)更具“自適應(yīng)性”的網(wǎng)絡(luò)結(jié)構(gòu)和研究網(wǎng)絡(luò)中信息的傳遞及融合方式帶來(lái)更多的啟發(fā)。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4787瀏覽量
101401 -
可視化
+關(guān)注
關(guān)注
1文章
1208瀏覽量
21136 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5523瀏覽量
121745
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
軍事應(yīng)用中深度學(xué)習(xí)的挑戰(zhàn)與機(jī)遇
NPU在深度學(xué)習(xí)中的應(yīng)用
GPU深度學(xué)習(xí)應(yīng)用案例
AI大模型與深度學(xué)習(xí)的關(guān)系
FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?
卡特彼勒推出“通往可持續(xù)發(fā)展之路”計(jì)劃
深度學(xué)習(xí)中的時(shí)間序列分類方法
深度學(xué)習(xí)中的無(wú)監(jiān)督學(xué)習(xí)方法綜述
深度學(xué)習(xí)與nlp的區(qū)別在哪
深度學(xué)習(xí)常用的Python庫(kù)
TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇
深度學(xué)習(xí)模型訓(xùn)練過(guò)程詳解
深度學(xué)習(xí)的模型優(yōu)化與調(diào)試方法
深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對(duì)比
深度踐行“IaaS on DPU”理念,中科馭數(shù)正式發(fā)布“馭云”高性能云異構(gòu)算力解決方案!

評(píng)論