【CSDN编者按】在CVPR 2020上,商汤研究院链接与编译组和北京航空航天大学刘祥龙老师团队提出了一种旨在优化前后向传播中信息流的实用、高效的网络二值化新算法IR-Net。不同于以往二值神经网络大多关注量化误差方面,本文首次从统一信息的角度研究了二值网络的前向和后向传播过程,为网络二值化机制的研究提供了全新视角。同时,该工作首次在ARM设备上进行了先进二值化算法效率验证,显示了IR-Net部署时的优异性能和极高的实用性,有助于解决工业界关注的神经网络二值化落地的核心问题。

出品 | AI科技大本营(ID:rgznai100)

动机

二值神经网络因其存储量小、推理效率高而受到社会的广泛关注 [1]。然而与全精度的对应方法相比,现有的量化方法的精度仍然存在显著的下降。

对神经网络的研究表明,网络的多样性是模型达到高性能的关键[2],保持这种多样性的关键是:(1) 网络在前向传播过程中能够携带足够的信息;(2) 反向传播过程中,精确的梯度为网络优化提供了正确的信息。二值神经网络的性能下降主要是由二值化的有限表示能力和离散性造成的,这导致了前向和反向传播的严重信息损失,模型的多样性急剧下降。同时,在二值神经网络的训练过程中,离散二值化往往导致梯度不准确和优化方向错误。如何解决以上问题,得到更高精度的二值神经网络?这一问题被研究者们广泛关注,本文的动机在于:通过信息保留的思路,设计更高性能的二值神经网络。

基于以上动机,本文首次从信息流的角度研究了网络二值化,提出了一种新的信息保持网络(IR-Net):(1)在前向传播中引入了一种称为Libra参数二值化(Libra-PB)的平衡标准化量化方法,最大化量化参数的信息熵和最小化量化误差;(2) 在反向传播中采用误差衰减估计器(EDE)来计算梯度,保证训练开始时的充分更新和训练结束时的精确梯度。

IR-Net提供了一个全新的角度来理解二值神经网络是如何运行的,并且具有很好的通用性,可以在标准的网络训练流程中进行优化。作者使用CIFAR-10和ImageNet数据集上的图像分类任务来评估提出的IR-Net,同时借助开源二值化推理库daBNN进行了部署效率验证。

方法设计

高精度二值神经网络训练的瓶颈主要在于训练过程中严重的信息损失。前向sign函数和后向梯度逼近所造成的信息损失严重影响了二值神经网络的精度。为了解决以上问题,本文提出了一种新的信息保持网络(IR-Net)模型,它保留了训练过程中的信息,实现了二值化模型的高精度。

前向传播中的Libra Parameter Binarization(Libra-PB)

在此之前,绝大多数网络二值化方法试图减小二值化操作的量化误差。然而,仅通过最小化量化误差来获得一个良好的二值网络是不够的。因此,Libra-PB设计的关键在于:使用信息熵指标,最大化二值网络前向传播过程中的信息流。

根据信息熵的定义,在二值网络中,二值参数Qx(x)的熵可以通过以下公式计算:

如果单纯地追求量化误差最小化,在极端情况下,量化参数的信息熵甚至可以接近于零。因此,Libra-PB将量化值的量化误差和二值参数的信息熵同时作为优化目标,定义为:

在伯努利分布假设下,当p=0.5时,量化值的信息熵取最大值。

因此,在Libra-PB通过标准化和平衡操作获得标准化平衡权重,如图2所示,在Bernoulli分布下,由Libra-PB量化的参数具有最大的信息熵。有趣的是,对权重的简单变换也可以极大改善前向过程中激活的信息流。因为此时,各层的二值激活值信息熵同样可以最大化,这意味着特征图中信息可以被保留。

在以往的二值化方法中,为了使量化误差减小,几乎所有方法都会引入浮点尺度因子来从数值上逼近原始参数,这无疑将高昂的浮点运算引入其中。在Libra-PB中,为了进一步减小量化误差,同时避免以往二值化方法中代价高昂的浮点运算,Libra-PB引入了整数移位标量s,扩展了二值权重的表示能力。

因此最终,针对正向传播的Libra参数二值化可以表示如下:

IR-Net的主要运算操作可以表示为:

反向传播中的Error Decay Estimator(EDE)

由于二值化的不连续性,梯度的近似对于反向传播是不可避免的,这种对sign函数的近似带来了两种梯度的信息损失,包括截断范围外参数更新能力下降造成的信息损失,和截断范围内近似误差造成的信息损失。为了更好的保留反向传播中由损失函数导出的信息,平衡各训练阶段对于梯度的要求,EDE引入了一种渐进的两阶段近似梯度方法。

第一阶段:保留反向传播算法的更新能力。将梯度估计函数的导数值保持在接近1的水平,然后逐步将截断值从一个大的数字降到1。利用这一规则,近似函数从接近Identity函数演化到Clip函数,从而保证了训练早期的更新能力。

第二阶段:使0附近的参数被更准确地更新。将截断保持为1,并逐渐将导数曲线演变到阶梯函数的形状。利用这一规则,近似函数从Clip函数演变到sign函数,从而保证了前向和反向传播的一致性。

各阶段EDE的形状变化如图3(c)所示。通过该设计,EDE减小了前向二值化函数和后向近似函数之间的差异,同时所有参数都能得到合理的更新。

实验结果

作者使用了两个基准数据集:CIFAR-10和ImageNet(ILSVRC12)进行了实验。在两个数据集上的实验结果表明,IR-Net比现有的最先进方法更具竞争力。

Deployment Efficiency

为了进一步验证IR-Net在实际移动设备中的部署效率,作者在1.2GHz 64位四核ARM Cortex-A53的Raspberry Pi 3B上进一步实现了IR-Net,并在实际应用中测试了其真实速度。表5显示,IR-Net的推理速度要快得多,模型尺寸也大大减小,而且IR-Net中的位移操作几乎不会带来额外的推理时间和存储消耗。

论文地址:https://arxiv.org/abs/1909.10788

项目地址:https://github.com/htqin/IR-Net

Reference

[1] Rastegari M, Ordonez V, Redmon J, et al. Xnor-net: Imagenet classification using binary convolutional neural networks[C]//ECCV. Springer, Cham, 2016: 525-542.

[2] Xie B, Liang Y, Song L. Diverse neural network learns true target functions[J]. arXiv preprint arXiv:1611.03131, 2016.

【End】

推荐阅读 

☞无代码时代来临,程序员如何保住饭碗?

☞不搞虚的!快速把你拉入Docker 的门里 | 原力计划

☞生物学的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?

☞字节跳动武汉招聘 2000 人,距离大厂 Offer,你还差这篇 Java 干货!| 原力计划

☞用Java开发自己的Kubernetes控制器,想试试吗?

☞人人都能读懂的「以太坊2.0分片设计」

你点的每一个在看,我认真当成了喜欢

北航、商汤提出的网络二值化新算法 IR-Net,到底好使不?相关推荐

  1. 高达82 fps的实时文本检测,华科AAAI2020提出可微分二值化模块

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一篇近几天公布的关于实时场景文本检测的论文Real-time Scene Text Detection with Differentiab ...

  2. C#,图像二值化(17)——全局阈值的ISODATA算法(亦称作InterMeans法)及其源程序

    二值算法综述请阅读: C#,图像二值化(01)--二值化算法综述与二十三种算法目录https://blog.csdn.net/beijinghorn/article/details/128425225 ...

  3. 数字图像处理:图像平均/加法_OPT小讲堂 ∣ SciSmart图像增强之二值化

    图像二值化(Image Binarization)简单理解就是通过适当的高低阈值将256个亮度等级的图像转换为二值图.本文中提及的二值图像均指灰度值为0(黑色)或255(白色)的图像. 在数字图像处理 ...

  4. C#,图像二值化(24)——局部阈值算法的NiBlack算法及源程序

    1.局部阈值算法的NiBlack算法 摘要-医学图像的处理最为复杂人和计算机.磁性捐赠的脑组织共振成像(MRI)在许多领域是非常重要的问题例如手术和治疗.最常见的分割图像的最简单方法是使用阈值.在这项 ...

  5. C#,图像二值化(16)——全局阈值的力矩保持算法(Moment-proserving Thresholding)及其源代码

    1.力矩保持法 提出了一种基于矩保持原理的自动阈值选择方法.以这样的方式确定地计算阈值,即在输出画面中保留输入画面的时刻.实验结果表明,该方法可以将给定的图像阈值化为有意义的灰度级.该方法描述了全局阈 ...

  6. C#,图像二值化(22)——局部阈值的伯恩森算法(Bernsen Thresholding)及源程序

    1.局部阈值的伯恩森算法(Bernsen Thresholding) Bernsen方法是为图像分割开发的局部自适应二值化方法之一.在这项研究中,实现了Bernsen的局部自适应二值化方法,并对不同灰 ...

  7. C#,图像二值化(18)——全局阈值的模糊集理论算法(Huang Thresholding)与源程序

    1 模糊集理论 模糊集理论,也称为模糊集合论,或简单地称为模糊集,1965年美国学者扎德在数学上创立了一种描述模糊现象的方法-模糊集合论.这种方法把待考察的对象及反映它的模糊概念作为一定的模糊集合,建 ...

  8. C#,图像二值化(06)——全局阈值的大津算法(OTSU Thresholding)及其源代码

    1.大津算法OTSU ALGORITHM OTSU算法效果很一般. 最大类间方差法是1979年由日本学者大津(Nobuyuki Otsu)提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU, ...

  9. C#,图像二值化(04)——全局阈值的凯勒算法(Kittler Thresholding)及源程序

    1.Kittler算法(最小误差法)概述 最小误差法是 J. Kittler & J. Illingworth 1986年在<MINIMUM ERROR THRESHOLDING> ...

最新文章

  1. 分布式锁的三种实现方式_基于 redis 的分布式锁实现
  2. 拦截httpservlet返回码_设计 API 接口,实现统一格式返回
  3. SQLite编译(How To Compile SQLite)
  4. 多线程,多进程,协程
  5. Boost:构造一个流对象,任何发送到此流将标准输出
  6. ant external lib
  7. xshell下利用SFTP传输文件
  8. eclipse安装一直卡在安装中_Eclipse软件安装包+安装教程
  9. 狗不理是怎样混到狗都不理的?
  10. 算法不会,尚能饭否之对分查找二叉树(又为快速排序之二叉树实现)
  11. 【312天】我爱刷题系列071(2017.12.14)
  12. 中国移动虚拟服务器设置,在中国移动公众服务云平台上服务器虚拟化的设计与实现...
  13. unity头顶状态制作_Unity中结合IK实现Lookat
  14. CentOS_6.x安装VNC_Server
  15. 拓端tecdat|用Python进行图像模糊处理和特征提取
  16. 解决学校版本mac matlab2019b一启动就应用程序无响应的办法
  17. win10熄屏时间不对_浅析win10电脑屏幕熄屏时间设置教程
  18. 抖音短视频教程VIP培训课程(2019实时更新中)
  19. C语言程序设计会员计费系统,C语言课程设计酒店房间登记与计费管理系统总结报告...
  20. 内网穿透工具-venom

热门文章

  1. 关于作业提交要求声明 2017-09-22
  2. 第一章:pip 的安装和使用
  3. 29.奖金(拓扑排序)
  4. Spring攻略学习笔记(13)------继承Bean配置
  5. RedHat中squid简易配置
  6. 典型测试错误(英中文对照)
  7. 百度地图的一个有价值的应用
  8. 【图像融合】评价方法(熵、均方根误差)
  9. 中国半导体蚀刻设备行业市场供需与战略研究报告
  10. 一体化医用电脑推车行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)