Kernel Based Progressive Distillation for Adder Neural Networks:基于核的渐进式蒸馏的加法神经网络

2023-05-16

2020 NeurIPS AdderNet基于核的渐进式的蒸馏加法神经网络

  • 一.简介
  • 二.问题解决
    • 2.1问题提出
    • 2.2初步解决方案
    • 2.3具体分析
    • 2.4问题解决——用核方法来解决这个问题
    • 2.5渐进式学习
  • 三.实验结果分析
    • 3.1基于MNIST数据集将分类结果可视化
    • 3.2不同实验设置对比
    • 3.3作者在CIFAR-10,CIFAR-100,ImageNet上分别进行了实验
  • 四.总结

一.简介

加法器神经网络(ANN)提供了一种低能耗深层神经网络的新方法。但是,当用加法替换所有卷积时,精度会下降。作者认为这主要是由于使用L1范数前向传播的ANN优化比较困难带来的问题。在训练原始ANN时,反向传播的梯度使用的是L2范数来近似,因此梯度方向是不准确的。在本文中,作者提出了一种新的方法,通过基于核的渐进式知识蒸馏(PKKD)方法,进一步提高了人工神经网络的性能,而又不增加可训练的参数。
方法为:具有相同架构的卷积神经网络(CNN)被初始化和训练为T-net,ANN和CNN的特征和权重将被转换到一个新的空间,即使用基于核的方法在更高维的空间中进行处理,消除它们的分布差异,应用知识蒸馏的方法进行学习。最后,根据ground-truth和T-net的信息逐步学习所需的信息。

二.问题解决

作者想用具有相同架构和可学习参数数量的卷积网络来帮助训练S-net。此时困难就出现了,作者分别分析ANN和CNN中的权重分布,发现ANN中的权重服从拉普拉斯分布,而CNN中权重参数通常是高斯分布,因此想要直接匹配两者的特征信息是十分的困难的,正是基于此,作者开发了一种基于核的方法来将这两种神经网络的特征和权重映射到同一个空间去寻求一致性。
CNN使用高斯核,ANN使用拉普拉斯核,来转换特征和权重到一个新的空间,然后再利用知识蒸馏的方法将有用的T-net信息传递到S-net,此外,作者采用渐进式蒸馏方法来指导ANN的训练,进一步提升精度。

2.1问题提出

首先我们来回顾CNN与ANN前向传播操作:
Y ( u , v , c ) = X ∗ F = ∑ i = 1 d ∑ j = 1 d ∑ k = 1 c i n X ( u + i , v + j , k ) ⋅ F ( i , j , k , c ) Y(u,v,c)=X* F=\sum_{i=1}^d\sum_{j=1}^d\sum_{k=1}^{c_{in}}X(u+i,v+j,k)\cdot F(i,j,k,c) Y(u,v,c)=XF=i=1dj=1dk=1cinX(u+i,v+j,k)F(i,j,k,c)
Y ( u , v , c ) = X ⊙ F = − ∑ i = 1 d ∑ j = 1 d ∑ k = 1 c i n ∣ X ( u + i , v + j , k ) − F ( i , j , k , c ) ∣ Y(u,v,c)=X\odot F=-\sum_{i=1}^d\sum_{j=1}^d\sum_{k=1}^{c_{in}}|X(u+i,v+j,k)- F(i,j,k,c)| Y(u,v,c)=XF=i=1dj=1dk=1cinX(u+i,v+j,k)F(i,j,k,c)
但是相同结构的CNN和ANN还是有比较大的精度差别,本文就是为了解决这个问题。

2.2初步解决方案

作者想通过知识蒸馏的方法来提升ANN的精度:
我们来回顾一下KD loss function:
L k d = ∑ i = 1 n H c r o s s ( y s , y t ) L_{kd}=\sum_{i=1}^nH_{cross}(y_s,y_t) Lkd=i=1nHcross(ys,yt)
H c r o s s H_{cross} Hcross也就是交叉熵损失, y s y_s ys也就是S-net网络的输出, y t y_t yt也就是T-net的输出
传统的KD loss使用软标签融合ground-truth和T-net的输出,因此有:
L b l e n d = ∑ i = 1 n { α H c r o s s ( y s , y t ) + H c r o s s ( y s , y g t ) } L_{blend}=\sum_{i=1}^n\{\alpha H_{cross}(y_s,y_t)+H_{cross}(y_s,y_{gt})\} Lblend=i=1n{αHcross(ys,yt)+Hcross(ys,ygt)}
(有关知识蒸馏的具体细节可以在网上查阅)
作者提到,由于CNN和ANN使用相同的神经网络结构,因此更容易学到一些每层间的知识。从此处开始探索如何应用知识蒸馏的方法进行学习。

2.3具体分析

两者前向传播函数大不相同,而ANN输出分布函数和CNN输出分布函数也有很大的不同:
CNN:
i a ( x ) ∗ w a ( x ) = ∫ − ∞ ∞ i a ( t ) ⋅ w a ( x − t )   d t = ∫ − ∞ ∞ i a ( t ) ⋅ 1 2 π σ e − ( x − t ) 2 2 σ 2 d t i_a(x)* w_a(x)=\int_{-\infty}^{\infty}i_a(t)\cdot w_a(x-t)\,{\rm d}t=\int_{-\infty}^{\infty}i_a(t)\cdot\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-t)^2}{2\sigma ^2}}{\rm d}t ia(x)wa(x)=ia(t)wa(xt)dt=ia(t)2π σ1e2σ2(xt)2dt
ANN:
i a ( x ) ⊙ w a ( x ) = ∫ − ∞ ∞ ∣ i a ( t ) − w a ( x − t ) ∣   d t = ∫ − ∞ ∞ ∣ i a ( t ) − 1 2 λ e ∣ x − t ∣ λ ∣ d t i_a(x)\odot w_a(x)=\int_{-\infty}^{\infty}|i_a(t)-w_a(x-t)|\,{\rm d}t=\int_{-\infty}^{\infty}|i_a(t)-\frac{1}{2\lambda}e^{\frac{|x-t|}{\lambda}}|{\rm d}t ia(x)wa(x)=ia(t)wa(xt)dt=ia(t)2λ1eλxtdt
通过比较以上两个输出分布函数可以看出,除非巧妙设计输入的分布,否则ANN与CNN的分布几乎不可能相同。因此很难通过MSEloss来匹配输出特征。因此不能套用原来的蒸馏方法。

2.4问题解决——用核方法来解决这个问题

首先我们先来看一下本文中用到的两个核函数:
高斯核: k ( x , y ) = e − ∣ ∣ x − y ∣ ∣ 2 2 σ 2 k(x,y)=e^{-\frac{||x-y||^2}{2\sigma^2}} k(x,y)=e2σ2xy2
拉普拉斯核: k ( x , y ) = e − ∣ ∣ x − y ∣ ∣ σ k(x,y)=e^{-\frac{||x-y||}{\sigma}} k(x,y)=eσxy
基于以上两个函数更改前后输出特征对比:
CNN: h ( x c m , f c m ) = x c m ∗ f c m → h ( x c m , f c m ) = e − x c m ∗ f c m 2 σ 2 h(x_c^m,f_c^m)=x_c^m*f_c^m\rightarrow h(x_c^m,f_c^m)=e^{-\frac{x_c^m*f_c^m}{2\sigma ^2}} h(xcm,fcm)=xcmfcmh(xcm,fcm)=e2σ2xcmfcm
ANN: g ( x a m , f a m ) = x a m ∗ f a m → g ( x a m , f a m ) = e − x a m ⊙ f a m σ a g(x_a^m,f_a^m)=x_a^m*f_a^m\rightarrow g(x_a^m,f_a^m)=e^{-\frac{x_a^m\odot f_a^m}{\sigma _a}} g(xam,fam)=xamfamg(xam,fam)=eσaxamfam
这便将输入和权重映射到更高维度的空间。在新的空间输出特征图。
我们可以看到此处新的公式高斯核的形式有所改变,但是效果是不变的,作者在原文中给出了证明:
在这里插入图片描述
除了使用核函数,作者还提到进一步用线性变换来匹配新输出的两个分布。
总结就是选取合适的核函数的参数——平滑输出分布,并使用线性变换,减小输出特征分布差异,更好的匹配两者的特征。
因此,作者将用于计算KD loss的中间层输出定义为:
CNN: y C m = ρ ( h ( x C m , f C m ) , w ρ c m ) y_C^m=\rho(h(x_C^m,f_C^m),w_{\rho c}^m) yCm=ρ(h(xCm,fCm),wρcm)
ANN: y a m = ρ ( g ( x a m , f a m ) , w ρ a m ) y_a^m=\rho(g(x_a^m,f_a^m),w_{\rho a}^m) yam=ρ(g(xam,fam),wρam)
w ρ a , w ρ c w_{\rho a},w_{\rho c} wρa,wρc分别是ANN,CNN的线性变换层的参数。
将KD loss应用于除第一层和最后一层的所有中间层:
L m i d = ∑ i = 1 n ∑ m = 1 M H m s e ( y a m , y c m ) L_{mid}=\sum_{i=1}^n\sum_{m=1}^MH_{mse}(y_a^m,y_c^m) Lmid=i=1nm=1MHmse(yam,ycm)
最后的loss function为:
L = β L m i d + L b l e n d = ∑ i = 1 n ∑ m = 1 M β H m s e ( y a m , y c m ) + ∑ i = 1 n { α H c r o s s ( y s , y t ) + H c r o s s ( y s , y g t ) } L=\beta L_{mid}+L_{blend}=\sum_{i=1}^n\sum_{m=1}^M\beta H_{mse}(y_a^m,y_c^m)+\sum_{i=1}^n\{\alpha H_{cross}(y_s,y_t)+H_{cross}(y_s,y_{gt})\} L=βLmid+Lblend=i=1nm=1MβHmse(yam,ycm)+i=1n{αHcross(ys,yt)+Hcross(ys,ygt)}

2.5渐进式学习

总体算法流程如下:
在这里插入图片描述
作者首先分析了目前某些情况下,知识蒸馏不能很好发挥作用的原因。
1.T-net和S-net的结构差异较大
2.T-net和S-net的训练阶段差别较大
作者经过分析,认为问题主要出现在第二个原因上
因此设计此处具体步骤为:给定一批输入数据,首先用交叉熵损失更新CNN参数,之后ANN使用当前的CNN权重通过KD loss进行学习: L b = β L m i d b + L b l e n d b L^b=\beta L_{mid}^b+L_{blend}^b Lb=βLmidb+Lblendb
b为当前的步数。更新ANN的参数,在进行反向传播时,KD损失仅通过ANN进行反向传播,CNN的学习不受干扰。

三.实验结果分析

实验设置:400epochs,batch size=256,cosine learning rate decay, α / β = { 0.1 , 0.5 , 1 , 5 , 10 } \alpha /\beta=\{0.1,0.5,1,5,10\} α/β={0.10.51510}

3.1基于MNIST数据集将分类结果可视化

在这里插入图片描述
可以看出PKKD ANN兼具了ANN与CNN的特性,既能将不同的类别按照不同的角度分开,又可以把不同的类别分成不同的聚类中心。

3.2不同实验设置对比

在这里插入图片描述
经过实验对比,证明渐进式的学习CNN,以及核方法的有效性。

3.3作者在CIFAR-10,CIFAR-100,ImageNet上分别进行了实验

CIFAR-10,CIFAR-100:
在这里插入图片描述
下面是ResNet-20,ANN-20,PKKD ANN-20的训练和测试epoch与accuracy曲线图:
在这里插入图片描述
可以看出PKKD ANN效果完全超过了CNN,尤其可以看出PKKD ANN训练时精度最低,但是测试时的精度却是最高的,这验证了KD方法有助于防止S-net的过拟合。
采用不同的参数设置的时候的实验效果:
在这里插入图片描述
ImageNet:
在这里插入图片描述
在ImageNet的数据集上,效果也是非常的好,我们可以看出采用ResNet-50的结构的时候PKKD ANN的效果是非常不错的。但是在ResNet-18的网络中PKKD ANN效果却要差于CNN,其原因还有待考究。

四.总结

问题:ANN与CNN精度有差距
提出解决:用知识蒸馏方法解决
问题:CNN与ANN输出特征分布差别较大
提出解决:用核函数的方法映射到高维空间,并用一些tricks缩小CNN与ANN输出特征分布差异
提高:渐进式蒸馏方法同时更新CNN和ANN参数提升精度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kernel Based Progressive Distillation for Adder Neural Networks:基于核的渐进式蒸馏的加法神经网络 的相关文章

  • ROS机械臂模型的调试

    用传感器串口输出数据控制虚拟机ROS中的6DOF机械臂模型 xff08 每次重新调试都需要一定的时间熟悉过程 xff0c 所以记录一下 不记录代码只记录调试过程 xff09 串口配置 传感器通过USB转TTL模块接到电脑 xff0c 在虚拟
  • openrave

    配置IKFAST求解器 xff0c 装openrave装了一天终于在差三分钟十一点的时候出来了界面 ubuntu18的boost默认1 65 xff0c 但是好像和openrave不匹配 xff0c 换成了1 58 如果后续使用没问题就来详
  • ROS1代码转ROS2

    先占个坑 xff0c 等我做完写总结
  • 四元数基本概念&&四元数3D旋转(求两个四元数的夹角)

    四元数基本概念 1 四元数定义向量形式 xff1a 模长 xff1a 2 四元数加减法 3 四元数的逆和共轭 当q是单位四元数时 xff0c 4 四元数乘法4 1 标量乘法 xff1b 标量s 四元数与标量相乘满足乘法交换律 xff1a 4
  • 树莓派安装64bit系统并安装miniconda

    树莓派安装64bit系统并安装miniconda 某机械臂只有arm64的动态链接库 xff0c 所以如题 中间过程无比曲折 xff0c 记录一下 1 安装64bit系统 1 1 下载系统 树莓派系统官网 xff1a https www r
  • 四旋翼无人机学习第23节--原理图与PCB库开源计划

    在之前的教程中 xff0c 我们学到了原理图和PCB库的绘制方法 xff0c 了解了绘制的基本方法 在之后的学习中 xff0c 我打算从头开源自己的原理图和PCB库 不定期更新 xff0c 方便大家快速的进行PCB设计 这里有几点想要说明
  • 基于openmv的无人机Apriltag动态追踪降落完整项目资料(labview+openmv+apriltag+正点原子四轴)

    前言 xff1a 之前假期做的一个小项目 xff0c 炸了好几套桨叶233 xff0c 分享出来希望能帮助更多人快速学习 使用正点原子ATK MiniFly 飞行器二次开发多旋翼Apriltag追踪 xff1b 使用LABVIEW自主设计地
  • 某公司算法岗笔试题(部分)

    今天参加了第一次笔试 xff0c 准备的不是很好 xff0c 分享几道题 1 选择题 xff1a int i 61 1 const int j 61 1 下列错误的是 xff1a const int p1 61 amp i const in
  • 五、ROS使用serial包进行串口通信

    五 ROS使用serial包进行串口通信 1 下载串口调试助手CuteCom2 下载虚拟串口模拟器socat3 下载串口调试助手minicom4 安装serial串口功能包5 创建工作空间6 创建功能包7 创建发布者8 配置CMakeLis
  • 六、ROS安装ros_canopen模块

    六 ROS安装ros canopen模块 1 查看自己的ROS版本2 下载ros canopen源码 1 查看自己的ROS版本 首先查看自己的ROS版本 xff1a 我的是melodic 终端1 roscore 终端2 rosparam l
  • 七、ROS-CAN通信

    七 ROS CAN通信 1 测试官方样例2 移植到ROS 1 测试官方样例 我这里用的是CANalyst II分析仪 创芯科技 Linux版 我的系统是 xff1a Ubuntu18 04 6 LTS 我的ROS版本 xff1a melod
  • Ubuntu22.04 实用工具总结 Toniht笔记

    上一篇实用工具总结 xff0c 被莫名其妙审核不通过 xff0c 没涉及任何墙的字眼 xff0c 只不过写了Q v 的安装过程 xff0c 重新写一遍笔记 时隔半个月 xff0c 又被挂了 xff1f 我删的已经只剩一个名字了 离了大谱 U
  • 受苦笔记之Ubuntu 18.04 ros相机标定

    个人博客 TanJX的自留地 Ubuntu 18 04 相机标定 之前用ubuntu 16 04想做相机标定但是一直出错 xff0c 所以换了系统后我又回来折腾了 安装ROS就不说了 主要是ROS下的usb cam程序包 xff0c 之前一
  • 嵌入式Linux自学笔记(三)——输入输出系统应用编程、网络通信、多线程编程

    一 输入输出系统应用编程 1 输入系统简介 1 1 输入设备 常见的输入设备有键盘 鼠标 遥控杆 书写板 触摸屏等等 xff0c 用户通过这些输入设备与 Linux 系统进行数据交换 1 2 输入系统 Linux 系统为了统一管理这些输入设
  • 基于SIFT的图像拼接系统

    第一部分 设计概述 设计目的 图像拼接技术是计算机视觉与图像处理领域的一个研究重点 xff0c 广泛应用于各个领域 它能够很好地实现图像的延伸和连续 xff0c 保留多组图像的共有信息 xff0c 去除杂冗 xff0c 提高信息存储量 xf
  • Ubantu20.04 安装rtabmap的ros版本时 catkin_make报错:could not find a package configuration

    ROS版本 xff1a noetic 查询安装包的源网站 xff1a ROS Wiki http wiki ros org 本次安装经常用到git clone 如果git clone 报错 xff0c 或者速度很慢 xff0c 可以参考我的
  • 计算机专业要不要考研——写的很棒

    http www csaiky com wl 201011190918531326 htm 你说 xff1a 他们都有很强的开发能力 只是不太喜欢读书 也只是希望混个学历对今后在岗位上晋升有好处 xff0c 我可以向你保证 xff0c 你所
  • Keil5遇到:*** Target ‘xxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

    这个原因是Compiler Version 5编译器在Keil 5 37以后就不再默认安装了 从这个版本开始 xff0c Keil 默认安装的是 Compiler Version 6 18 xff0c 如下图 图1 版本信息 解决方法 xf
  • Java形参什么时候能改变实参的值

    形参到实参有两种传递形式 xff0c 值传递和引用数据类型传递 其中 xff0c 值传递是不可更改实参的值的 但注意 xff0c 引用数据类型中的String也是不可更改实参的 xff0c 所以归为值传递 xff01
  • 二、在Windows下安装TensorFlow GPU版本教程(超级详细哦)

    二 在Windows下安装TensorFlow GPU版本教程 xff08 超级详细哦 xff09 1 确认显卡是否支持CUDA1 1 查看支持CUDA的显卡1 2 查看系统信息1 3 查看显卡信息 2 安装CUDA2 1 下载并安装CUD

随机推荐

  • ubuntu如何看到隐藏文件夹

    1 首先啥是隐藏文件夹 xff1a ubuntu环境下 xff0c 凡是以 点 开头命名的文件夹都是隐藏文件夹 xff0c 是看不到的 2 想要修改或者查看他们 xff1a 可以选择使用快捷键 ctrl 43 h 34 就可以将隐藏文件夹显
  • STM32F407__串口转422总线__一主多从通信

    从机的422原理图如下所示 xff1a 主机的422原理图 xff1a 一 通信大体原理 在通信过程中 xff0c 主机向总线上发送数据 xff0c 从机都能从总线上接收到数据 xff0c 根据设置的地址 xff0c 选在是否是本板需要的数
  • 使用evo测试aruco_detect精度

    使用evo测试aruco detect精度 一 实验目的二 实验设备三 实验步骤四 实验结果五 实验结论六 结论分析 一 实验目的 测试aruco detect的精确度 xff1b 分析影响aruco slam精准度的主要因素 二 实验设备
  • 3. LaTeX图片的排版、引用与格式

    3 LaTeX图片的排版 引用与格式 1 LaTeX 图片排版方式 在 LaTex 排版的论文写作中 xff0c LaTex 的所有宏包文件都要写在 documentclass 命令之后和 begin document 之前 在本文中 xf
  • 一个七年Java女程序员的年终总结,写给过去一年的自己

    简单先说一下 xff0c 坐标杭州 xff0c 14届本科毕业 xff0c 算上年前在阿里巴巴B2B事业部的面试 xff0c 一共有面试了有6家公司 xff08 因为不想请假 xff0c 因此只是每个晚上去其他公司面试 xff0c 所以面试
  • 嵌入式Linux下tca9548的使用以及测传感器实例。

    tca9548为IIC拓展板 xff0c 主要应用在多个同种传感器的测量环境中 保证在传感器出厂地址相同的情况下也能通过传感器进行测量 下面开始说一下整个的使用步骤 首先必须保证开发板内核有IIC驱动程序 xff1b 如果开发板内核中没有驱
  • ssh远程连接报错

    1 ssh远程连接报错 ssh远程连接报错 root 64 101 34 177 174 Permission denied publickey gssapi keyex gssapi with mic ssh远程连接报错 Permissi
  • 作为一名Web前端开发人员和设计师,2018告诉你如何正确的学习前端

    第一步 掌握HTML CSS 这是你最初必须 掌握的是网站的构建元素没得选 随着你前端的学习进程 熟练掌握HTML CSS简单易学这里还是要推荐下小编的web前端学习群 606加721加798 xff0c 不管你是小白还是大牛 xff0c
  • OpenCV error: ‘CV_BGR2GRAY’ was not declared in this scope错误

    本人在学习OpenCV时按照书上的代码敲 xff1a cvtColor srcImage grayImage COLOR BGR2GRAY 这里遇到报错 xff1a error CV BGR2GRAY was not declared in
  • px4源码编译之 建立自己的程序模块

    前言 xff1a 在网上找了一大圈 xff0c 如何在px4源码examples中添加自己的程序 xff0c 包括官网那个都没有用 xff0c 后来发现需要在对应的编译位置对cmake文件进行修改 xff0c 具体如下 xff1a 1 在你
  • 关于在Gazebo中给无人机添加相机(摄像头)之后,无人机无法起飞

    其实主要内容还是参考别人的博客 xff0c 修改或新增相应模型文件和launch文件 xff0c 通过mavros启动之后 xff0c 不管是用commander takeoff还是递地面站都无法使无人机起飞 xff0c 同时地面站报告没有
  • 【ubuntu系统下装win10双系统】

    ubuntu系统下装win10双系统个人经验分享 xff08 1 xff09 前期准备 xff1a 建议准备两个空u盘 xff08 更方便 xff09 xff0c 或者一个空u盘也是可以的 xff0c 提前格式化好即可 然后准备下载必要的文
  • PyQT在ui界面新建Label控件

    PyQT通过自定义外部函数 xff0c 在ui界面新建Label控件 写在前面的废话 xff1a 如果你想要在ui界面创建一个Label xff08 或者其他控件 xff09 xff0c 最快捷的当属在QTdesigner里找到你需要的控件
  • ubuntu克隆ue4源码

    ubuntu克隆ue4源码 1 进入ue官网 xff0c 登陆自己账号 xff0c 进入个人账户界面 xff0c 点击连接 xff0c 账户 xff0c 关联github Epic Games 2 之后按照操作进行 xff0c 关联自己的g
  • Windows环境跑通清华开源通用时间序列分析模型TimesNet

    1 需要按照给定配置准备python3 8环境与相关依赖包 xff0c 全程在windows环境下进行 2 github thuml Time Series Library A Library for Advanced Deep Time
  • 嵌入式工程师职业生涯该怎样规划

    嵌入式工程师分布在各行各业 xff0c 包括消费电子 工业电子 汽车电子和军用电子等 从功能上面看 xff0c 嵌入式本身包括了51 mcu soc soc 43 baseband等很多形式 从开发的结构上看 xff0c 有些同学专注于底层
  • 使用ros实现c++与python通信

    创建工作空间 选择在桌面创建 cd mkdir p my workspace src 编译工作空间 cd my workspace catkin make source一下新生成的setup bash文件 xff1a source deve
  • C++输出系统时间

    编译软件 xff1a dev5 4 0 程序功能 xff1a 输出系统时间 xff0c 输出格式 2018 08 10 15 14 40 方法 xff1a 使用time t获取系统时间 xff0c 再使用strftime 函数对日期和时间进
  • 该博客已搬家至 博客园

    由于CSDN不支持metaweblog xff0c 该博客今日起停止更新 所有内容移至博客园 我的博客园博客地址 xff1a 戳我 https www cnblogs com wittxie CSDN写文章真的难受 xff0c 具体原因你们
  • Kernel Based Progressive Distillation for Adder Neural Networks:基于核的渐进式蒸馏的加法神经网络

    2020 NeurIPS AdderNet基于核的渐进式的蒸馏加法神经网络 一 简介二 问题解决2 1问题提出2 2初步解决方案2 3具体分析2 4问题解决 用核方法来解决这个问题2 5渐进式学习 三 实验结果分析3 1基于MNIST数据集