0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

加法网络再突破—NeurIPS 2020 Spotlight

电子设计 来源:电子设计 作者:电子设计 2020-12-08 22:11 次阅读
华为诺亚方舟实验室联合悉尼大学发布论文《Kernel Based Progressive Distillation for Adder Neural Networks》,提出了针对加法神经网络的蒸馏技术,ResNet-34和ResNet-50网络在ImageNet上分别达到了68.8%和76.8%的准确率,效果与相同结构的CNN相比持平或超越,该论文已被NeurIPS2020接收。

开源链接:
huawei-noah/AdderNet​github.com
论文链接:
https://arxiv.org/pdf/2009.13044.pdf​arxiv.org

研究背景

深度卷积神经网络(CNN)被广泛应用于诸多计算机视觉领域的实际任务中(例如,图片分类、物体检测、语义分割等)。然而,为了保证性能,神经网络通常是过参数化的,因此会存在大量的冗余参数。近期提出的加法神经网络(ANN),通过将卷积操作中的距离度量函数替换为L1距离,极大减少了神经网络中的乘法操作,从而减少了网络运行所需的功耗和芯片面积。
然而,ANN在准确率方面和同结构的CNN相比仍然有一定差距,在某种程度上限制了ANN在实际应用中对CNN的替换。为了提高ANN的性能,我们提出了一种基于核的渐进蒸馏方法。具体的,我们发现一个训练好的ANN网络其参数通常服从拉普拉斯分布,而一个训练好的CNN网络其参数通常服从高斯分布。因此,我们对网络中间层的特征图输出进行核变换后,使用距离度量函数估计教师网络(CNN)和学生网络(ANN)之间的损失。对于最后一层,我们使用传统的KL散度估计两个网络之间的损失。同时,在训练中我们使用随机初始化的教师网络,与学生网络同时训练,以减少两个网络之间参数分布的差异性。
实验表明,我们的算法得到的ANN能够在CIFAR-10,CIFAR-100,ImageNet等标准图片分类数据集上达到或超越同结构CNN的准确率。
对网络中间层特征图输出进行核变换
ANN本身精度不好的原因是原始ANN在反向传播时,使用的是近似的梯度,导致目标函数无法向着最小的方向移动。传统KD方法应用到ANN上效果不佳的原因,在于ANN的权重分布是拉普拉斯分布,而CNN的权重分布为高斯分布,因此分布不同导致无法直接对中间层的feature map使用KD方法。本方法首先将核变换作用于教师网络和学生网络的中间层输出,并使用1x1卷积对新的输出进行配准。之后,结合最后一层的蒸馏损失与分类损失,得到整体的损失函数。

渐进式蒸馏算法
传统的蒸馏方法使用固定的,训练好的教师网络来教学生网络。这样做会带来问题。由于教师网络和学生网络处于不同的训练阶段,因此他们的分布会因为训练阶段的不同而不同,所以会导致KD方法效果不好。因此我们采用渐进式蒸馏方法,让教师网络和学生网络共同学习,有助于KD方法得到好的结果。即目标函数变为:

其中b为当前的step。
实验结果
我们在CIFAR-10、CIFAR-100、ImageNet三个数据集上分别进行了实验。
下表是在CIFAR-10和CIFAR-100数据集上的结果,我们使用了VGG-small、ResNet-20与ResNet-32作为教师网络,同结构的ANN作为学生网络。可以看到,使用了本方法得到的ANN在分类准确率上相比原始的ANN有大幅度的提升,并且能够超过同结构的CNN模型。表格中#Mul表示网络中乘法操作的次数。#Add表示加法操作次数,#XNOR表示同或操作的次数。

下表展示了在ImageNet数据集上的结果,我们使用ResNet-18与ResNet-50网络作为教师网络,同结构的ANN作为学生网络。结果显示我们的方法得到的ANN在分类准确率上相比同结构CNN基本相同或能够超越。

最后,我们展示了ResNet-20,ANN-20与通过本方法得到的PKKD ANN-20模型在CIFAR-10与CIFAR-100数据集上的训练精度曲线与测试精度曲线。

图中的实线表示训练精度,虚线表示测试精度。在两个数据集中,CNN的训练和测试准确率都超过了原始的ANN模型。这是因为在训练原始ANN时,反向传播的梯度使用的是L2 norm来近似,因此梯度方向是不准确的。当使用本方法后,CNN的训练过程可以指导ANN的训练,因此可以得到更好的结果。同时,知识蒸馏方法能够帮助学生网络防止过拟合,这也是我们的方法有最低的训练精度和最高的测试精度的原因。



推荐阅读



文章首发知乎,更多深度模型压缩相关的文章请关注深度学习压缩模型论文专栏

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机视觉
    +关注

    关注

    8

    文章

    1611

    浏览量

    45716
  • 深度学习
    +关注

    关注

    73

    文章

    5264

    浏览量

    120173
收藏 人收藏

    评论

    相关推荐

    请问增益为1的加法器有哪些?

    增益为1的加法器指的是输出信号的幅度与输入信号幅度相等的加法器。这类加法器在模拟电路设计中非常重要,因为它们在执行加法运算的同时,不会改变信号的幅度。
    的头像 发表于 05-23 15:10 337次阅读

    串行加法器和并行加法器的区别?

    串行加法器和并行加法器是两种基本的数字电路设计,用于执行二进制数的加法运算。它们在设计哲学、性能特点以及应用场景上有着明显的区别。
    的头像 发表于 05-23 15:06 584次阅读

    加法器的原理是什么 加法器有什么作用

    加法器是数字电路中的基本组件之一,用于执行数值的加法运算。加法器的基本原理和作用可以从以下几个方面进行详细阐述。
    的头像 发表于 05-23 15:01 504次阅读
    <b class='flag-5'>加法</b>器的原理是什么 <b class='flag-5'>加法</b>器有什么作用

    同相加法器和反相加法器的区别是什么

    同相加法器和反相加法器是运算放大器在模拟电路设计中常用的两种基本电路结构,它们在信号处理方面有着不同的特性和应用场景。
    的头像 发表于 05-23 14:35 617次阅读

    加法放大器的原理和应用

    加法放大器,作为一种重要的电子电路设备,其在信号处理、音频混合、以及多种电子系统中发挥着关键作用。它基于放大器的线性特性,通过特定的电路设计,将多个输入信号进行相加,并输出放大后的信号。本文将对加法放大器的原理、特点、设计方法以及其在不同领域的应用进行详细的阐述。
    的头像 发表于 05-22 18:09 1068次阅读

    FPGA加法截位处理方法介绍

    本模块实现输入与输出位宽相同数据加法,并对结果进行四舍五入截位,对标matlab round函数。
    的头像 发表于 04-18 16:53 472次阅读

    加法运算电路和减法运算电路的区别

    加法运算的电路如下图所示,输出电压为若干个输入电压的比例和
    的头像 发表于 02-19 09:52 4529次阅读
    <b class='flag-5'>加法</b>运算电路和减法运算电路的区别

    什么是反相加法运算电路?反相加法运算电路与减法运算电路

    在电子技术的海洋中,有一种电路如同数学中的加法器一样,能够将不同的信号进行相加处理。这就是被广泛应用于信号处理领域的反相加法运算电路。
    的头像 发表于 02-17 15:34 2685次阅读
    什么是反相<b class='flag-5'>加法</b>运算电路?反相<b class='flag-5'>加法</b>运算电路与减法运算电路

    如何在FPGA中实现高效的compressor加法树呢?

    大规模的整数加法在数字信号处理和图像视频处理领域应用很多,其对资源消耗很多,如何能依据FPGA物理结构特点来有效降低加法树的资源和改善其时序特征是非常有意义的。
    的头像 发表于 11-08 09:06 883次阅读
    如何在FPGA中实现高效的compressor<b class='flag-5'>加法</b>树呢?

    下一代神经网络:NVIDIA Research 在 NeurIPS 大会上发布一系列 AI 技术进步

    NVIDIA 研究人员正在与世界各地的学术机构合作,推进生成式 AI、机器人和自然科学领域的进步。在全球顶级 AI 会议之一 NeurIPS 上,NVIDIA 将介绍其中的十几个项目
    的头像 发表于 11-03 19:15 480次阅读
    下一代神经<b class='flag-5'>网络</b>:NVIDIA Research 在 <b class='flag-5'>NeurIPS</b> 大会上发布一系列 AI 技术进步

    基于FPGA实现Mem加法

    前段时间和几个人闲谈,看看在FPGA里面实现一个Mem加法器怎么玩儿
    的头像 发表于 10-17 10:22 385次阅读
    基于FPGA实现Mem<b class='flag-5'>加法</b>器

    fpga实现加法和减法运算的方法是什么

    FPGA实现加法和减法运算非常简单,实现乘法和除法可以用IP,那实现对数和指数运算该用什么呢?
    发表于 08-05 09:37 1157次阅读
    fpga实现<b class='flag-5'>加法</b>和减法运算的方法是什么

    加法合成器开源分享

    电子发烧友网站提供《加法合成器开源分享.zip》资料免费下载
    发表于 07-13 11:05 0次下载
    <b class='flag-5'>加法</b>合成器开源分享

    镜像加法器的电路结构及仿真设计

    镜像加法器是一个经过改进的加法器电路,首先,它取消了进位反相门;
    的头像 发表于 07-07 14:20 1837次阅读
    镜像<b class='flag-5'>加法</b>器的电路结构及仿真设计

    4位加法器的构建

    电子发烧友网站提供《4位加法器的构建.zip》资料免费下载
    发表于 07-04 11:20 0次下载
    4位<b class='flag-5'>加法</b>器的构建