Binary Neural Networks notes

Introduction

边缘神经计算需要一些轻量级的网络,而轻量级的网络是我们进行压缩剪枝等对于网络的优化操作之后获得的。

  • Edge computing

  • Memory Computation

Methods

Binary Weight将权重从float型变为1bit

Binary Connect

Binary Weight Activation(图像特征图)

BNN, XNORnet, DOReFa-Net

只对权重进行二值化的话,feature map图像特征图依旧是float型的这样的话在运算中依旧需要进行其他运算处理,但为保证网络运行中间所添加的BatchNormBN层不能被二值化, BN层最大的作用就是可以加速学习并减少权重尺度的影响,带来一定量的正则化并提高CNN的性能,但是BN设计了很多的矩阵运算会降低运算速度。因此,DOReFa-Net论文提出了一种Shift-based Batch Normalization(SBN)层。SBN的优点是几乎不需要矩阵运算,并且不会带来性能损失。这个函数实现了在不使用乘法的情况下近似计算BN,可以提高计算效率。同样也是为了加速二值网络的训练,改进了AdaMax优化器。

Binary connect 2015

权重Wb是float类型,-4096-4096值域变化太大导致无法收敛因此会导致网络非常的稀疏。训练中取权重符号将权重在forward和backward直接进行二值化看为一个符号再进行传播。和全精度结果差距较大。

Binarized weights

From float to 1 bit

Github Theano code

BNN

主要的贡献在于它将activition也进行了二值化,优点在于它将所有的加减运算全部变成了位运算。

XNOR Net

在一定程度上消除了它相对于正负1这一段的梯度和它本身之间的梯度的差别。考虑了输入和输出两者之间量级的差距。比较了xnor和之前两种网络在两个数据集上的训练结果

BWN(binary weights)只将权重二值化

XNOR-Net(Binary weights inputs) 将权重和Features二值化

How to train Binary Network近一段时间的重点AAAI论文

Learning Rate

记录了一个float类型的权重只不过是在inference的时候把它转换成正负1。但是这会导致一个问题,假如我们有一些全精度的权重是1e和-3这个量级的经过gradient之后就很容易在0附近抖动,进而使得这些神经元在经过inference之后很容易在正负1之间跳转导致一种很不稳定的情况发生所以作者发现如果降低learning rate 会降低它符号翻转的这种可能性从而使得网络更稳定效果更好

PReLU(parametric ReLU)

ReLU

ReLU=max(0,x)=0, if x<0x, if x≥0

PReLU

fx=xi xi>0αixi others

αi是可通过反向传播学习到的参数

对于xnor的优化,将原来网络中的一部分parametric融合进了relu里

Regularization to +1-1 正则化

将权重的差距拉大

ScaleLayer at last

将BN层变为一个可以学习的或者是设置一个固定的skilllayer 比如将最后一层设置为1,1,-3每一个神经元激活变成原来的10-3*10-3

Multiple binarizations

是对于中间层featuremap的优化操作,更适合DoRaFaNet。

需要寻找更多的技巧去探索binary neural network的上限

Take home message

Binary in forward backward

Memorize in float

Gradient to Binary >Gradient to Float > Update

尽可能地消除float类型的值和binary之后的值之间的差异

Core: The link between two kinds of gradient

参考了b站北京大学杨朝晖同学的工作汇报

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值