Introduction
- Binary Neural Networks as a general-propose compute paradigm for on-device computer vision
- 二值网络提升的瓶颈在于速度精度权衡(SAT)和通用性(generality)。
- 二值化神经网络不需要超过8位网络的精度,只需要匹配精度。优势在于功耗和速度。
- 用BOPS来表示推理速度太过简单。
- 二值化网络缺乏对其他视觉任务的通用性。
本文工作
- 扩大ResNet block的通道数,增加辅助参数。
- 在推理的过程中进行等价转化,将辅助参数吸收。
- 不需要参数调整就可以适用于大多数视觉任务。
相关工作
过去的工作主要分为两个方向:
- 优化量化算法
- 设计网络结构
本文主要注重于两个方面: - 分类之外的其他任务
- BNN推理框架,(daBNN,Larq,Bolt)
- BNN评价指标
本文方法BiNeal Net
QAT和过参数化(Over-Parameterization)
Weight过参数化
QAT过程使用tanh函数,加入辅助参数α和λ。α可以选择不同的尺度,类似于XNOR-Net++,维度不同,量化的粒度也不同。训练中不固定α和λ,进行学习。在推理时将这两个参数与其他参数融合。
Activation过参数化
τ,b0,b1,k是辅助参数,前三个是通道维度per-channel,k是标量,可以重塑activation的分布,帮助训练。前传过程中,将激活截断在[-1,1],反传的过程中使用sigmoid。使用STE拟合梯度。
参数融合推理
高效结构设计
- 二值化卷积,扩大输入输出通道数,缩放因子m,实验中设置为2;
- 无论是否下采样,shortcut都有卷积;
- 元素加法的输入用4-bit表示,求和结果再转换为1-bit。
本文设计的block的优点:
- 卷积的输入输出都是1-bit,不需要精度转换;
- 不包含PReLU,Sign和其他非线性操作;
- shortcut的输入输出都是1-bit,而不是实值。