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

    文章

    1695

    浏览量

    45911
  • 深度学习
    +关注

    关注

    73

    文章

    5485

    浏览量

    120920
收藏 人收藏

    评论

    相关推荐

    加法运放电路实验报告数据分析

    加法运放电路实验报告的数据分析主要包括对实验结果的观察、与理论值的对比以及误差原因的分析。以下是一个基于常见加法运放电路实验的数据分析示例: 一、实验目的与原理 实验目的 :了解加法器的模拟实现方法
    的头像 发表于 09-03 10:03 471次阅读

    加法运放电路输出电压是多少

    负反馈配置下能够非常精确地控制其输出电压。 加法运放电路的基本形式是将多个输入信号通过电阻网络连接到运算放大器的反相输入端(通常也会有一个反馈电阻从输出连接到反相输入端以形成负反馈),而运算放大器的非反相输入端则接地
    的头像 发表于 09-03 09:50 354次阅读
    <b class='flag-5'>加法</b>运放电路输出电压是多少

    加法器是时序逻辑电路吗

    加法器不是时序逻辑电路 ,而是组合逻辑电路的一种。时序逻辑电路和组合逻辑电路的主要区别在于它们如何处理输出信号。 组合逻辑电路的输出仅依赖于当前的输入信号,而不依赖于电路之前的状态或输入历史。这
    的头像 发表于 08-28 11:05 378次阅读

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

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

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

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

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

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

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

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

    加法放大器的原理和应用

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

    加法器ICL7660M/TR芯片发热问题?

    想做个加法器,经打板焊接,芯片焊接完还用万用表检测了,无短接,虚焊情况。输入5V后,ICL7660电源极性反转变换器芯片发热。但是芯片输入电压极限值是10V,输入5V芯片就发热冒烟了。经检查,芯片
    发表于 05-06 16:32

    FPGA加法截位处理方法介绍

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

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

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

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

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

    反相加法运算电路原理介绍

    反相加法运算电路利用运算放大器(通常简称为Op-Amp)的特性来实现多个输入信号的加法运算。每个输入信号都通过一个电阻连接到运算放大器的反相输入端,而运算放大器的同相输入端则接地或虚拟接地。输出电压
    的头像 发表于 01-31 15:53 3190次阅读
    反相<b class='flag-5'>加法</b>运算电路原理介绍

    英特尔研究院将在NeurIPS大会上展示业界领先的AI研究成果

    英特尔研究院将在NeurIPS 2023大会上展示一系列富有价值、业界领先的AI创新成果。面向广大开发者、研究人员和学界人士,这一AI和计算机视觉领域的全球顶会将于12月10日至16日在美国新奥尔良
    的头像 发表于 12-08 19:15 513次阅读

    英特尔研究院将在NeurIPS大会上展示业界领先的AI研究成果

    英特尔研究院将重点展示31项研究成果,它们将推进面向未来的AI创新。        英特尔研究院将在NeurIPS 2023大会上展示一系列富有价值、业界领先的AI创新成果。面向广大开发者、研究人员
    的头像 发表于 12-08 09:17 665次阅读