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

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

3天内不再提示

离散化架构WAGE,训练推理合二为一

DPVg_AI_era 来源:未知 作者:胡薇 2018-05-20 11:11 次阅读

图 1 吴双(左侧)和李国齐(右侧)- 被录用文章的两位作者

清华大学类脑计算研究中心博士生吴双的论文被 ICLR2018 收录并在会上做口头报告。迄今为止,这是中国作为第一署名单位里唯一一篇被 ICLR 会议收录的口头报告文章。该报告主要探讨如何实现对全离散化深度神经网络进行训练和推理,便于部署到嵌入式设备中。

ICLR 是深度学习领域的顶会,更被誉为深度学习的“无冕之王”,得到了 google, Facebook, DeepMind, Amazon,IBM 等众多高科技公司的高度关注和参与。ICLR2018 于当地时间 2018 年 4 月 30 日在加拿大温哥华会展中心召开,为期 4 天。本次大会的主席是深度学习领域三巨头中的 Yoshua Bengio(蒙特利尔大学)和 Yann LeCun (纽约大学 & Facebook),本次大会收到一千多篇投稿文章,其中仅有 23 篇被收录为本次会议的口头报告文章。

吴双同学的报告题目为 “Training and Inference with Integers in Deep Neural Networks”。

离散化架构 WAGE,训练推理合二为一

该报告主要探讨如何实现对全离散化深度神经网络进行训练和推理,便于部署到嵌入式设备中。

在深度学习领域,高精度意味着大面积、高功耗,从而导致高成本,这背离了嵌入式设备的需求,因此硬件加速器和神经形态芯片往往采用低精度的硬件实现方式。在低精度的算法研究方面,之前的工作主要集中在对前向推理网络的权重值和激活值的缩减,使之可以部署在硬件加速器和神经形态芯片上;而网络的训练还是借助于高精度浮点实现(GPU)。这种训练和推理的分离模式往往导致需要耗费大量的额外精力,对训练好的浮点网络进行低精度转换,这不仅严重影响了神经网络的应用部署,更限制了在应用端的在线改善。

为应对这种情况,本文提出了一种联合的离散化架构 WAGE,首次实现了将离散化神经网络的反向训练过程和前向推理合二为一。具体来说就是将网络权重、激活值、反向误差、权重梯度用全用低精度整形数表达,在网络训练时去掉难以量化的操作及操作数(比如批归一化等),从而实现整个训练流程全部用整数完成。

在数据集实测中,WAGE 的离散化方法能够有效的提高测试精度。由于该方法能够同时满足深度学习加速器和神经形态芯片的低功耗和反向训练需求,更使之具备高效地在线学习的能力,对未来多场景、多目标的可迁移、可持续学习的人工智能应用将大有裨益。

WAGE框架将训练和推理中的所有层中的权重( weights ,W),激活值( activations ,A),梯度( gradients ,G)和误差( errors ,E)限制为低位整数。首先,对于操作数,应用线性映射和方向保持移位来实现三元权重,用于激活和梯度累加的8位整数。其次,对于操作,批归一化由一个常数因子取代。用于微调的其他技术(如具有动量和L2正则化的SGD优化器)可以简化或放弃,性能的下降很小。考虑到整体双向传播,我们完全简化了累积比较周期的推理,并分别训练到具有对齐操作的低位乘法累加(MAC)周期。

所提出的框架在MNIST,CIFAR10,SVHN,ImageNet数据集上进行评估。相对于只在推理时离散权重和激活的框架,WAGE具有可比的准确性,并且可以进一步减轻过拟合。WAGE为DNN生成纯粹的双向低精度整数数据流,可以将其用于专门硬件的训练和推理。我们在GitHub上发布了代码。

图1

图2:WAGE的量化方法

实现细节

MNIST:采用LeNet-5的一个变体。WAGE中的学习率η在整个100个epochs中保持为1。我们报告了测试集上10次运行的平均准确度。

SVHN&CIFAR10:错误率的评估方式与MNIST相同。

ImageNet:使用AlexNe模型在ILSVRC12数据集上评估WAGE框架。

表1:WAGE及其他方法在多个数据集上的测试或验证错误率(%)

图3:训练曲线

结论和未来工作

这项工作的目标是展示在DNN中应用低位整数训练和推理的潜力。与FP16相比,8-bit整数运算不仅会降低IC设计的能耗和面积成本(约5倍,见Table 5),还会减少训练期间内存访问成本和内存大小要求,这将大大有利于具有现场学习能力的的移动设备。这个工作中有一些没有涉及到的点,未来的算法开发和硬件部署还有待改进或解决。

表5

WAGE使DNN的纯低位整数数据流进行训练和推理得以实现。我们引入一种新的初始化方法和分层常数比例因子来取代批归一化,这是网络量化的一个难点。此外,还探讨了误差计算和梯度累积的位宽要求。实验表明,我们可以量化梯度的相对值,并且在反向传播中丢弃大多数小值及其数量级。虽然为了稳定收敛和最终的精度,权重更新的积累是必不可少的,但仍然可以在训练中进一步减少压缩和内存消耗。WAGE在多个数据集实现了最高精度。通过微调、更有效的映射、批归一化等量化方法,对增量工作有一定的应用前景。总而言之,我们提出了一个没有浮点表示的框架,并展示了在基于整数的轻量级ASIC或具有现场学习能力的FPGA上实现离散训练和推理的潜力。

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

    关注

    42

    文章

    4562

    浏览量

    98643
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4402

    浏览量

    126562

原文标题:ICLR oral:清华提出离散化架构WAGE,神经网络训练推理合二为一

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何把两个电路合二为一

    大家好求助 本人做了两个arduino回路。 word 里面,左边的是控制电机左右转动的。右边是通过滑动变阻器控制电机转速的。 想把两个电路合二为一。 程序上的编写 请给位给予建议
    发表于 08-23 05:55

    模拟技术与数字技术怎样才能合二为一 电子资料

    模拟技术与数字技术怎样才能合二为一,还是数字技术替代模拟技术?作为般应用的话,的确可以区分开模拟和数字系统。但是在尖端领域,你很难区分他们的。比如,高速数字电路板要考虑的敷铜阻抗和信号反射问题。
    发表于 04-21 06:14

    Matlab中使用S函数实现离散数值计算的问题有哪些

    关于Matlab中使用S函数实现离散数值计算的问题求助,现在我想使用S函数写个永磁同步电机dq轴坐标系下的离散数学模型,使用改进欧拉法
    发表于 08-27 07:00

    用tflite接口调用tensorflow模型进行推理

    摘要本文系列博客tensorflow模型部署系列的部分,用于实现通用模型的部署。本文主要实现用tflite接口调用tensorflow模型进行推理。相关源码见链接引言本文系列博客
    发表于 12-22 06:51

    图像预处理和改进神经网络推理的简要介绍

    提升识别准确率,采用改进神经网络,通过Mnist数据集进行训练。整体处理过程分为两步:图像预处理和改进神经网络推理。图像预处理主要根据图像的特征,将数据处理成规范的格式,而改进神经网络推理
    发表于 12-23 08:07

    深度剖析OpenHarmony AI调度管理与推理接口

    ,基于NCNN、MNN、Paddlelite多种常用端侧推理框架进行了接口的统。图1 AI推理任务管理与统一推理接口架构图各模块介绍:任务
    发表于 03-25 11:15

    神经网络在训练时常用的些损失函数介绍

    简单的MLP模型,使用SGD优化,学习率0.01,动量0.99。模型训练200轮进行拟合,并根据损失和准确性评估模型的性能。BCEBCE是用于解决的元分类问题默认损失函数。在最大
    发表于 10-20 17:14

    探索种降低ViT模型训练成本的方法

    效的专用硬件或更高效的数据表示,如半精度。另种正交方法是开发更有效的算法。在本文中,重点讨论第种方法。已经开发了许多方法(例如剪枝)来降低推理成本,但数量有限的工作正在探索降低训练
    发表于 11-24 14:56

    pytorch模型转为rknn后没有推理结果

    模型输入[1, 24, 100, 5]输出[3]目标平台rk3566我通过训练时得到的.pth保存模型参数并加载模型转为.pt文件模型中大部分都是2d的Conv层+leakyRe
    发表于 01-11 18:45

    如何用PyArmNN加速树莓派上的ML推理

    NN推理引擎构建个示例应用程序,将图像分类火或非火。 本指南使用Raspberry Pi 3或4设备。树莓派设备是由Arm CPU驱动的 霓虹灯的架构。Neon是针对Arm处理器
    发表于 08-02 15:40

    如何提高YOLOv4模型的推理性能?

    使用 PyTorch 对具有非方形图像的 YOLOv4 模型进行了训练。 将 权重转换为 ONNX 文件,然后转换为中间表示 (IR)。 无法确定如何获得更好的推理性能。
    发表于 08-15 06:58

    爆了!GPT-4模型架构训练成本、数据集信息都被扒出来了

    文章称,他们从许多来源收集了大量有关 GPT-4 的信息,包括模型架构训练基础设施、推理基础设施、参数量、训练数据集组成、token 量、层数、并行策略、多模态视觉适应、不同工程权衡
    的头像 发表于 07-12 14:16 438次阅读
    爆了!GPT-4模型<b class='flag-5'>架构</b>、<b class='flag-5'>训练</b>成本、数据集信息都被扒出来了

    RetNet架构和Transformer架构对比分析

    微软研究院最近提出了一个新的 LLM 自回归基础架构 Retentive Networks (RetNet)[1,4],该架构相对于 Transformer 架构的优势是同时具备:训练
    发表于 07-26 10:44 961次阅读
    RetNet<b class='flag-5'>架构</b>和Transformer<b class='flag-5'>架构</b>对比分析

    深度学习框架区分训练还是推理

    深度学习框架区分训练还是推理吗 深度学习框架是一个非常重要的技术,它们能够加速深度学习的开发与部署过程。在深度学习中,我们通常需要进行两个关键的任务,即训练推理
    的头像 发表于 08-17 16:03 1022次阅读

    AI推理框架软件ONNX Runtime正式支持龙架构

    近日,知名AI推理框架开源社区ONNX Runtime正式发布支持龙架构的版本1.17.0。
    的头像 发表于 03-12 12:23 257次阅读
    AI<b class='flag-5'>推理</b>框架软件ONNX Runtime正式支持龙<b class='flag-5'>架构</b>