文章目錄
文章鏈接
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。具體做法爲,對於一個實值權重,先減去自身的均值,使得實值權重是中心對稱的:
這個過程稱爲balanced weight normalization。然後量化balance之後的:
這一套下來就叫做balanced weight quantization。具體的圖示如下圖
Reconstructing Information Flow with Gated Residual
對激活值的量化方法,如下所示:
其中,表示當時,它爲1,否則爲0。
由於這種量化方法丟失了很多的信息,作者提出了一個新的module,叫做gated residual,在前向過程中來逐通道地重構信息。Gated residual employs the floating-point activations to reduce quantization error and recalibrate features。具體做法爲:使用一個類似ResNet中的shortcut,只不過將shortcut替換成一個layer,其權重爲,這個權重是爲了學習浮點的輸入特徵圖的channel級的attention information,這個層對於第個輸入通道的操作爲:yo由於加上了浮點的激活值,輸出特徵出的表達能力得到了增強。Gated module的輸出爲:其中表示主路的輸出,即包含activation binarization, balanced convolution 和BatchNorm的那一路。
這個Gated module帶來的好處,就類似ResNet裏面的shortcut的好處。具體可參見源論文。
Experiment
在實驗的時候,作者沒有量化第一層和最後一層,也沒有量化downsample層。在分類和檢測上均進行了實驗,SSD中只量化了backbone,結果如下表。
Summary
個人感覺文章的實現不會很難,gated layer的作者肯定是可以提精度的,但是這就說明網絡的參數並沒有全部量化掉,消融實驗是在CIFAR上面做的,不知道在ImageNet上的效果如何,只能說可以借鑑參考一下。首尾層全都量化具體效果需要實踐才能驗證。不過思路還是可以借鑑一下滴~