Balanced Binary Neural Networks With Gated Residual


文章鏈接

motivation

目前的二值化方法與全精度模型的精度差距比較大。作者認爲是因爲二值網絡中的信息在傳播的時候,很多都丟失了。爲了解決這個問題,作者提出了Balanced Binary Network with Gated Residual(BBG)

Method

Maximizing Entropy with Balanced Binary Weights

對於二值網絡引起的信息丟失的問題,作者提出maximize entropy of binary weight in the training process,即最大化訓練過程中權重的"熵"。在信息論中的“熵”,表示消除不確定因素所需要的信息量,“熵”越小,信息越確定。但是作者想要“熵”越大,就是說它表示的信息越不確定,即可能會表達出很多種信息,潛在的表達能力越高。在2020年的CVPR論文《Forward and Backward Information Retention for Accurate Binary Neural Networks》也有類似的觀點。
但是作者並不直接優化“熵”這個正則項,轉而約束二值權重的期望值爲0。具體做法爲,對於一個實值權重vRd×dv\in \mathbb{R}^{d\times d},先減去自身的均值,使得實值權重是中心對稱的:
w=v1d1(1Tv)w = v\, - \,\frac{1}{d}1(1^{T}v)
這個過程稱爲balanced weight normalization。然後量化balance之後的ww:
Forward:  wb=sign(w)×E(w)Forward:\; w^{b}\, =\, sign(w)\, \times\, E(\left | w \right |)Backward:  Lwb=LwBackward:\; \frac{\partial L}{\partial w^{b}}\, =\, \frac{\partial L}{\partial w}
這一套下來就叫做balanced weight quantization。具體的圖示如下圖
在這裏插入圖片描述

Reconstructing Information Flow with Gated Residual

對激活值的量化方法,如下所示:
Forward:  xb=round(clip(x,0,1))Forward:\; x^{b}\, =\, round(clip(x,0,1))Backward:  Lxb=LwI0<x<1Backward:\; \frac{\partial L}{\partial x^{b}}\, =\, \frac{\partial L}{\partial w} \mathbb{I}_{0< x< 1}
其中,I0<x<1\mathbb{I}_{0< x< 1}表示當0<x<10< x< 1時,它爲1,否則爲0。
由於這種量化方法丟失了很多的信息,作者提出了一個新的module,叫做gated residual,在前向過程中來逐通道地重構信息。Gated residual employs the floating-point activations to reduce quantization error and recalibrate features。具體做法爲:使用一個類似ResNet中的shortcut,只不過將shortcut替換成一個layer,其權重爲s=[s1,,sc]Rcs\, =\, [s_{1}, \cdots ,s_{c}] \in \mathbb{R}^{c},這個權重是爲了學習浮點的輸入特徵圖的channel級的attention information,這個層對於第ii個輸入通道的操作爲:r(xi,si)=sixir(\texttt{x}_{i},s_{i})=s_{i}\texttt{x}_{i}yo由於加上了浮點的激活值,輸出特徵出的表達能力得到了增強。Gated module的輸出爲:y=F(x)+r(x,s)y = F(\texttt{x})+r(\texttt{x},s)其中F(x)F(\texttt{x})表示主路的輸出,即包含activation binarization, balanced convolution 和BatchNorm的那一路。
這個Gated module帶來的好處,就類似ResNet裏面的shortcut的好處。具體可參見源論文。

Experiment

在實驗的時候,作者沒有量化第一層和最後一層,也沒有量化downsample層。在分類和檢測上均進行了實驗,SSD中只量化了backbone,結果如下表。
在這裏插入圖片描述
在這裏插入圖片描述

Summary

個人感覺文章的實現不會很難,gated layer的作者肯定是可以提精度的,但是這就說明網絡的參數並沒有全部量化掉,消融實驗是在CIFAR上面做的,不知道在ImageNet上的效果如何,只能說可以借鑑參考一下。首尾層全都量化具體效果需要實踐才能驗證。不過思路還是可以借鑑一下滴~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章