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