[京哥读论文]之From Hashing to CNNs: Training Binary Weight Networks via Hashing

Abstract

本文在二值化权重(BWN)方面做出了创新,发表在AAAI2018上,作者是自动化所程建团队。本文的主要贡献是提出了一个新的训练BWN的方法,揭示了哈希与BW(Binary Weights)之间的关联,表明训练BWN的方法在本质上可以当做一个哈希问题。基于这个方法,本文还提出了一种交替更新的方法来有效的学习hash codes而不是直接学习Weights。在小数据和大数据集上表现的比之前的方法要好。

主要贡献

  • 本文揭示了保持内积哈希与BWN之间的紧密关联。
  • 为了减轻用哈希方法所带来的loss,本文将binary codes乘以了一个scaling factor并用交替优化的策略来更新binary codes以及factor。
  • 在Cifar10,Cifar100以及ImageNet上实验,本文提出的BWNH方法比之前方法要好。

Inner-product preserving hashing

保留内积哈希方法是沈老师团队在15年ICCV上提出的,方法是给定两个点集XRS×MX\in \mathbb R^{S\times M}WRS×NW\in \mathbb R^{S\times N}XiRS×1X_i\in \mathbb R^{S\times 1}以及WiRS×1W_i\in \mathbb R^{S\times 1}分别代表向量XXWW的第ii个点,记作向量XXWW的内积相似性(inner-product similarity)为SRM×NS\in \mathbb R^{M\times N}。则目标函数变为:
minSh(X)Tg(W)F2(1)min\quad \Vert S-h(X)^Tg(W)\Vert^2_F \quad (1)
h()h(\cdot)g()g(\cdot)表示的是向量XXWW的哈希函数。

哈希与BWN之间的关联

假设有一个L层pre-trained CNN model,XRS×MX\in \mathbb R^{S\times M}是第LL层的input feature map.记作第LL层的权重的真实值为WRS×NW\in \mathbb R^{S\times N},目标是得到二进制的weighs B{1,+1}S×NB\in \{-1,+1\}^{S\times N},天真的想法可能就是直接优化二者的差:
minL(B)=WBF2s.t.  B{+1,1}S×N(2)min \quad L(B)=\Vert W-B\Vert^2_F \quad s.t.\;B\in\{+1,-1\}^{S\times N} \quad (2)
优化上式的解就是B=sign(W)B=sign(W).直接来优化WW会导致accuracy的严重下降。这时我们可以优化内积相似性的quantiztion error:
minL(B)=XTWXTBF2s.t.  B{+1,1}S×N(3)min\quad L(B)=\Vert X^TW-X^TB\Vert^2_F \quad s.t. \; B\in\{+1,-1\}^{S\times N} \quad (3)
我们可以发现公式(3)(3)和公式(1)(1)很相似,令S=XTW,B=g(W),h(X)=XS=X^TW,B=g(W),h(X)=X,这时两个等式是一致的。换句话说,训练一个二值化网络(BWN)本质上就转化称为了一个哈希问题。由于h(X)=Xh(X)=X是一个确定的公式,所以不用学习XX的哈希codes。这可以用在哈希空间的ACD(asmmetric distances calculation)方法来实现。
其实公式(3)(3)有时候仍然会导致accuracy的下降(原因?)。本文采用了在每个hashing codes BiB_i上乘以一个scaling factor:g(W)=BAg(W)=BAAA是一个对角矩阵,αi=Aii\alpha_i=A_{ii}对应BiB_i的scaling因子,这样目标函数就变为:
minL(A,B)=SXTBAF2=iNSiαiXTBiF2(5)min\quad L(A,B)=\Vert S-X^TBA\Vert_F^2=\sum_i^N\Vert S_i-\alpha_i\cdot X^TB_i\Vert_F^2\quad (5)
S=XTW,SiRM×1S=X^TW, S_i\in \mathbb R^{M\times 1}是向量SS的第ii列向量。等式(5)(5)又可以分为N个独立子问题:
minLi(ai,Bi)=SiαiXTBiF2s.t.  Bi{+1,1}S×1(6)min\quad L_i(a_i,B_i)=\Vert S_i-\alpha_i \cdot X^TB_i\Vert_F^2\quad s.t.\; B_i\in\{+1,-1\}^{S\times 1}\quad (6)
这里本文也采用交替更新的策略来求解公式(6)(6).更新BiB_i,固定αi\alpha_i;反之亦然。
首先初始化BiB_iαi\alpha_iBi=sign(Wi)B_i=sign(W_i),对于αi\alpha_i,用WiW_i的平均L1范数来初始化。
然后更新αi\alpha_i固定BiB_i,对公式(6)(6)进行展开,
minLi(αi)=const+αi2XTBiF22αiSiTXTBi(7)min L_i(\alpha_i)=const+\alpha_i^2\Vert X^TB_i\Vert_F^2-2\alpha_iS_i^TX^TB_i \quad (7)
αi\alpha_i进行求导,$\partial L_i (\alpha_i) \over \partial \alpha_i KaTeX parse error: Can't use function '$' in math mode at position 54: …X^TB_i\quad (8)$̲令其等于0,则$\alpha_…\alpha_i={S_iTXTB_i \over \Vert XTB_i\Vert_F2}\quad (9)KaTeX parse error: Can't use function '$' in math mode at position 8: **最后更新$̲B_i固定\alpha_i$*…min\quad L_i(B_i)=const+\Vert ZTB_i\Vert_F2-2Tr(B_i^Tq) \quad s.t.; B_i\in{+1,-1}^{S\times 1}\quad (10)KaTeX parse error: Can't use function '$' in math mode at position 5: 在这里$̲Z=\alpha \cdot …min\quad (B_i’^TZ’v-q_j)b\quad s.t.; b\in{+1,-1} \quad (11)KaTeX parse error: Can't use function '$' in math mode at position 10: 这样我们可以得到$̲B_i$的第$j$个元素的解:…b=sign(q_j-B_i’^TZ’v)\quad (12)$$
通过使用这种方法,通过固定BiB_i的其他S1S-1个元素,BiB_i的每一个元素都可以被更新。
这种方法理论上是收敛的,实验结果也证明算法经过很少的迭代就可以收敛,下图展示了不同CNN model的收敛情况,可以看出在很少的迭代次数下就收敛了。
这里写图片描述

Layer-wise optimization

由于本文提出的交替优化binary weight策略是一层一层优化的,这样下来量化误差会层与层累加。这是因为量化第ll层会导致第ll层的输出的量化误差,而第ll层的输出正是第l+1l+1层的输入,因此也就间接导致了第l+1l+1层的优化。
本文采用Wu等人在QCNN中提出的training shceme.假设有一个pre-trainedLL层的CNN model和一个第ll层被二值化的CNN model,记作第l+1l+1层的输入分别为Xl+1X^{l+1}以及X~l+1\widetilde{X}^{l+1}.则目标函数将变为:
min  L(A,B)=(Xl+1)TWl+1(X~l+1)TBl+1Al+1F2=Sl+1(X~l+1)TBl+1Al+1F2(13)min\;L(A,B)=\Vert(X^{l+1})^TW^{l+1}-(\widetilde{X}^{l+1})^TB^{l+1}A^{l+1}\Vert^2_F=\Vert S^{l+1}-(\widetilde{X}^{l+1})^TB^{l+1}A^{l+1}\Vert_F^2\quad (13)
目标相似性矩阵Sl+1S^{l+1}可以通过Xl+1X^{l+1}Wl+1W^{l+1}计算出来,真实相似性通过X~l+1\widetilde{X}^{l+1}和binary codesBl+1B^{l+1}所得到。因此通过这样一个层与层的training框架,quantization error可以被避免。

The While Training Scheme

这里写图片描述
这里就是量化完二值化weights,之后会有一个fine-tune的过程。

Experiments

这里写图片描述
这里写图片描述
这里写图片描述
以上分别是VGG-9,Alexnet以及ResNet-18的结果,比当前BWN方法都好。
这里写图片描述
上图表明本文提出的BWNH方法没有fine-tuning的情况下依然accuracy很高,当然fine-tuning会提高accuracy。
##The Effect of Scaling Factor
这里写图片描述
上图展示了scaling factor的作用,可以看出scaling factor非常重要,没有scaling factor网络的accuracy会下降的非常严重,而且会很快的下降到很低,本文将scaling factor融合到了BN层在前向传播的时候,这就不会带来额外的存储。还有一点就是通过上图可以发现优化完conv2会比优化conv1的accuracy高,This is because the binary weights in conv2 compensates the accuracy drop by adapting to the input featuremaps generated by binary weights in conv1.
本文只对weights进行二值化,并没有对featuremaps进行二值化,这也是一个研究点。

发布了9 篇原创文章 · 获赞 2 · 访问量 1673
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览