來自德國哈索普拉特納研究院 (Hasso Plattner Institute) 的研究者近日發(fā)布論文,,介紹了他們提出的訓(xùn)練二值神經(jīng)網(wǎng)絡(luò)新方法,。該方法不使用以往研究通過全精度模型得到的先驗知識和復(fù)雜訓(xùn)練策略,,也能實現(xiàn)目前準(zhǔn)確率最佳的二值神經(jīng)網(wǎng)絡(luò)。
引言
現(xiàn)在,,日常生活中許多工作的自動化處理已取得重要的研究進展──從家用掃地機器人到工業(yè)生產(chǎn)線機器人,,許多工作已經(jīng)實現(xiàn)高度自動化。其他技術(shù)(如自動駕駛汽車)目前正處于發(fā)展過程中,,并且強烈依賴于機器學(xué)習(xí)解決方案,。智能手機上采用深度學(xué)習(xí)技術(shù)處理各種任務(wù)的 APP 數(shù)量一直保持快速增長,且未來仍將繼續(xù)增長,。所有這些設(shè)備的算力有限,,通常要努力最小化能耗,,但卻有許多機器學(xué)習(xí)的應(yīng)用場景,。
以全自動駕駛汽車為例,保證實時圖像處理同時達到高精度是系統(tǒng)關(guān)鍵,。此外,,由于該模式下很難保證穩(wěn)定的低延遲網(wǎng)絡(luò)連接,因此圖像處理系統(tǒng)需配置于汽車內(nèi)部,。該配置要求雖然會限制可支配計算力及內(nèi)存,,但也將從低能耗中獲取收益。最有希望解決上述問題的技術(shù)之一就是二值神經(jīng)網(wǎng)絡(luò)(Binary Neural Network,,BNN),。在 BNN 中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)中常用的全精度權(quán)重被替換成二值權(quán)重,。這使得存儲空間理論上可壓縮 32 倍,,使 CPU only 架構(gòu)能夠完成更高效的推斷。
本文的研究成果概括如下:
本文提出了一種訓(xùn)練二值模型的簡單策略,,不需要使用預(yù)訓(xùn)練全精度模型,。
實驗表明,該策略并未得益于其他常用方法(如 scaling factor 或自定義梯度計算),。
本文表明快捷連接(shortcut connection)數(shù)的增加能夠顯著改善 BNN 的分類準(zhǔn)確率,,并介紹了一種新方法:基于密集快捷連接(dense shortcut connection)創(chuàng)建有效的二值模型。
針對不同模型架構(gòu)及規(guī)模,,本文提出的方法較其他方法達到當(dāng)前最優(yōu)的準(zhǔn)確率,。
網(wǎng)絡(luò)架構(gòu)
在研究模型架構(gòu)前,,我們必須考慮 BNN 的主要缺點:首先,相較于全精度網(wǎng)絡(luò),,BNN 的信息密度理論上是前者的 1/32,。研究表明,32 位與 8 位網(wǎng)絡(luò)之間的差別不大,,且 8 位網(wǎng)絡(luò)的準(zhǔn)確率水平幾乎與全精度網(wǎng)絡(luò)相同 [3],。然而,bit-width 降低到 4 位甚至 1 位(二進制)時,,準(zhǔn)確率會明顯下降 [8, 20],。因此,需要借助其他技術(shù)降低精度損失,,例如增加通過網(wǎng)絡(luò)的信息流,。我們認(rèn)為主要有三種方法能夠幫助保存信息,且無需擔(dān)心網(wǎng)絡(luò)二值化:
方法一:二值模型應(yīng)該盡可能在網(wǎng)絡(luò)中多使用快捷連接,,使靠后的網(wǎng)絡(luò)層能夠使用靠前的網(wǎng)絡(luò)層所獲得的信息,,不用擔(dān)心二值化引起的信息損失。殘差網(wǎng)絡(luò)(Residual Network)[4] 與密集連接網(wǎng)絡(luò)(Densely Connected Network)[7] 的全精度模型架構(gòu)都使用了類似快捷連接,。此外,,網(wǎng)絡(luò)層之間連接數(shù)的增加會改善模型性能,尤其是二值網(wǎng)絡(luò),。
圖 2:不同網(wǎng)絡(luò)架構(gòu)的單個構(gòu)造塊(加粗黑線的長度代表濾波器數(shù)量),。(a)帶有瓶頸層架構(gòu)的初始 ResNet 設(shè)計。少量濾波器會降低 BNN 的信息量,。(b)無瓶頸層架構(gòu)的 ResNet 設(shè)計,。濾波器數(shù)量增加,但這時卷積層由 3 變?yōu)?2,。(c)添加額外快捷連接的 ResNet 架構(gòu) [15],。(d)初始 DenseNet 設(shè)計,第二層卷積操作中出現(xiàn)瓶頸層,。(e)無瓶頸層架構(gòu)的 DenseNet 設(shè)計,,兩次卷積操作變成一次 3 × 3 卷積操作。(f)本文提出的 DenseNet 設(shè)計,,具備 N 個濾波器的卷積操作被替換成兩個層,,每一層各使用 N/2 個濾波器。
方法二:與方法一思路相同,,包含瓶頸層的網(wǎng)絡(luò)架構(gòu)始終是一項亟待解決的挑戰(zhàn),。瓶頸層架構(gòu)減少了濾波器數(shù)量,顯著降低了網(wǎng)絡(luò)層間的信息通路,最終使得 BNN 的信息流變少,。因此,,我們假定消除瓶頸層或增加瓶頸層的濾波器數(shù)量都能使 BNN 獲取最好的結(jié)果。
方法三:將二值網(wǎng)絡(luò)中的某些核心層替換為全精度層,,以保存信息(提高模型準(zhǔn)確率),。原因如下:如果網(wǎng)絡(luò)層完成二值化,取消快捷連接,,則(二值化產(chǎn)生的)信息損失無法在后續(xù)的網(wǎng)絡(luò)層中復(fù)原,,這將影響第一層(卷積層)和最后一層(全連接層,輸出神經(jīng)元數(shù)與類別數(shù)相同),。第一層為整個網(wǎng)絡(luò)產(chǎn)生初始信息,,最后一層使用最終信息進行預(yù)測。因此,,我們在第一層使用全精度層,,最后一層使用全網(wǎng)絡(luò)架構(gòu)。關(guān)于該決策,,我們采用了之前研究 [16,20] 的成果,,其通過實驗驗證了第一層和最后一層的二值化將大幅降低準(zhǔn)確率,且節(jié)省的內(nèi)存及計算資源非常有限,。深度網(wǎng)絡(luò)的另一個關(guān)鍵部分是下采樣卷積,,其將網(wǎng)絡(luò)先前收集的所有信息轉(zhuǎn)化為規(guī)模較小且具備更多通道的特征圖(該卷積通常步幅為 2,輸出通道數(shù)兩倍于輸入通道數(shù)),。下采樣過程中損失的的任何信息將不可恢復(fù),。因此,即便會增加模型規(guī)模和運算次數(shù),,下采樣層是否應(yīng)該被替換為全精度層始終需要仔細(xì)權(quán)衡。
圖 3:ResNet 與 DenseNet 的下采樣層,。加粗黑線表示下采樣層,,它可被替換為全精度層。如果在 DenseNet 中使用全精度下采樣層,,則需要加大減少通道數(shù)量的縮減率(虛線表示沒有減少的通道數(shù)量),。
表 1:在 MNIST 和 CIFAR-10 數(shù)據(jù)集上,本文提出的二值模型的性能與 Yang 等人 [18] 結(jié)果的對比,。
表 7:在 ImageNet 數(shù)據(jù)集上,,本文方法與當(dāng)前最優(yōu)二值模型的對比。所有方法都在下采樣部分的卷積層中使用了全精度權(quán)重,。
論文:Training Competitive Binary Neural Networks from Scratch
摘要:卷積神經(jīng)網(wǎng)絡(luò)已在不同應(yīng)用領(lǐng)域獲得令人矚目的成就?,F(xiàn)有文獻已提出許多在移動端和嵌入式設(shè)備中應(yīng)用 CNN 模型的方法。針對計算力低的設(shè)備,二值神經(jīng)網(wǎng)絡(luò)是一項特別有前景的技術(shù),。然而,,從零開始訓(xùn)練準(zhǔn)確的二值模型仍是一項挑戰(zhàn)。之前的研究工作通常使用全精度模型產(chǎn)生的先驗知識與復(fù)雜的訓(xùn)練策略,。本研究關(guān)注如何在不使用類似先驗知識與復(fù)雜訓(xùn)練策略的前提下,,改善二值神經(jīng)網(wǎng)絡(luò)的性能。實驗表明,,在標(biāo)準(zhǔn)基準(zhǔn)數(shù)據(jù)集上,,本文提出的方法能達到當(dāng)前最優(yōu)水平。此外,,據(jù)我們所知,,我們首次成功地將密集連接網(wǎng)絡(luò)架構(gòu)應(yīng)用于二值網(wǎng)絡(luò),提高了當(dāng)前最優(yōu)的性能,。