©作者 | 机器之心编辑部

来源 | 机器之心

常规符号函数的梯度几乎处处为零,不能用于反向传播。为此,来自华为诺亚方舟实验室等机构的研究者提出一种在频域中估计原始符号函数梯度的新方法

二值神经网络(BNN)将原始全精度权重和激活用符号函数表征成 1-bit。但是由于常规符号函数的梯度几乎处处为零,不能用于反向传播,因此一些研究已经提出尝试使用近似梯度来减轻优化难度。然而,这些近似破坏了实际梯度的主要方向。

基于此,在一篇 NeurIPS 2021 论文中,来自华为诺亚方舟实验室等机构的研究者提出使用傅里叶级数的组合来估计频域中符号函数的梯度以训练 BNN,即频域逼近 (FDA)。所提方法不影响占整体能量大部分的原始符号函数的低频信息,并且将高频系数使用噪声拟合模块 (noise adaptation module) 进行估计以避免大量的计算开销。

论文地址:

https://arxiv.org/pdf/2103.00841.pdf

在几个基准数据集和神经架构上的实验表明,使用该方法学习的二值网络实现了 SOTA 准确率。

数日前,在机器之心 2021 NeurIPS MeetUp China 上,论文一作许奕星为参会者解读了该论文,感兴趣的读者可以查看以下视频。

方法

该研究提出的 FDA 方法,通过利用傅里叶级数 (FS) 来估计频域中的原始符号函数,FS 估计是使用无穷项时符号函数的无损表征。在实际应用中,能量相对较低的高频系数会被忽略,以避免巨大的计算开销,并将符号函数表征为固定数量的不同周期正弦函数的组合。与现有的逼近方法相比,该研究所提出的频域逼近方法不影响原始符号函数的低频域信息,即占用符号函数能量最多的部分。因此,原始符号函数相应梯度的主要方向能够被更准确地保持。

在论文中,该研究对所提方法做了详细的理论表述。

论文中用 f(·)和 f’(·)来表示原始函数及其对应的梯度函数。由于符号函数的梯度是一个无法反向传播的脉冲函数,需要应用进化算法(evolutionary algorithm)等零阶算法来达到最优解,但这是非常低效的。因此该研究提出找到一个代理函数,通过一阶优化算法(如 SGD)依靠实验求解,而理论上具有与符号函数相同的最优解。

已有研究证明,任何周期为 T 的周期信号都可以分解为傅里叶级数的组合:

其中 ω = 2π/T 是角频率,α_0/2 是直接分量,是正弦(余弦)分量的系数。具体来说,当周期信号呈方波时,有:

并推导出方波 s(t) 的 FS:

注意到当信号被限制在单个周期内时,符号函数与方波等同:

因此,符号函数也可以被分解为正弦(余弦)函数的组合,并且其导数如下:

然后,该研究提出使用上述等式 (8) 替换 STE 中的导数,以在反向传播期间更好地逼近符号函数。

当将信号从空间域转换到频域,使用无限项时,FS 分解是符号函数的无损表征,因此等式 (6) 可以重写为:

其中,n 是 FS 的项数,相应的导数是:

然后该研究进一步证明了随着 n 的增加,估计值和 s(t)之间的均方误差会逐渐减小,并在 n → ∞ 时收敛到 0。

为了进一步补偿细微的逼近误差,该研究在训练阶段添加了一个噪声适应模块来细化梯度。

实验及结果

为了展示 FDA-BNN 优越的性能,该研究在 CIFAR-10 数据集上进行了评估实验,实验结果如下表所示。

消融实验

为了验证所提方法中每个组件的有效性、噪声适应模块和超参数的影响,该研究进行了一系列的消融实验。

首先,该研究使用 ResNet-20 架构在 CIFAR-10 上实验验证正弦模块和噪声适应模块的效果,结果如下表所示。

从上表的结果看,使用正弦模块可使训练过程受益,将准确率从 84.44% 提高到 85.83%。将正弦模块和噪声自适应模块组合在一起时得到了最佳性能,即 86.20% 的准确率。

为了进一步验证噪声适应模块的用途,研究者将该模块添加到其他梯度逼近方法中,例如 DSQ 和 BNN+,结果如下表所示。

然后该研究评估了不同 η(·) 对噪声适应模块的影响。结果如下表所示,使用 shortcut 时性能更好,并且 shortcut function η(x) = α sin(x) 在实验过程中表现最好。

在 ImageNet 上的实验

该研究进一步在大规模数据集 ImageNet ILSVRC 2012 上进行了实验,使用 ResNet-18 和 AlexNet 进行实验,结果如下表所示。

对于 ResNet-18,FDA-BNN 实现了 60.2% 的 top-1 准确率和 82.3% 的 top-5 的准确率,比基线方法(Bireal-Net + PReLU)高出 1.2% 和 1.0%,并超过所有其他方法。

当以 ReActNet 作为基线方法,并使用该研究所提方法计算符号函数的梯度, FDA-BNN 达到了 66.0% 的 top-1 准确率,86.4% 的 top-5 准确率,比基线方法分别高出 0.5% 和 0.3%。

对于 AlexNet,该研究使用 Dorefa-Net 中的量化方法作为基线方法,FDA-BNN 实现了 46.2% 的 top-1 准确率和 69.7% 的 top-5 准确率,并优于其他 SOTA 方法。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

NeurIPS 2021 | 华为诺亚Oral论文:基于频域的二值神经网络训练方法相关推荐

  1. excel乘法公式怎么输入_深度学习可以不要乘法,北大、华为诺亚新论文:加法替代,效果不变,延迟大降...

    机器之心报道 参与:思.一鸣 深度学习对算力要求太高,怎么简化计算复杂度呢?北大.华为诺亚方舟实验室等提出完全用加法代替乘法,用 L1 距离代替卷积运算,从而显著减少计算力消耗. 和加法运算相比,乘法 ...

  2. TPAMI 2021 华为诺亚悉尼大学陶大程团队提出多功能卷积,助力轻量级网络

    关注公众号,发现CV技术之美 0 写在前面 在本文中,作者提出了一种用于构造高效卷积神经网络的多功能滤波器 ,并应用于各种视觉识别任务中.考虑到硬件上运行高效的深度学习模型的需求,研究者们已经开发了许 ...

  3. NeurIPS 2021 Transformer部署难?北大华为诺亚提出Vision Transformer的后训练量化方法...

    关注公众号,发现CV技术之美 本文分享 NeurIPS 2021 论文『Post-Training Quantization for Vision Transformer』,由北大&华为诺亚联 ...

  4. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  5. 华为诺亚CV方向19篇论文入选ICCV 2019

    点击我爱计算机视觉标星,更快获取CVML新技术 目前,2019年国际计算机视觉大会(ICCV 2019),正在韩国首尔(Seoul)举行.华为公司不仅成为了会议的铂金赞助商,其下属的诺亚方舟实验室更是 ...

  6. 内存占用少,计算速度快!华为诺亚方舟Lab开源即插即用的多用卷积核(NeurIPS 2018)...

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自诺亚实验室(ID:Noah_ark_lab). 华为诺亚方舟实验室开源了一种即插即用的卷积核,该项工作发表在NeurIPS 2018上,论文题 ...

  7. GNN论文周报 | 来自西湖大学、南京大学、国防科大、华为诺亚方舟实验室、莱斯大学等机构前沿论文研究...

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 图神经网络(GNN)是一类专门针对图结构数据的神经网络模型,在社交网络分析.知识图谱等领域中取得了不错的效果.近来,相关研究人员在GNN ...

  8. 【读点论文】A Survey on Vision Transformer,2022年华为诺亚最新综述研究,从发展到任务,整体到局部。ViT有研究价值在于有很多问题还没有解决,真理是阶段性的产物

    A Survey on Vision Transformer Abstract transformer最早应用于自然语言处理领域,是一种主要基于自注意机制的深度神经网络.由于其强大的表示能力,研究人员 ...

  9. #今日论文推荐# 用GNN做CV三大任务的新骨干,同计算成本性能不输CNN、ViT与MLP|中科院华为诺亚开源

    #今日论文推荐# 用GNN做CV三大任务的新骨干,同计算成本性能不输CNN.ViT与MLP|中科院&华为诺亚开源 用图神经网络(GNN)做CV的研究有不少,但通常是围绕点云数据做文章,少有直接 ...

最新文章

  1. 厉害了,网易伏羲三篇论文上榜 AI 顶会 ACL
  2. Linux grep不包含某些字符串的命令
  3. 二十年后我发明了保姆机器人作文_五年级作文:二十年后的家乡(张羽彤)
  4. C语言 共享库(动态库)制作
  5. eclipse 对齐行号在括号中显示和字体调整
  6. 在Linux系统里安装Virtual Box的详细步骤 1
  7. python将图例画在图外
  8. python dlib人脸检测_Python 3 利用 Dlib 实现人脸检测和剪切
  9. Web.xml详解(转)
  10. python counter 出现次数最少的元素_[PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法...
  11. 解决C#网络通信编程的阻塞问题
  12. Spoiler Alert – 实现内容模糊隐藏效果的 jQuery 插件
  13. htop的VIRT是什么
  14. 关于win10 64位安装 XP 32位注意事项
  15. 常见的直流稳压电源电容有哪些?及其详细介绍
  16. 关于checkbox的removeClass属性
  17. AR涂涂乐⭐九、视频展示及涂涂乐源文件
  18. 微信手机浏览器多图片即时预览
  19. stdin,stderr,stdout
  20. vCenter Server CA证书下载

热门文章

  1. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台
  2. 关于复选框选中状态的判断
  3. dbus的代码范例 linux_linux-将结构传递给dbus方法的工具?
  4. python dict遍历_Python学习笔记:19个pythonic编程习惯,让你的Python入门更优雅
  5. Android知识点
  6. loj 2542 随机游走 —— 最值反演+树上期望DP+fmt
  7. OUR D3.JS 数据可视化专题站(转)
  8. java nio 堆外内存_Java堆外内存之突破JVM枷锁
  9. c#匿名方法用途_C#的匿名方法
  10. android listview 列加id,Android实战开发之ListView同一个item显示2列的实现方法