胡金水 劉辰宇 吳航
摘要:神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)在深度學(xué)習(xí)任務(wù)中至關(guān)重要,自動(dòng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)算法的思想是在特定實(shí)際任務(wù)下,減少人工參與,直接搜索出最優(yōu)模型結(jié)構(gòu)。本文提出一個(gè)基于ShuffleNet的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法,該算法將計(jì)算量限制嵌入進(jìn)演化搜索過程,自適應(yīng)地調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)中的通道劃分比例和通道混淆策略。在實(shí)際任務(wù)應(yīng)用所需的計(jì)算量限制下,可搜索出最優(yōu)模型結(jié)構(gòu),并具備高效前向推理效率。
關(guān)鍵詞:前向推理;結(jié)構(gòu)搜索
引言
深度學(xué)習(xí)近年成為人了智能領(lǐng)域廣泛研究的一個(gè)熱門技術(shù)。深度學(xué)習(xí)可以理解成一個(gè)數(shù)據(jù)驅(qū)動(dòng)的端到端的特征表示學(xué)習(xí)框架,這個(gè)框架中重要的構(gòu)成是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。目前研究者提出了殘差網(wǎng)絡(luò)等一系列重要的網(wǎng)絡(luò)結(jié)構(gòu),提高了圖像識(shí)別、自然語(yǔ)言處理領(lǐng)域等眾多任務(wù)的效果,但是面向移動(dòng)端的實(shí)際應(yīng)用,在保證識(shí)別率下降可控的前提下,如何提升神經(jīng)網(wǎng)絡(luò)的前向推理效率仍然是不可回避的難題。最近一些前向推理輕量級(jí)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相繼提出,一定程度上緩解了推理效率低的問題。通過端到端的方式來可以進(jìn)行特征表示學(xué)習(xí),是否可以設(shè)計(jì)一個(gè)算法,針對(duì)特定任務(wù),通過端到端的方式直接給出模型的結(jié)構(gòu)呢?
本文先簡(jiǎn)單介紹神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的最新進(jìn)展,接著提出一個(gè)輕量級(jí)的自動(dòng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)算法,能根據(jù)實(shí)際任務(wù)的硬件算力,自適應(yīng)地調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)中通道劃分比例和通道混淆策略。
一、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索概述
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索通過構(gòu)建一個(gè)RNN作為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)采桿器,利用強(qiáng)化學(xué)習(xí)算法將采桿所得的神經(jīng)網(wǎng)絡(luò)的性能表現(xiàn)作為反饋去優(yōu)化該采桿器,使采樣器采桿所得的網(wǎng)絡(luò)性能達(dá)到最優(yōu)。但由于搜索空間龐大,每次采桿的子網(wǎng)絡(luò)都需要從頭進(jìn)行訓(xùn)練,需用450塊GPU訓(xùn)練長(zhǎng)達(dá)數(shù)月,難以實(shí)用。為減少搜索耗時(shí),有論文中改為搜索子結(jié)構(gòu),而完整網(wǎng)絡(luò)結(jié)構(gòu)則由這兩種網(wǎng)絡(luò)子結(jié)構(gòu)雄疊而成。由于這種模塊結(jié)構(gòu)搜索空間相對(duì)較小,搜索耗時(shí)降低了7倍。更有研究組通過構(gòu)建超網(wǎng)絡(luò)并引入權(quán)車共享的思想,在搜索效果略有下降的情況下僅用單塊GPU在一天內(nèi)即可實(shí)現(xiàn)。
此后,出于效率和資源消耗的考慮,基超網(wǎng)絡(luò)的搜索方案逐漸成為主流。由于強(qiáng)化學(xué)習(xí)算法搜索過程收斂較慢,性能不穩(wěn)定,業(yè)界又提出了One-shot NAS算法和DARTS算法。One-shot NAS算法將訓(xùn)練與搜索分開進(jìn)行,通過在超網(wǎng)絡(luò)里隨機(jī)采桿子網(wǎng)絡(luò)進(jìn)行超網(wǎng)絡(luò)訓(xùn)練,并對(duì)訓(xùn)好的超網(wǎng)絡(luò)通過EA算法進(jìn)行子網(wǎng)絡(luò)搜索,從而獲得最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)。而DARTS方案最早由CMU團(tuán)隊(duì)提出,通過松弛超網(wǎng)絡(luò)的所有子網(wǎng)絡(luò),利用超參進(jìn)行加權(quán)組合,通過梯度下降算法對(duì)該超參進(jìn)行優(yōu)化。最后,根據(jù)優(yōu)化結(jié)果即可獲得最優(yōu)子網(wǎng)絡(luò)。相比于另兩種方案,這種基于梯度優(yōu)化的方案效率極高,極大地減小了搜索耗時(shí)。
另一方面,采用網(wǎng)絡(luò)模塊結(jié)構(gòu)搜索空間,這桿搜索出來的網(wǎng)絡(luò)結(jié)構(gòu)效果較好,但由于網(wǎng)絡(luò)模塊內(nèi)部較為碎片化,難以實(shí)現(xiàn)并行計(jì)算,實(shí)際部署難度大,效率低。如果采用的是全局結(jié)構(gòu)搜索空間,搜索網(wǎng)絡(luò)空間包含深度寬度等模型結(jié)構(gòu)的大部分超參,這樣保證了獲得的網(wǎng)絡(luò)模塊結(jié)構(gòu)相對(duì)規(guī)整,使得網(wǎng)絡(luò)結(jié)構(gòu)部署相對(duì)簡(jiǎn)單。
二、基于ShuffleNet的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索
(一)ShumeNet簡(jiǎn)介
與殘差網(wǎng)絡(luò)等不同,ShuffleNet系列的模型通過引入有規(guī)則的通道打亂來增強(qiáng)輕量級(jí)Depthwise(DW)卷積后特征通道上的信息混疊,同時(shí)ShuKleNetV2又額外通過通道均分和拼接的操作移除了網(wǎng)絡(luò)中的碎片元組操作,使模型的效率和效果得到了進(jìn)一步提升。一個(gè)基本的ShuKleNetV2塊結(jié)構(gòu)如下圖1(a)所示。
通過分析,我們發(fā)現(xiàn)ShuKleNetV2的通道切分與拼接實(shí)際上是在不斷地進(jìn)行特征的整合與復(fù)用,且隨著通道上的不斷拆分與組合,通道上特征的實(shí)際深度是現(xiàn)出一種固定分布的特性。進(jìn)一步,當(dāng)我們不是考慮通道均分,而是考慮通用性更強(qiáng)的比例切分時(shí),特征通道的實(shí)際深度仍然具有固定分布的特性。
考慮每次切分出比例為p的通道數(shù),當(dāng)圖1(a)中的ConvOP為DW卷積時(shí),網(wǎng)絡(luò)第K層實(shí)際深度為j的通道數(shù)目占比為:
實(shí)際深度為i的通道數(shù)目占比為:
(二)搜索算法描述
根據(jù)式(3-1)、式(3-2)可知,在每層網(wǎng)絡(luò)切分比例固定的時(shí)候,最終特征的復(fù)用和組合是滿是與通道切分比例相關(guān)的固定分布的。如果我們對(duì)每層通道切分的比例進(jìn)行針對(duì)性建模優(yōu)化,就可以對(duì)不同任務(wù)、不同數(shù)據(jù)、不同計(jì)算量需求去靈活自動(dòng)搜索出該場(chǎng)景可用的最優(yōu)模型,同時(shí)滿是所得模型的高效推理特性。
本文使用遺傳算法對(duì)自動(dòng)通道切分結(jié)構(gòu)進(jìn)行了演化搜索,且將計(jì)算量限制嵌入進(jìn)演化過程,保證了計(jì)算資源限制下的最優(yōu)搜索。一個(gè)搜索空間和搜索結(jié)果的例子如圖1(b)、圖2所示,紅色代表著當(dāng)前層所使用的通道,藍(lán)色代表復(fù)用的通道,通過特征的不斷組合,算法可搜索㈩最優(yōu)模型結(jié)構(gòu),同時(shí)具備高效前向推理效率。
三、結(jié)論
本文提出了一個(gè)基于輕量級(jí)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法。該算法基于遺傳算法對(duì)通道劃分比例和通道混淆策略進(jìn)行了演化搜索,將計(jì)算量限制嵌入進(jìn)演化過程,解決了受限計(jì)算資源下的神經(jīng)網(wǎng)絡(luò)大規(guī)模靈活應(yīng)用問題。