二值网络--Bi-Real Net: Enhancing the Performance of 1-bit CNNs

Bi-Real Net: Enhancing the Performance of 1-bit CNNs With Improved Representational Capability and Advanced Training Algorithm
ECCV2018
https://github.com/liuzechun/Bi-Real-net

本文在 借鉴残差网络的 shortcut思想,将其应用到 XNOR-Net 的网络结构中

3 Methodology
3.1 Standard 1-bit CNNs and Its Representational Capability
1-bit CNN 网络主要指 在 CNN网络中间的卷积层中 权重参数和响应值都是二值的。二值化是通过 sign 函数完成的。
在这里插入图片描述
ar and wr indicate the real activation and the real weight
real activation 实数值响应存在于 1-bit CNN 中的训练和推理阶段,因为 卷积和 batch normalization(如果使用的话)。图2显示给定一个 二值 响应图和 一个二值的卷积权重核,则输出的响应是位于正负9的一个奇数。如果batch normalization 使用了,那么整数响应将被映射为实数。在训练阶段实数权重被用于更新二值权重。

和32位的权重参数表示的实数CNN模型相比较,1-bit CNN网络模型大小减少了 32倍多。更重要的是,因为响应也是二值的,所以卷积操作可以通过位运算 XNOR操作和一个 bit-count operation。实数CNN模型中的卷积操作是通过实数乘法完成的。所以 1-bit CNN模型计算量减少了 近 64倍。

但是二值网络的精度下降的比较多,尤其在大型数据库上如 ImageNet。我们认为这主要是因为 二值网络的表征能力较差 low representational capacity。实数可以表示更多的 possible configurations,而二值网络相比于实数网络能够表示的 configurations 要少很多。

3.2 Bi-Real Net Model and Its Representational Capability
这里我们 在使用二值化符号函数之前 使用一个简单的 shortcut 来保留 实数响应 real activations,这样可以增加 1-bit CNN的 表征能力 representational capability

在这里插入图片描述
We denote R(x) as the representational capability of x

因为实数响应和二值响应都被保留,所以我们称这个模型为 Bi-Real net
As both real and binary activations are kept, we call the proposed model as Bi-Real net

因为这个简单的 identity shortcut,1-bit CNN 的表征能力得到显著提升,
The representational capability of each block in the 1-bit CNN is significantly enhanced due to the simple identity shortcut

额外增加的计算量很少。

3.3 Training Bi-Real Net

因为 activations 和 weight parameters 都是二值的,连续函数优化方法如 stochastic gradient descent(SGD) 不能被直接用于训练 1-bit CNN。主要存在两个问题:1)在 activations 上如何计算符号函数的梯度,因为其 non-differentiable;2)二值权重的损失函数梯度因为太小导致难以改变 权重的符号。对于问题1,文献【7】提出使用 piecewise linear function 的梯度来近似 gradient of the sign function on activations。对于问题2,文献【7】使用 real-valued weights 来进行权重更新计算。这里我们提出一个新的训练算法和一个新的初始化方法
在这里插入图片描述
Approximation to the derivative of the sign function with respect to activations 关于响应的符号函数导数的近似
在这里插入图片描述
这里我们使用一个 piecewise polynomial function 来代替文献【7】中的 clip function 近似估计 derivative of the sign function
在这里插入图片描述

Magnitude-aware gradient with respect to weights
这里我们介绍如何更新二值权重参数。
标准的梯度下降算法不能被直接应用,因为梯度值太小,不能改变二值权重。为了解决这个问题,文献【7】在训练阶段引入一个实数权重矩阵和一个符号函数,那么对这个实数权重矩阵进行二值化就可以得到二值权重参数矩阵。在 backward pass 时,实数参数矩阵就可以通过 梯度下降方法进行更新。
在文献【7】的梯度更新计算中,梯度只和实数参数矩阵的符号相关,和实数参数矩阵的幅值无关。 基于这个观察,我们提出一个 magnitude-aware function 来代替 上面的 符号函数 sign function。这样梯度和实数参数矩阵的符号和幅值都相关。

Initialization 初始化方法
文献【14】中 1-bit CNNs 的初始值 由 在 ImageNet 预训练的实数网络参数得到。但是 ReLU 的影响是非负的,但是符号函数取值 正负1。因为这个差异,使用 ReLU 的实数CNN 可能不适合用于 1-bit CNNs 的初始化,所以我们我们使用一个 clip(−1,x,1) 代替 ReLU 来预训练实数 CNN 网络模型,因为 clip function 的响应比 ReLU 更接近 符号函数的响应。这个有效性在实验中也得到验证。

最后如果将 Ensemble 和 Bi-Real Net 结合起来,不知道最后的精度是多少?

11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值