这项工作由卡内基梅隆大学,香港科技大学合作完成,目的是通过网络自动化搜索,找到在已知网络的权重(weight)和激活值(activation)都为二值化{-1,+1}的情况下,搜索最能充分利用二值化卷机层的表达能力的网络结构。该工作是第一篇在depth-wise的卷积中通过搜索group conv来实现网络二值化的算法。实验结果表明,本方法能取得和接近XNOR-Net 的精度,而所需的FLOPs仅约为XNOR-Net 的1/5。借助于Matrix层面的参数共享机制,整个搜索过程只需要~30 GPU hours.
地址:https://arxiv.org/pdf/2005.06305.pdf
深度卷积神经网络(CNN)量化是一种常用的网络压缩方法,而网络二值化是极端情况下的量化,即每个 weight 和 activation 仅用-1 或+1 表示。一方面,在这种极端压缩的情况下,网络的表达能力会受到非常大的限制。另一方面,近来越来越多的学者以及工程师更加关心如何压缩哪些原本就经过了紧凑型网络设计的小网络,如MobileNet。这就给网络量化提出了新的挑战。
为了应对这一挑战,本文从MobileNet网络框架出发,根据二值化网络特性,搜索最佳网络结构。
在分析二值化网络的表达能力的时候我们发现,当二值化卷机层是depth-wise 卷积时,输出的feature map中的激活值的取值范围将局限于(-3x3,3x3)之间,由此也导致了binarize MobileNet 难以收敛。而如果把MobileNet中的depth-wise 卷积替换成全卷积,则会导致參数量增加,从而降低二值化网络的高压缩率。
为了取得压缩率与网络精度之间的权衡,我们认为,每一层卷积对应的feature的抽象化程度不同,因此,对于表达能力的要求也不一样。基于这个假设,我们提出用网络自动搜索(NAS)的方法搜索每一层的组卷积的最优group数,作为depth-wise 卷积和全卷积之间的trade-off.
我们的框架基于one-shot architecture search,包含三步:
第一步:训练一个参数共享网络
第二步:用遗传算法在参数共享网络中搜索出最优的每一层组卷积的 group 数目
第三步:训练搜索得到的最优网络。
特别的,在训练参数共享网络时,我们为组卷积搜索设计了matrix-level 的参数共享。如图所示,在一个输入6通道输出6通道的卷机层中,可以选取的group数目为1,2,3,6。group=1时为全卷积,训练参数为存储的所有weights。当group=6时为depth-wise卷积,训练参数为对角线上的所选weights。为了方便直观化表示,下图的每一个cell代表了一个3x3的卷积核。
实验结果
从表中的比较可以看到, 由本文搜索算法得到的网络结构可以取得超过其他 State-of-the-art 二值化方法的精度
并且所需要的计算资源少于之前众多BNN方法。
最后,HKUST Vision and System Design Lab正在招有硬件经验的同学来当博士后,由Tim CHENG 老师直接指导。如果你曾在DAC,ICCAD或同等硬件会议/期刊上发表过一作论文,欢迎发送简历到zliubq@connect.ust.hk