XNOR-Net

本文介绍了Binary-Weight-Networks(BWN)和XNOR-Network两种二值化网络,旨在解决深度神经网络在移动端部署的难题。BWN仅量化权重,而XNOR-Net同时量化权重和激活值,通过XNOR和bitcount操作简化卷积运算。文章详细解释了二值化网络的工作原理,并在ImageNet数据集上进行了实验对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/abs/1603.05279
code:http://allenai.org/plato/xnornet

这篇论文的动机是解决DNN在移动端的部署困难的问题,其实这也是量化的主要目的之一。作者提出了两种二值化网络:Binary-Weight-Networks(BWN)和XNOR-Network。其中BWN是将权重量化为1bit(+1,-1),而XNOR-Net则是进一步对权重和激活值都量化为1bit。(激活值就是卷积层的输入)
下图是这两种网络和普通网络的实验结果比较(Alex-Net):在这里插入图片描述

Binary-Weight-Networks

BWN思想和BNN一样,不过只量化权重,更新参数是也是使用实数值(精度高)。
设输入为III,权重为WWW,维度为c∗w∗hc*w*hcwh,二值化后的权重为B∈{+1,−1}B \in \{+1,-1 \}B{+1,1},放缩系数为α\alphaα,即W≈αBW \approx \alpha BWαB,则卷积操作可转转换为只有加减的卷积操作:
在这里插入图片描述
对于权重WWW的近似,肯定越接近越好,于是就转化为优化问题:
在这里插入图片描述
展开得:
在这里插入图片描述
n=c∗w∗hn=c*w*hn=cwh,显然,BTBB^TBBTBWTWW^TWWTW均为正的常数,且BTB=nB^TB= nBTB=n。设WTW=cW^TW=cWTW=c,则目标函数为:
在这里插入图片描述
要使目标函数最小,只要WTBW^TBWTB最大即可。于是优化问题就转化为:
在这里插入图片描述
即B的最优值为:
在这里插入图片描述
对于α\alphaα的最优值,直接对目标函数进行求导即可得到:
在这里插入图片描述

在这里插入图片描述
具体的算法为:
在这里插入图片描述

XNOR-Network

XNOR-Net是对权重和激活值都二值化(XNOR即同或门),主要利用XNOR和bitcount操作。卷积运算可以看作是由移位操作和点积操作组成,而对于二值化的权重和激活值,点积操作可由XNOR和bitcount来近似代替。

对于输入X,权重W,有:
在这里插入图片描述
和BWN相同,求最优近似值,故有优化问题:
在这里插入图片描述
然后和BWN一样的做法,
在这里插入图片描述
在这里插入图片描述
因为∣Xi∣|X_i|Xi∣Wi∣|W_i|Wi相互独立,所以有:
在这里插入图片描述
具体的二值化的卷积操作如下图:
在这里插入图片描述
第一、二行就是上面的最优化过程,但是对于输入的二值化存在重复计算(stride=1),效率不高,所以采用第三行的方法。因为原算法是对每个位置的X都算出β\betaβ和H,但是H就是对X进行sign操作,因此只需要对整个输入矩阵I进行sign操作就可以。第三行就是这样,对输入矩阵的绝对值在channel维度上取平均:
在这里插入图片描述
然后用k滤波器均值滤波:
在这里插入图片描述
得到的K就是各个位置上的β\betaβ。因此得到最终的公式(第四行):
在这里插入图片描述
需要注意的是,还要对网络结构进行调整:
在这里插入图片描述

实验

在ImageNet数据集上与其他量化方法进行对比:
在这里插入图片描述
在不同网络上对比:
在这里插入图片描述

注:作者在实验中发现,β\betaβ似乎对准确率的影响很小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值