【论文笔记】AdderNet: Do We Really Need Multiplications in Deep Learning?

AdderNet是一种深度学习模型,它用加法替换卷积网络中的乘法运算,以减少计算成本。论文提出了使用滤波器和输入特征之间的ℓ1-norm距离作为输出响应,并通过特殊反向传播方法和自适应学习率策略优化训练过程。实验表明AdderNet在保持识别精度的同时,能有效降低计算复杂度。
摘要由CSDN通过智能技术生成

AdderNet: Do We Really Need Multiplications in Deep Learning?

论文地址
代码地址

CVPR2020

深度神经网络中广泛使用的卷积正好互相关,以测量输入特征和卷积滤波器之间的相似性,这涉及浮点值之间的大量乘法。

AdderNets来交换深度神经网络(尤其是CNN)中这些大规模乘法运算,以更简单的加法来减少计算成本。将滤波器和输入特征之间的 ℓ 1 \ell_1 1-norm距离作为输出相应。彻底分析了这种新的相似度计算对神经网络优化的影响。为了获得更好的性能,我们通过研究全精度梯度为AdderNets开发了一种特殊的反向传播方法。然后,根据每个神经元梯度的大小提出了一种自适应学习率策略来增强AdderNets训练过程。

将乘法转换为加法来加快深度学习:

  • BinaryConnect:强制网络权重为二进制,简单累加运算代替许多乘法累加运算
  • BNN:不仅对权重还对CNN中的激活值进行二值化;显著降低计算成本,但是无法保持原始精度,训练过程不稳定,通常要求较慢的收敛速度和小的学习率
  • 引入比例因子来使用二元运算近似卷积
  • 利用低位宽梯度来加速二值化网络的训练
  • 前向逼近的半波高斯量化器,实现与全精度网络更接近的性能

经典CNN中的卷积:实际上是互相关的,用于测量两个输入的相似性,研究人员和开发人员习惯于将卷积作为默认操作来提取特征,即使存在着牺牲网络能力的风险

AdderNet:在放弃卷积计算的同时最大程度利用加法运算。给定一系列小的模板作为滤波器, ℓ 1 \ell_1 1距离可以有效地总结输入信号和模板之间的绝对差异。由于通过使用加法可以轻松实现减法, ℓ 1 \ell_1 1距离仅有加法运算可能是一种硬件友好的度量。设计了一种带有正则渐变的改进方案的反向传播方案来确保模板的足够更新和更好的网络收敛。

在这里插入图片描述
实验证明,可以获得与CNN相当的识别精度。

二、related work

  • pruning-based:消除冗余权重来压缩和加速原始网络
  • [6]利用奇异值分解SVD将全连接层的权重矩阵分解成简单的计算
  • [9]在预训练的深度网络中丢弃细微的权重来忽略原始计算而不会影响性能
  • [31]进一步将卷积滤波器转换为DTC频域,并消除了更多的浮点数乘法
  • [13]丢弃冗余滤波器,影响较小,直接减少了这些滤波器带来的计算量
  • [21]根据重建误差丢弃了冗余滤波器
  • [14]RDI-Nets允许每个输入自适应的选择多个输出层之一来输出其预测
  • [29]提出E2-Training方法,该方法可以训练具有80%以上节能的深度神经网络

设计新的模块或运算来取代传统卷积滤波器:

  • [12]设计了MobileNet将传统卷积滤波器通过更少的FLOPs分解为点式和深度涡旋滤波器
  • [38]·······

三、network

过滤器 F ∈ R d × d × c i n × c o u t F\in{\Bbb{R}}^{d×d×c_{in}×c_{out}} FRd×d×cin×cout在深度神经网络的中间层, d d d:内核大小, c i n c_{in} cin:输入通道, c o u t c_{out} cout:输出通道。

输入特征定义为 X ∈ R H × W × c i n X\in{\Bbb{R}^{H×W×c_{in}}} XRH×W×cin H H H:特征的高度, W W W:特征的宽度。

输出特征:表示过滤器和输入特征之间的相似性 Y ( m , n , t ) = ∑ i = 0 d ∑ j = 0 d ∑ k = 0 c i n S ( X ( m + i , n + j , k ) , F ( i , j , k , t ) ) Y(m,n,t)=\sum_{i=0}^d\sum_{j=0}^d\sum_{k=0}^{c_{in}}S(X(m+i,n+j,k),F(i,j,k,t)) Y(m,n,t)=i=0dj=0dk=0cinS(X(m+i,n+j,k),F(i,j,k,t)) S ( ⋅ , ⋅ ) S(·,·) S(,):预定义的相似性度量。如果互相关作为距离的度量,即 S ( x , y ) = x × y S(x,y)=x×y S(x,y)=x×y,上式成为卷积运算;上式还可以当 d = 1 d=1 d=1时计算全连接层。


AdderNet:

最大化使用加法运算来部署距离度量。 ℓ 1 \ell_1 1距离计算两点向量之间绝对差之和,不包含乘法。因此,滤波器额输入特征之间的 ℓ 1 \ell_1 1距离: Y ( m , n , t ) = − ∑ i = 0 d ∑ j = 0 d ∑ k = 0 c i n ∣ X ( m + i , n + j , k ) − F ( i , j , k , t ) ∣ Y(m,n,t)=-\sum_{i=0}^d\sum_{j=0}^d\sum_{k=0}^{c_{in}}|X(m+i,n+j,k)-F(i,j,k,t)| Y(m,n,t)=i=0d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值