二值网络--XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks
ECCV2016
http://allenai.org/plato/xnornet

本文介绍了两种二值网络: Binary-Weight-Networks 和 XNOR-Networks,Binary-Weight-Networks 只对滤波器 filters 进行二值化,XNOR-Networks 同时对 滤波器 和滤波器的输入进行二值化,这里的滤波器输入就是其他文献中说的 响应 activation

3 Binary Convolutional Neural Network
3.1 Binary-Weight-Networks
对于一个 real-value weight filter W,我们用一个 binary filter B 和 scaling factor α 来近似:W ≈ αB,那么一个卷积运算就可以被近似表示为:I ∗ W ≈ (I ⊕ B)α ,⊕ indicates a convolution without any multiplication

Estimating binary weights: 通过最优化函数公式推导得到的结论是:
1)B∗ = sign(W),二值滤波器 B 就是通过符号函数得到的,W 对应的值大于0 , B 对应的值为 +1, W 对应的值小于0 ,
B 对应的值为 -1, taking the sign of weight values
2)α 的最优值为 滤波器绝对值的均值,optimal scaling factor is the average of absolute weight values

Training Binary-Weights-Networks:
CNN网络训练的每个迭代步骤包括三个部分: forward pass, backward pass and parameters update
我们只在 forward pass 和 backward propagation 进行 权重参数 weights 的二值化。在计算符号函数的梯度时,我们采用文献【11】策略,因为符号函数基本不可导,所以采用在+1/-1 区间线性化近似表示,这样在 +1/-1 区间 导数为 1. 对于参数的跟新,这里我们使用 高精度的实数权重参数来进行。

在这里插入图片描述
3.2 XNOR-Networks
一个卷积包括重复的 shift operation 平移 和 dot product 点积。dot product 点积 里面主要是乘法算法,如果我们将这个 dot product 点积 可以用 二值操作表示,那么整个卷积就可以用 XNOR-Bitcounting operations 位运算,不需要乘法了。

假定 the dot product between X,W,X ≈ βH W≈αB, where H,B 为二值参数矩阵,令 Y=XW, C=HB,二值化近似问题变为一个最优化问题: argmin||Y − γC||
最优解为: C∗ = sign(Y) = sign(X) .* sign(W) = (H∗) .* (B∗)
.* indicates element-wise product
γ 的最优值 为 X 和 W 的绝对值均值 乘积

Binary Convolution: 在做卷积时,我们在滑动滤波器时,需要计算滤波器对应的 I 的近似二值参数,相邻的 I 存在区域重叠,所以存在大量的冗余计算,这里我们采用积分图的思想,实现将所有需要计算的 输入二值参数 一次性计算后,后面就不需要重复计算,直接查表使用

在这里插入图片描述

传统的一个 CNN 经典模块包括四个部分,按照以下顺序进行:1-Convolutional, 2-Batch Normalization, 3-Activation and 4-Pooling。 这里为了降低二值带来的信息丢失,我们调整了一下顺序结构:1-Batch Normalization,2-BinActivation,3-BinConv,4-Pool。

11

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值