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