CN112840358A - 用于深度神经网络的基于光标的自适应量化 - Google Patents

用于深度神经网络的基于光标的自适应量化 Download PDF

Info

Publication number
CN112840358A
CN112840358A CN201980060253.9A CN201980060253A CN112840358A CN 112840358 A CN112840358 A CN 112840358A CN 201980060253 A CN201980060253 A CN 201980060253A CN 112840358 A CN112840358 A CN 112840358A
Authority
CN
China
Prior art keywords
neural network
cursor
parameter values
layer
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980060253.9A
Other languages
English (en)
Other versions
CN112840358B (zh
Inventor
李抱朴
范彦文
程治宇
包英泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu com Times Technology Beijing Co Ltd
Baidu USA LLC
Original Assignee
Baidu com Times Technology Beijing Co Ltd
Baidu USA LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu com Times Technology Beijing Co Ltd, Baidu USA LLC filed Critical Baidu com Times Technology Beijing Co Ltd
Publication of CN112840358A publication Critical patent/CN112840358A/zh
Application granted granted Critical
Publication of CN112840358B publication Critical patent/CN112840358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

深度神经网络(DNN)模型量化可以用于通过减小位宽来减少存储和计算负担。一种用于神经网络的基于光标的自适应量化方法,多位量化机制被公式化为具有代表可能量化位的连续光标的可微架构搜索(DAS)过程。基于光标的DAS自适应地为每个层搜索量化位。DAS过程可以经由为DNN模型的混合量化方案设计的替代性近似优化过程来加速。在搜索过程中使用新的损失函数来同时优化模型的准确度和参数大小。在量化步骤中,可以采用与光标最接近的两个整数作为位来一起量化DNN以减少量化噪声并避免局部收敛问题。

Description

用于深度神经网络的基于光标的自适应量化
技术领域
本公开大体上涉及用于计算机学习的系统和方法,其可以提供改进的计算机性能、特征和用途。更明确地说,本公开涉及用于有效减小深度神经网络存储器大小的系统和方法。
背景技术
深度学习(DL)已经在诸如游戏、自然语言处理、语音识别、计算机视觉等各种领域取得了很大成功。然而,其巨大计算负担和大量存储器消耗仍然限制了许多潜在应用,尤其是对于移动装置和嵌入式系统来说。
已经投入了许多努力来压缩DL模型的大小并加速其训练和测试速度。这些努力可以大致分为四大类:网络修剪、低秩近似、知识蒸馏和网络量化。其中,网络量化方法以低位(诸如8位或者甚至1位)联合优化整个网络的权重、激活或梯度,在压缩模型大小和加速推理时间方面显示出很大潜力。此外,基于量化的方法对于移动装置和嵌入式系统是优选的,因为这些装置逐渐由专门设计的低位计算硬件来装备。此外,使用量化表示,神经网络的一些操作可以通过逐位操作来实现,从而导致少得多的能量消耗。
虽然现有的基于量化的方法(主要使用固定位方案来表示整个DNN模型)在保持模型性能的同时产生了一些鼓舞人心的压缩比,但是简单地仅使用固定位进行量化可能不是在模型大小与其性能之间进行权衡的最佳选择。
因此,需要用于神经网络模型压缩的改进量化的系统和方法。
发明内容
在第一方面,提供了一种用于减小神经网络的存储器大小的计算机实现方法。神经网络包括多个层,方法包括:响应于没有达到停止条件,执行包括以下各项的步骤:将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到神经网络中以获得训练数据输出;给定来自神经网络的训练数据输出和损失函数,确定神经网络的训练数据损失,损失函数包括与神经网络的预测准确度相关的损失分量和与在量化之后的神经网络的参数值的存储器大小相关的压缩分量;使用训练数据损失更新神经网络的参数值中的至少一些;将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到神经网络中以获得验证数据输出;给定来自神经网络的验证数据输出和损失函数,确定神经网络的验证数据损失;使用验证数据损失更新神经网络的层中的至少一些的光标值,其中神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及针对层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化神经网络的该层的参数值,经过量化的参数值用于确定损失函数的压缩分量;以及响应于达到停止条件:输出神经网络的层中的至少一些的最终光标值,其中神经网络的层的最终光标值是用于表示神经网络的该层的参数值的位大小;以及输出神经网络的一组参数值。
在第二方面,提供了一种系统。系统包括:一个或多个处理器;以及存储一个或多个指令序列的非暂时性计算机可读介质或媒介,当一个或多个指令序列由一个或多个处理器中的至少一者执行时,致使执行包括以下各项的步骤:响应于没有达到停止条件,执行包括以下各项的步骤:将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到神经网络中以获得训练数据输出;给定来自神经网络的训练数据输出和损失函数,确定神经网络的训练数据损失,损失函数包括与神经网络的预测准确度相关的损失分量和与在量化之后的神经网络的参数值的存储器大小相关的压缩分量;使用训练数据损失更新神经网络的参数值中的至少一些;将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到神经网络中以获得验证数据输出;给定来自神经网络的验证数据输出和损失函数,确定神经网络的验证数据损失;使用验证数据损失更新神经网络的层中的至少一些的光标值,其中神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及针对层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化神经网络的该层的参数值,经过量化的参数值用于确定损失函数的压缩分量;以及响应于达到停止条件:输出神经网络的层中的至少一些的最终光标值,其中神经网络的层的最终光标值是用于表示神经网络的该层的参数值的位大小;以及输出神经网络的一组参数值。
在第三方面,提供了一种存储一个或多个指令序列的非暂时性计算机可读介质或媒介。指令序列在由一个或多个处理器执行时致使执行包括以下各项的步骤:响应于没有达到停止条件,执行包括以下各项的步骤:将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到神经网络中以获得训练数据输出;给定来自神经网络的训练数据输出和损失函数,确定神经网络的训练数据损失,损失函数包括与神经网络的预测准确度相关的损失分量和与在量化之后的神经网络的参数值的存储器大小相关的压缩分量;使用训练数据损失更新神经网络的参数值中的至少一些;将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到神经网络中以获得验证数据输出;给定来自神经网络的验证数据输出和损失函数,确定神经网络的验证数据损失;使用验证数据损失更新神经网络的层中的至少一些的光标值,其中神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及针对层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化神经网络的该层的参数值,经过量化的参数值用于确定损失函数的压缩分量;以及响应于达到停止条件:输出神经网络的层中的至少一些的最终光标值,其中神经网络的层的最终光标值是用于表示神经网络的该层的参数值的位大小;以及输出神经网络的一组参数值。
附图说明
将参考本发明的实施方式,它们的示例可示于附图中。这些附图旨在是说明性的而非限制性的。虽然本发明大体上在这些实施方式的上下文中描述,但应理解,本发明的范围并不旨在限于这些特定实施方式。附图中的项目可未按比例绘制。
图1描绘了根据本公开的实施例的用于神经网络的基于光标的自适应量化方法。
图2描绘了根据本公开的实施例的量化方法。
图3描绘了根据本公开的实施例的不同量化方案的损失变化。
图4描绘了根据本公开的实施例的用于在CIFAR100数据上的ResNet20实现的自适应光标搜索过程的结果。
图5描绘了根据本公开的实施例的用于在CIFAR10数据上的MobileNetV2实现的自适应光标搜索过程的结果。
图6描绘了根据本公开的实施例的计算装置/信息处理系统的简化框图。
具体实施方式
在以下描述中,出于解释目的,阐明具体细节以便提供对本公开的理解。然而,将对本领域的技术人员显而易见的是,可在没有这些细节的情况下实践本公开。此外,本领域的技术人员将认识到,下文描述的本公开的实施方式可以以各种方式(例如过程、装置、系统、设备或方法)在有形的计算机可读介质或媒介上实施。
附图中示出的组件或模块是本公开实施方式的示例性说明,并且意图避免使本公开不清楚。还应理解,在本论述的全文中,组件可描述为单独的功能单元(可包括子单元),但是本领域的技术人员将认识到,各种组件或其部分可划分成单独组件,或者可整合在一起(包括整合在单个的系统或组件内)。应注意,本文论述的功能或操作可实施为组件。组件可以以软件、硬件、或它们的组合实施。
此外,组件或系统之间的连接并不旨在限于直接连接。相反,在这些组件之间的数据可由中间组件修改、重格式化、或以其它方式改变。另外,可使用另外或更少的连接。还应注意,术语“联接”、“连接”、或“通信地联接”应理解为包括直接连接、通过一个或多个中间设备来进行的间接连接、和无线连接。
在本说明书中对“一个实施方式”、“优选实施方式”、“实施方式”或“多个实施方式”的照应语表示结合实施方式所描述的具体特征、结构、特性或功能包括在本公开的至少一个实施方式中,以及可包括在多于一个的实施方式中。另外,在本说明书的各个地方出现以上所提到的短语并不一定全都是指相同的实施方式或多个相同实施方式。
在本说明书的各个地方使用某些术语目的在于说明,并且不应被理解为限制。服务、功能或资源并不限于单个服务、单个功能或单个资源;这些术语的使用可指代相关服务、功能或资源的可分布或聚合的分组。
术语“包括”、“包括有”、“包含”和“包含有”应理解为开放性的术语,并且其后任何列出内容都是实例,而不旨在限于所列项目。“层”可包括一个或多个操作。
本文使用的任何标题仅用于组织目的,并且不应当用于限制说明书或权利要求书的范围。在本专利文件中提到的每个参考文献/文件的全部内容都以引用的方式并入本文中。
此外,本领域的技术人员应当认识到:(1)可以任选地执行某些步骤;(2)步骤可以不限于本文所陈述的特定次序;(3)可以按不同次序执行某些步骤;以及(4)可以同时进行某些步骤。
应当注意,本文提供的任何实验和结果都是以说明的方式提供的,并且是在特定条件下使用一个或多个特定实施例来执行的;因此,这些实验及其结果都不应当用于限制当前专利文件的公开内容的范围。
A.概要介绍
如上所述,简单地仅使用单个固定位进行量化可能不是在模型大小与其性能之间进行权衡的最佳选择。例如,为了在具有严格存储器限制的芯片上运行模型,1位或2位量化会遭受严重的准确度损失,而16位或8位量化往往不会显著减小模型的存储器大小。
为了解决上述问题,本文呈现基于光标的自适应量化方法的实施例来导出不同层中的多个位以进行DNN模型压缩;也就是说,对神经网络模型中的不同层的不同位量化的最佳配置执行搜索。与大多数其他算法不同,本文的实施例受最近的神经架构搜索(NAS)启发,所述神经架构搜索(NAS)旨在自动找到具有更少计算或更小大小的更好性能的神经架构。本文方法的实施例中的一个关键是针对每个层使用代表位量化方案的连续光标。针对不同层,在NAS过程期间将会同时自适应地搜索许多光标。由于光标本身是连续的并且整个搜索过程可以被认为是可微架构搜索(DAS)过程,因此所述过程可以基于替代性优化策略来有效地解决。在一个或多个实施例中,可以在DAS过程中使用考虑模型压缩和预测准确度的新颖成本函数。在搜索光标之后,可以应用量化过程来压缩模型大小。为了减少可能的量化噪声和局部收敛问题,在一个或多个实施例中,所述方法利用离光标最近的两个整数位来量化DNN模型中的每个层的权重。实施例已经使用在CIFAR10和CIFAR100数据集上的图像分类任务进行了验证。在一些主干DNN模型上的综合实验表明,基于光标的量化方法的实施例实现了显著更好的压缩比性能,并且具有可忽略的准确度下降或者甚至更好的准确度。
总的来说,这项工作的一些贡献包括:
1.将神经网络的自适应量化归结为神经架构搜索问题。本文呈现了连续光标方案的实施例以表示可能的量化位,从而导致更有效的搜索空间。
2.本文呈现了新颖正则化函数的实施例以优化搜索过程中的模型压缩。因此,对光标位置和权重的搜索可以用替代性优化方式有效地解决。
3.在一个或多个实施例中,对于一个层,采用与光标最近的两个相邻整数,使用精心设计的策略来实现网络的量化,以减少量化噪声并避免可能的局部收敛。
4.本文呈现的自适应量化方法的实施例是在一些基准数据集上进行评估的,并且实现了神经网络的多位量化的新的最先进性能。
B.相关工作
量化在DNN模型压缩中起着重要作用。最近,已经提出了许多量化方法,使得经过量化的压缩模型能够与其全精度对应物相对较好地竞争。一些量化方法应用矢量量化来压缩神经网络,通过将权重聚类成群组并利用这些群组的中心来表示推理过程中的权重。后来,其他量化方法还对他们的码本表示应用聚类方法,接着重新训练网络以获得更好的量化质心。还有一些量化方法联合训练了DNN及其相关联量化器以减少量化模型与其全精度模型之间的明显预测准确度差距。已经介绍了一种直接可微量化方法,所述方法具有某个有前途的测试准确度。还已经提出了一种采用激活限幅参数的新激活量化方法以确保合适的量化尺度。
还已经对针对不同层使用多个位量化神经网络进行了一些努力。一些努力已经对层权重应用了信号量化噪声比(SQNR)来评估量化误差的影响。基于SQNR,针对每个层的量化使用不同的位,在其测试中产生大约20%的模型大小减小而没有准确度损失。一些努力首先提出了自动化混合精度量化方案,通过应用强化学习(RL)技术以获得不同硬件(诸如边缘和云)的更好等待时间;他们声称,其行为-评判模型产生了高效动作,所述动作导致了更好的等待时间和更少的能量消耗而准确度损失可以忽略不计。还有一些努力从理论上研究了不同层的量化选择与整个DNN性能之间的关系。还设计了描述参数量化误差对整体预测准确度的影响的模型。
在过去几年中,已经针对网络设计出现了一个新趋势,即,神经架构搜索(NAS)。基于RL的方法首先被用来生成具有高准确度的网络,并且其同时也为后续工作奠定了坚实的基础。接着,进一步应用基于演进的方法来在大搜索空间中获得可能的最优解。这两种方法都倾向于产生大量计算负担,因为NAS被视为离散域中的黑盒优化问题,产生大量架构评估,并且因此即使在最先进的GPU(图形处理器单元)机器上运行也非常慢。为了缓解这个问题,一些努力提出了一种可微方法,通过放宽在单元级结构上的可能操作来加速良好神经网络的搜索,诸如可微架构搜索(DART)。其他努力最近提出了新的方法,通过基于超级网络模型应用可微NAS(DNAS)方法来为不同层找到混合位,超级网络模型是一种有向非循环图。他们将量化视为随机超级网络上的取样问题。并且,应用Gumbel softmax函数来放宽取样过程可微性。
在一个或多个实施例中,用于DNN的多位量化可以被归结为基于光标的自适应架构搜索问题,这不同于传统的直接量化工作和上述基于学习的混合位量化方法。此外,本文论述的实施例在方法本身上也不同于DART和DNAS。本文设计的基于光标的搜索实施例可以被认为是由NAS启发的,但是其不像在DART和DNAS中那样需要额外放宽,以及其他差异。本文提供了关于与DART和DNAS的区别的更多细节。
C.基于光标的自适应量化实施例
在本章节中,简要地呈现NAS的一些基本概念,然后介绍在从NAS的角度思考使用不同位进行量化的情况下的量化问题的搜索空间。随后呈现用于自适应量化的可微光标搜索方法实施例。最后,呈现具有两个最接近整数的量化网络训练的实施例。
1.神经架构搜索实施例
众所周知,DNN模型通常需要大量时间来设计其结构并微调所有相关的关键参数,诸如学习速率、动量、权重衰减等。因此,非常需要神经网络架构工程设计。神经架构搜索(NAS)最近成为用于克服上述问题的流行方法。其通过考虑所有可能因素(诸如层数、每个层的宽度、每个层中的不同算子等)来自动设计神经网络的最优架构。两个关键概念与NAS过程直接相关,即,搜索空间和搜索策略。影响网络结构的主要因素的所有可能组合构成了搜索空间,其可能影响DNN的可能性能限制。通常,DNN的搜索空间非常大,即使对于典型的网络,诸如Resnet20,也会导致巨大的计算任务。因此,先前的NAS工作改为首先设计正常和简化的单元,其中将NAS应用于不同的可能操作类型以找到最佳操作类型。然后,重复这种主题来构建最终网络结构。另外一个定义是关于搜索策略的,也就是在这么大的搜索空间中如何横穿。对于每个搜索到的网络结构,评估其性能。典型的搜索方法是随机搜索;然而,其效率并不理想。
2.量化问题的搜索空间
量化也是过去几年非常热门的研究课题。舍入函数、矢量量化或随机函数通常应用于实现量化以压缩模型大小,同时维持同等性能或可接受的损失。一些其他方法还使用随机或概率方法来量化神经网络。由于实现简单,大多数先前方法简单地将一种位量化应用于整个网络。一些最近的工作开始利用不同的位量化方案来进一步改进压缩比和预测准确度。
如果量化选择被认为是神经架构的一部分,则可以估计其对应搜索空间。以ResNet20为例;如果决定用可能的位宽1、2、4、8、16、32来量化神经网络,那么用于ResNet20的所有可能量化选择将是620个。在NAS的上下文中,这对于搜索空间来说是一个非常大的数字。因此,逐一评估这么多设计似乎不可行。事实上,如何设计一种高效的搜索方法仍然非常具有挑战性。
3.自适应量化实施例的可微光标搜索
上述量化方案的离散搜索空间非常大。如果每个层的可能位被认为是在[0,32]范围内的连续光标,则光标成为神经网络模型的架构的重要部分,并且光标的搜索是自适应的。如果假设DNN具有N层,每个层可以具有不同的光标值c1、c2、…cN,连同其WC权重,则其中一个目标演变成如何在预测准确度和压缩率方面找出c1、c2、…cN的良好组合。因此,对于整个神经网络来说,其可以被描述为优化问题,所述优化问题通过使训练数据的损失最小化来使在训练之后的验证数据的损失最小化,如下:
Min E(x′,y′)~Dv(Loss(C,Wc))
Figure BDA0002976246280000101
其中C表示光标向量,
Figure BDA0002976246280000102
是C的最佳权重并获得最佳训练准确度,Loss(C,Wc)是基于光标的损失函数,并且C、DT和Dv条件下的权重分别表示训练和验证数据集,(x,y)和(x′,y′)意指来自训练和验证数据集的数据。为了考虑预测准确度和模型大小两者,在一个或多个实施例中,损失函数可以被设计为交叉熵与参数压缩的组合。
Loss(C,Wc)=CrossEntropy(C,Wc)+λLossQ (2)
其中CrossEntropy(C,Wc)是机器学习领域中广泛使用的交叉熵函数,编码模型的预测准确度。在一个或多个实施例中,正则化项被添加到损失函数,因为正则化可以帮助减少过拟合。另外,其还可以加快收敛过程。关于与LossQ相关的损失,重点在于在量化之后和在量化之前的权重大小的压缩。因此,在一个或多个实施例中,其是以等式(3)的形式构思的,并且λ是控制准确度与压缩的权衡的正则化系数。
上述过程是一个双层优化问题,其可能涉及推导高阶导数并且可能很难得到精确解。可以改为应用近似迭代解,因此实施例替代地在权重和光标空间中采用优化策略以基于来自DV的验证损失来更新C并且基于来自DT的训练损失来更新W。通过使用替代性近似方法来解决这个双层优化问题,可以通过基于梯度的优化方法(诸如Adam)来有效地搜索光标。本文的实验结果还表明,所述替代性优化方法产生具有高压缩比和准确度的良好解。与原始的离散搜索空间相比,这种搜索方法由于连续光标设计和直接基于梯度的优化方法而更加高效。基于W和C的替代性优化的用于自适应量化的整个可微光标搜索的实施例在以下流水线中示出:
方法1:用于自适应量化的可微光标搜索
输入:训练集DT和验证集DV
初始化的C,W,和批次大小n
当未达到目标历元或者没有收敛进行
从训练数据DT采样数据
用公式(2)计算训练数据的损失LT
由梯度下降
Figure BDA0002976246280000112
来更新W
从验证数据DV采样数据
用公式(2)计算验证数据的损失Lv
由梯度下降
Figure BDA0002976246280000111
来更新光标C
使用与搜索的光标最接近的两个整数来量化网络
结束当
应当强调的是,我们提出的基于光标的可微搜索的实施例至少在以下三个方面不同于可微架构搜索(DART)。首先,DART方法将每个层中的可能操作视为基元操作的混合。在一个或多个实施例中,我们直接利用光标来表示每个层的量化位,在整个搜索算法中不存在混合操作。其次,在DART中,通过softmax函数为每个基元操作指派一个概率。在一个或多个实施例中,基于光标的搜索被无概率地直接优化。第三,DART方法集中于单元结构,但是在一个或多个实施例中,DAS直接应用于整个网络。与可微神经架构搜索(DNAS)相比,本文实施例还是有区别的。对于DNAS来说,DNAS作者首先建立随机超级网络来描述所有可能的量化选择,接着在超级网络的每个层中应用具有Gumbel softmax函数的取样步骤,所述函数使得离散分布是连续的且可微的。在一个或多个实施例中,基于光标的可微搜索实施例在流水线中没有超级网络或取样过程。简单地说,所提出的方法实施例不再像在DART和DNAS方法中那样需要放宽。
4.量化网络训练实施例
针对DNN量化,应当应用代表位的光标来量化权重层。遗憾的是,在一个或多个实施例中,在搜索期间获得的光标是分数,其不能直接用于量化。在实施例中,光标可以被舍入到其在一定距离处的相邻整数。然而,如果选择了相当远的位,则这种方法可能会导致量化误差。另一个实施例涉及将光标直接舍入到其最接近的整数。然而,如果直接将光标舍入到其最接近的整数,则其可能无法有效地表示光标的变化。例如,如果用于同一层中的不同历元的光标1和光标2分别为2.6和2.8,则它们将被舍入到相同的整数3,从而在实现量化时不会改变这个层的权重大小。此外,在整个搜索过程中,这种整数选择可能会导致局部收敛,因为一个整数量化的迭代过程可能会陷入光标搜索的局部最小区域。为了减轻上述两个问题,在又一个实施例中,实施例在搜索训练过程中同时利用最接近的下限和上限整数。与直接使用最近邻进行量化相比,上限和下限整数可以通过这两个界限的加权汇总来近似光标实际位置,从而更好地表示连续光标。此外,它们可能会在描述压缩效果的损失函数中产生更多变化,从而产生有效的梯度变化以更有效地更新光标。随后的实验还表明,与简单地对搜索到的光标应用舍入函数相比,这种设计可以获得更好的量化性能。因此,基于光标的可微搜索中的损失函数可以如下设计:
Figure BDA0002976246280000131
其中γ是决定整个正则化器的重要性的系数。
当针对每个层实现量化时,在一个或多个实施例中,可以基于所获得的两个整数针对每个层使用以下量化:
Figure BDA0002976246280000132
其中w表示模型的全精度权重,并且Qk(*)是k位量化函数,其将连续值x∈[0,1]转换为k位输出y∈[0,1],如下:
Figure BDA0002976246280000133
换句话说,在量化过程中,在每个层中搜索到c的可能量化位之后,其对应的两个最近邻整数A1和A2将被应用于等式(4)来量化网络以获得等式(3)中的大小变化。
在神经网络前向过程中,基于光标的下限和上限整数A1和A2,两个系数D1和D2可以如下定义:
D1=1-(ci-A1)
D2=1-(A2-ci) (5)
其中ci表示在DNN的第i层中由本文描述的自适应方法的实施例搜索的光标。然后,前向过程中的输出可以用以下等式来描述:
f=D1*(Conv(X,W1)+D2*Conv(X*W2)) (6)
其中W1和W2是在使用A1和A2进行量化之后的权重,Conv是卷积运算,并且X是输入数据。
而对于等式(3)中的大小损失的计算,在一个或多个实施例中,层存储器大小可以如下确定:
layer_size=layer_base_size*(D1*A1+D2*A2) (7)
其中layer_base_size在针对参数大小计算由1位表示时被定义为层的大小,并且总损失可以通过作为每个层中的损失的总和来获得。在后向过程中,可以在其全精度对应物上应用梯度。在近似替代性优化方法收敛或达到目标历元数目之后,可以通过对每个光标应用舍入操作进行推断来获得每个层中的最终量化位。应当注意,在整个过程中可能存在一些量化误差,这也是为什么在一个或多个实施例中可以在搜索过程之后微调量化DNN的权重。
图1描绘了根据本公开的实施例的用于神经网络的基于光标的自适应量化方法。用于减小包括多个层的神经网络的存储器大小的方法可以通过初始化(105)神经网络模型的至少一些层的一个或多个光标值、神经网络的参数值和批次大小来开始。在一个或多个实施例中,参数值可以被随机化,并且光标值可以被设置为中间范围值(例如,在1位到8位范围内,光标值可以被初始化为4位)。
响应于没有达到停止条件,可以迭代一组步骤。在一个或多个实施例中,停止条件可以是多次迭代、多个历元、收敛(例如,连续迭代之间的损失/误差差值低于阈值)、发散/不收敛(例如,连续迭代没有改进或者发生恶化)、设定的时间量或机器学习应用或一般编程中常用的其他停止条件。在一个或多个实施例中,迭代可以通过将训练数据批次输入(110)到神经网络中以获得训练数据输出来开始。在一个或多个实施例中,训练数据批次可以从训练数据集随机取样,所述训练数据集包括输入数据和对应地面真值数据。给定来自训练数据批次的神经网络的输出,给定训练数据输出和损失函数,可以确定(115)神经网络的训练数据损失,所述损失函数包括与神经网络的预测准确度相关的损失分量和与在量化之后的神经网络的参数值的存储器大小相关的压缩分量。在一个或多个实施例中,损失函数可以是诸如等式(2)的函数。给定损失,可以使用训练数据损失来更新(120)神经网络的至少一些参数值。例如,在实施例中,可以使用梯度下降来更新参数值。
如图1所示,接下来的步骤包括将验证数据批次输入(125)到神经网络(其可以是经过更新的神经网络)中以获得验证数据输出。像训练数据批次一样,验证数据批次可以从验证数据集随机取样,所述验证数据集包括输入数据和对应地面真值数据。在一个或多个实施例中,给定来自神经网络的验证数据输出和损失函数,可以确定(130)神经网络的验证数据损失。给定来自验证数据批次的神经网络的输出,使用验证数据损失来更新(135)神经网络的至少一些层的光标值。层的光标值与用于表示层的参数值的存储器大小相关;并且在实施例中,在这个阶段处,它可以是连续的(即,非整数值)。因为在一个或多个实施例中,光标值在实施例中是连续值,所以对于至少一些层中的每个层,量化(140)神经网络的层的参数值可以涉及使用界定那个层的光标值的两个整数。如上所述,可以使用连续光标值的任一侧上的最接近的两个整数。例如,给定层的光标值3.81,上下整数光标值分别为4和3。应当注意,已经量化了至少一些参数值,这些值可以用于确定等式(2)的损失函数的压缩分量(例如,LossQ或λLossQ)。图2描绘了根据本公开的实施例的与确定损失函数的压缩元素相关的方法。
如图2所描绘,量化和确定由于量化引起的压缩可以包括针对层的光标值,识别(205)上限整数值和下限整数值,其中上限整数值和下限整数值是两个最接近的整数值,这两个整数值界定光标值并且表示用于表示所述层的参数值的存储器位大小。接着,那个层的参数值可以被量化(210)为上限参数值集,其中参数值具有上限整数值的最大位大小,并且量化为下限参数值集,其中参数值具有下限整数值的最大位大小。虽然本文测试的实施例使用了如上相对于等式(4)所述的量化方法,但是在一个或多个实施例中,可以采用许多已知量化方法中的任一者。针对具有光标值的每个层执行上述步骤,并且给定量化参数值,可以为损失函数计算(215)压缩分量。在一个或多个实施例中,不是每个层都被量化。例如,在一个或多个实施例中,神经网络的第一层、神经网络的最后一层或两者都可以不被量化(并且因此,可以不具有对应光标值)。如上所述,在一个或多个实施例中,量化参数值的大小可以被计算为每个层的总和,其中层的参数大小可以是来自上限参数值集和下限参数值集的层的参数大小的融合(诸如加权融合)。
回到图1,响应于已经达到停止条件,可以输出(150)神经网络的最终光标值,并且还可以输出神经网络的最终参数值集。在一个或多个实施例中,对于来自最终迭代的不是整数值的每个光标值,其可以被舍入(例如,向下舍入、向上舍入或典型舍入)到整数值。在一个或多个实施例中,经过舍入的光标值可以用于量化参数值以获得神经网络的最终参数值集。
最后,在一个或多个实施例中,可以执行微调操作来调整最终参数值集中的至少一些参数值。例如,可以执行后续训练来微调参数值。
D.实验
在本章节中,展示了验证实施例性能的结果。首先呈现使用一个整数量化和上一章节提到的两个整数量化的训练损失比较,然后是搜索过程本身和正则化系数分析。在本章节的末尾呈现在一些基准数据集上的比较实验结果。
应当注意,这些实验和结果是以说明方式提供的,并且是在特定条件下使用一个或多个特定实施例执行的;因此,这些实验及其结果都不应当用于限制当前专利文件的公开内容的范围。
这些代码是用PyTorch实现的,并且Nvidia TiTanX被用来执行所有测试。由于已经提到使用16位,神经网络的性能几乎没有损失,因此本文的测试集中在多个低位的可能应用,即,应用1、2、3、4、5、6、7、8位作为每个层的可能量化位宽来测试实施例的可行性。在测试中,量化应用于权重,并且使用全精度激活。然而,应当注意,在实施例中,本文的方法可以扩展到激活。此外,遵循DNN量化领域的传统以避免模型中的第一层和最后一层的量化。
在所有实验中,ResNet20或MobileNetV2的实现被用作主干模型。应当注意的是,这两种模型优选应当被预先训练以首先获得浮点模型。对于每个层的光标的初始化,为了迭代的方便,其全部被设置了4位。当通过所测试的方法实施例来获得光标时,可以从零开始进一步训练模型以获得其最终准确度,这是NAS和量化领域中的实用传统。
至于等式(2)中的参数λ以及等式(3)中的量化损失中的参数γ,经过多次试验,一组极优参数被选择为(0.25,0.3)。实验中还研究了λ的影响以表明在大多数情况下,如果λ处于λ>=0.1的较大区间,则基于光标的自适应量化方案对其变化是稳健的。关于权重和光标的学习速率进度,应用余弦退火法对其进行调整。其最小学习速率分别为0.001和0.0001。
1.训练损失比较
为了展示使用最接近光标的两个整数界限的量化方法的有效性,首先通过将其与仅使用光标的一个最近整数进行比较来实现搜索过程。对其损失进行分析以展示训练过程的巨大差异。
这里,在CIFAR-10数据集上应用ResNet20实现来演示优化过程。为了说明的目的,描绘了一个历元中的迭代过程的部分损失变化。如图3所示,底部曲线305表示使用一个最近整数来实现量化的训练损失,而顶部线310表示通过使用通过所提出的方法实施例搜索的与光标最近的两个相邻整数获得的损失。这两个测试的主要区别在于量化选择。事实上,对于一个整数量化方案,还尝试了一些其他参数和随机初始化,并且找到了类似的曲线。显然,对于收敛过程来说,顶部线310看起来更加平滑并且更加自然。底部曲线损失305可能改为导致光标卡在局部最小区域的可能性很大。事实上,通过一个邻数方案获得的光标值往往在一些历元的迭代之后对于所有层都为1位。一个整数量化方案为什么失败的原因可能是因为在大多数情况下,一个层中的权重跨越相当小的范围,一个较低整数量化可能在训练过程中在权重上导致相同量化结果。此类相同量化结果进一步在反向梯度过程中几乎不产生变化,这对于最优光标搜索是不利的。另一方面,所设计的两个整数量化过程可以将光标映射到两个不同整数值,从而即使权重在相当小的值范围内,也能导致有效的损失变化。
2.搜索过程分析
为了获得对所测试的自适应光标搜索算法实施例的一些见解,在本小节中研究了其迭代过程。为了说明,作为两个实例,使用CIFAR100数据集测试了ResNet20实现并且使用CIFAR10数据集测试了MobileNetV2实现。它们各自的搜索过程在图4和图5中描绘,其中由于空间限制而忽略了量化位。图4描绘了根据本公开的实施例的用于在CIFAR100数据上的ResNet20实现的自适应光标搜索过程的结果。图5描绘了根据本公开的实施例的用于在CIFAR10数据上的MobileNetV2实现的自适应光标搜索过程的结果。对于这两个图,点旁边的数字代表历元。
这里,横坐标和纵坐标分别代表压缩比和预测准确度。应当注意,测试算法实施例分别用20个历元和10个历元运行以清楚地展示性能的变化。可以从图4看到,对于自适应光标搜索方案实施例,其首先在左下区域(较低准确度和压缩)开始并且接着逐渐聚集到右上区域(较高准确度和压缩)。同时,在所测试的过程中有一些小振动,例如,从历元8到历元9,准确度以及压缩比都有所提高,但从历元9到历元10,这两个测量值都略有下降。
图5中呈现用于在CIFAR10数据集上的MobileNetV2实现的搜索过程。还可以注意到,搜索过程相当稳定并且聚拢到具有更好的准确度和压缩比的最终右上区域。所测试的方法为什么达到同时具有高预测准确度和压缩比的区域的原因之一可能是由于用于解决这个具有两个目标的双层问题的替代性优化方法。此外,正则化项也可能在这个过程中发挥积极作用。
3、正则化系数λ的影响
在一个或多个实施例中,等式(2)中的系数λ控制模型精度与大小之间的平衡。在这个部分中,执行一些实验来分析它对整体性能的影响。选择值λ=0.9、0.7、0.5、0.25、0.1、0.05、0.01,并且测试它们对量化模型的影响。为了说明的目的,在CIFAR10数据上测试ResNet20实现。为了直接展示所测试的基于光标的可微搜索实施例的效果,在完成光标搜索之后没有对所有这些结果执行微调步骤。在表1中展示了在CIFAR10数据上的量化ResNet20实现的结果,其中CR表示压缩比,并且所有结果都是通过使用200个历元实现搜索来获得的。
Figure BDA0002976246280000191
表1:使用不同λ值的在CIFAR10数据上的ResNet20实现的性能
可以从表1观察到,对于λ>=0.1,量化方法实施例的整体性能相当稳定;也就是说,量化模型的准确度和压缩比维持在集中区域,其中准确度约为90%而压缩比约为29.00。当λ<0.1时,基于光标的自适应量化实施例可能仍然具有良好的预测性能,但是可能逐渐失去其对模型压缩的影响。这可以解释为当正则化逐渐变弱时,它不能像在系数较大时那样很好地发挥其压缩效果。这进一步验证了本专利文件中提出的正则化函数的有效性。
4.CIFAR10结果
使用ResNet20实现和MobileNetV2实现在CIFAR10基准数据集上演示基于光标的自适应量化实施例。
在表2中示出在ResNet20中针对每个层获得的混合位。有趣的是注意到,最终量化方案中的大多数位都是1,极大地有助于令人印象深刻的压缩比(25.6)。这还表明在神经网络层之间存在大量冗余。此外,压缩模型在测试集上实现了92.18%的预测准确度,其优于基于我们自己的实现的原始全精度模型(92.06%)。应当指出的是,没有花多少时间来微调原始模型以获得文献中的最佳性能。重点在于本文提出的量化方案,并且测试的目标是验证这些基于光标的自适应量化方案能够以相当或更好的预测准确度有效地减小模型大小。
Figure BDA0002976246280000201
表2:使用本专利文件中所公开的基于光标的自适应量化方法的实施例获得的在CIFAR10数据上的ResNet20实现的每个层的位宽。
将所测试的基于光标的自适应量化方法实施例的准确度和压缩比与一些相关或类似工作进行比较,诸如DNAS(B.Wu等人,“Mixed Precision Quantization of Convnetsvia Differentiable Neural Architecture Search”,可在arXiv:1812.00090处获得(2018年))、TTQ(Zhu等人,“Trained Ternary Quantization”,可在arXiv:1612.01064处获得(2016年))、PACT(Choi等人,“PACT:Parameterized Clipping Activation forQuantized Neural Networks”,可在arXiv:1805.06085处获得(2018年))和LQE(Zhang等人,“Discrimination-Aware Channel Pruning for Deep Neural Networks”,可在arXiv:1810.11809处获得(2019年)),其中在CIFAR-10数据上进行Resnet20实现,并且准确度和压缩比的详细信息在表3中示出。
Figure BDA0002976246280000211
表3:与其他工作的性能比较
可以注意到,与其他相关工作相比,所述测试方法实施例实现了好得多的压缩比,同时在CIFAR10数据上实现了相当或更好的分类准确度。所述实施例为什么优于其他量化方法(诸如LQE、TTQ和PACT)的原因可能是由于自适应的基于光标的搜索机制。通过考虑模型准确度和压缩比两者,基于光标的方法实施例可以作为一个整体有效地为每个层搜索不同的量化位,从而导致更好的压缩比和更好的准确度。与DNAS相比,所测试的实施例在CR方面性能更好的原因部分是由于两个最接近整数量化方案在每个层中产生更少的量化误差。此外,这也可能是因为搜索过程中的多低位设计。
基于光标的自适应量化实施例还被应用于MobilenetV2实现,其是用于移动装置和嵌入式系统的最先进深度学习模型。为了节省空间,不同层的搜索位结果使用如下元组展示:[6,6,2,1,4,5,4,6,3,5,4,6,5,3,7,7,5,6,5,7,4,6,4,6,5,3,6,5,3,6,5,6,5,5,2,2,4,3,3,6,5,2,5,2,4,2,1,4,4,1,2,2]。对于在CIFAR10数据上的MobileNetV2实现,与ResNet20实现相比,位分布更加多样化,这可能是由于它们固有的结构差异。在表4中示出了用于MobilenetV2实现的基于光标的自适应搜索的准确度和压缩比,可以看到所测试的实施例产生了比原始全精度模型更好的分类准确度,以及令人印象深刻的12.42的压缩比。
Figure BDA0002976246280000221
表4:在CIFAR10数据上的MobileNetV2实现的性能
5.CIFAR100结果
为了进一步展示基于光标的自适应量化方法的有效性,使用ResNet20实现和MobileNetV2实现在CIFAR100数据集上测试了方法实施例。在表5中展示了用于在CIFAR100数据集上的ResNet20实现的搜索位。
Figure BDA0002976246280000222
表5:由基于光标的自适应量化实施例对在CIFAR100数据上的ResNet20实现获得的每个层的位宽
在表6中示出了其在CIFAR100数据上与原始模型相比的性能,应当指出的是原始模型没有被微调,所以其准确度可能不是文献中最好的。对于ResNet20实现,所测试的实施例实现了11.60的良好压缩比,同时维持了相当的准确度。
Figure BDA0002976246280000223
Figure BDA0002976246280000231
表6:在CIFAR100数据上的ResNet 20实现的性能
使用CIFAR100数据施加MobileNetV2实现,并且在表7中呈现量化网络的性能。应当注意的是,具有鼓舞人心的压缩比12.86的压缩模型显示出比原始32位模型更好的分类准确度。
Figure BDA0002976246280000232
表7:在CIFAR100数据上的MobileNetV2实现的性能
用于每个层的所搜索到的多低位量化方案是:[4,7,8,3,8,6,7,2,5,5,4,4,1,4,4,5,6,3,7,6,5,1,1,7,6,5,3,1,6,7,6,8,5,1,2,6,3,1,1,3,6,8,1,3,6,5,1,6,7,1,3,1]。对于MobileNetV2实现,在最终量化方案中,其位分布似乎是多样化的,与其先前在CIFAR10数据上的结果相匹配。
E.一些结论
在本专利文件中,呈现了用于获得最佳混合精度DNN模型的新颖的基于光标的可微架构搜索方法的实施例。与使用启发式或基于学习的规则选择量化配置的大多数传统方法不同,在一个或多个实施例中,从NAS的角度为DNN模型中的每个层自适应地找到量化位。在一个或多个实施例中,应用具有替代性方式的基于光标的搜索算法以得到高效优化。在一个或多个实施例中,使用与光标最近的两个相邻整数来在训练过程中实现量化以减少量化噪声并避免局部收敛。所述方法的结果是作为一个整体的对不同层的最佳位宽选择。使用一些典型模型进行的大量实验表明,所测试的实施例提供了惊人的压缩能力,其精确度与在基准数据集上的最先进方法相当或更好。应当注意,所提出的方法或其改变的实施例还可以应用于激活层,以进一步改进其压缩能力。
F.计算系统实施例
在一个或多个实施方式中,本专利文献的方面可涉及、可包括一个或多个信息处理系统/计算系统或者可在一个或多个信息处理系统/计算系统上实施。计算系统可包括可操作来计算、运算、确定、分类、处理、传输、接收、检索、发起、路由、交换、存储、显示、通信、显现、检测、记录、再现、处理或利用任何形式信息、智能或数据的任何手段或手段的组合。例如,计算系统可为或可包括个人计算机(例如,膝上型计算机)、平板电脑、平板手机、个人数字助理(PDA)、智能手机、智能手表、智能包装、服务器(例如,刀片式服务器或机架式服务器)、网络存储设备、摄像机或任何其他合适设备,并且可在大小、形状、性能、功能和价格方面改变。计算系统可包括随机存取存储器(RAM)、一个或多个处理资源(例如中央处理单元(CPU)或硬件或软件控制逻辑)、ROM和/或其他类型的存储器。计算系统的另外组件可包括一个或多个盘驱动器、用于与外部设备通信的一个或多个网络端口、以及各种输入和输出(I/O)设备(例如键盘、鼠标、触摸屏和/或视频显示器)。计算系统还可包括可操作为在各种硬件组件之间传输通信的一个或多个总线。
图6描绘根据本公开的实施方式的计算设备/信息处理系统(或是计算系统)的简化框图。应理解,计算系统可不同地配置并且包括不同组件,包括如图6中所示的更少或更多的部件,但应理解,针对系统600所示出的功能可操作为支持计算系统的各种实施方式。
如图6所示,计算系统600包括一个或多个中央处理单元(CPU)601,CPU 601提供计算资源并控制计算机。CPU 601可实施有微处理器等,并且还可包括一个或多个图形处理单元(GPU)619和/或用于数学计算的浮点协处理器。系统600还可包括系统存储器602,系统存储器602可呈随机存取存储器(RAM)、只读存储器(ROM)、或两者的形式。
如图6所示,还可提供多个控制器和外围设备。输入控制器603表示至各种输入设备604的接口,例如键盘、鼠标、触摸屏和/或触笔。计算系统600还可包括存储控制器607,该存储控制器607用于与一个或多个存储设备608对接,存储设备中的每个包括存储介质(诸如磁带或盘)或光学介质(其可用于记录用于操作系统、实用工具和应用程序的指令的程序,它们可包括实施本公开的各方面的程序的实施方式)。存储设备608还可用于存储经处理的数据或是将要根据本公开处理的数据。系统600还可包括显示控制器609,该显示控制器609用于为显示设备611提供接口,显示设备611可为阴极射线管(CRT)、薄膜晶体管(TFT)显示器、有机发光二极管、电致发光面板、等离子面板或其他类型的显示器。计算系统600还可包括用于一个或多个外围设备606的一个或多个外围控制器或接口605。外围设备的示例可包括一个或多个打印机、扫描仪、输入设备、输出设备、传感器等。通信控制器614可与一个或多个通信设备615对接,这使系统600能够通过各种网络(包括互联网、云资源(例如以太云、经以太网的光纤通道(FCoE)/数据中心桥接(DCB)云等)、局域网(LAN)、广域网(WAN)、存储区域网络(SAN))中的任一网络,或通过任何合适电磁载波信号(包括红外信号)来连接至远程设备。
在示出的系统中,所有主要系统组件可连接至总线616,总线616可表示多于一个的物理总线。然而,各种系统组件可在物理上彼此接近或可不在物理上彼此接近。例如,输入数据和/或输出数据可远程地从一个物理位置传输到另一物理位置。另外,实现本公开的各方面的程序可经由网络从远程位置(例如,服务器)访问。此类数据和/或程序可通过各种机器可读介质中的任一机器可读介质来传送,机器可读介质包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息设备的光学介质;磁光介质;以及硬件设备,该硬件设备专门被配置成存储或存储并执行程序代码,该硬件设备例如专用集成电路(ASIC)、可编程逻辑器件(PLD)、闪存设备、以及ROM和RAM设备。
本公开的方面可利用用于一个或多个处理器或处理单元以使步骤执行的指令在一个或多个非暂态计算机可读介质上编码。应注意,一个或多个非暂态计算机可读介质可包括易失性存储器和非易失性存储器。应注意,替代实现方式是可能的,其包括硬件实现方式或软件/硬件实现方式。硬件实施的功能可使用ASIC、可编程的阵列、数字信号处理电路等来实现。因此,任何权利要求中的术语“手段”旨在涵盖软件实现方式和硬件实现方式两者。类似地,如本文使用的术语“计算机可读媒介或介质”包括具有实施在其上的指令程序的软件和/或硬件或它们的组合。利用所构想的这些替代实现方式,应当理解,附图以及随附描述提供本领域的技术人员编写程序代码(即,软件)和/或制造电路(即,硬件)以执行所需处理所要求的功能信息。
应当注意,本公开的实施方式还可涉及具有其上具有用于执行各种计算机实施的操作的计算机代码的非暂态有形计算机可读介质的计算机产品。介质和计算机代码可为出于本公开的目的而专门设计和构造的介质和计算机代码,或者它们可为相关领域中的技术人员已知或可用的。有形计算机可读介质的示例包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息设备的光学介质;磁光介质;以及专门配置成存储或存储并执行程序代码的硬件设备,例如,专用集成电路(ASIC)、可编程逻辑器件(PLD)、闪存设备、以及ROM和RAM设备。计算机代码的示例包括机器代码(例如,编译器产生的代码)以及包含可由计算机使用解释器来执行的更高级代码的文件。本公开的实施方式可整体地或部分地实施为可在由处理设备执行的程序模块中的机器可执行指令。程序模块的示例包括库、程序、例程、对象、组件和数据结构。在分布的计算环境中,程序模块可物理上定位在本地、远程或两者的设定中。
本领域的技术人员将认识到,计算系统或编程语言对本公开的实践来说均不重要。本领域的技术人员将还将认识到,多个上述元件可物理地和/或在功能上划分成子模块或组合在一起。
本领域技术人员将理解,前文的示例和实施方式是示例性的,并且不限制本公开的范围。旨在说明的是,在本领域的技术人员阅读本说明书并研究附图后将对本领域的技术人员显而易见的本发明的所有置换、增强、等同、组合或改进包括在本公开的真实精神和范围内。还应注意,任何权利要求书的元素可不同地布置,包括具有多个从属、配置和组合。

Claims (20)

1.一种用于减小包括多个层的神经网络的存储器大小的计算机实现方法,所述方法包括:
响应于没有达到停止条件,执行包括以下各项的步骤:
将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到所述神经网络中以获得训练数据输出;
给定来自所述神经网络的所述训练数据输出和损失函数,确定所述神经网络的训练数据损失,所述损失函数包括与所述神经网络的预测准确度相关的损失分量和与在量化之后的所述神经网络的参数值的存储器大小相关的压缩分量;
使用所述训练数据损失更新所述神经网络的所述参数值中的至少一些;
将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到所述神经网络中以获得验证数据输出;
给定来自所述神经网络的所述验证数据输出和所述损失函数,确定所述神经网络的验证数据损失;
使用所述验证数据损失更新所述神经网络的所述层中的至少一些的光标值,其中所述神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及
针对所述层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化所述神经网络的该层的参数值,经过量化的参数值用于确定所述损失函数的所述压缩分量;以及
响应于达到停止条件:
输出所述神经网络的所述层中的所述至少一些的最终光标值,其中所述神经网络的层的最终光标值是用于表示所述神经网络的该层的参数值的位大小;以及
输出所述神经网络的一组参数值。
2.根据权利要求1所述的计算机实现方法,其中量化所述神经网络的层的参数值的步骤包括:
针对所述层的所述光标值,识别上限整数值和下限整数值,其中所述上限整数值和下限整数值是界定所述光标值并表示用于表示所述层的参数值的存储器位大小的两个最近整数值;以及
将所述层的所述参数值量化为上限参数值集,在所述上限参数值集中参数值具有所述上限整数值的最大位大小;以及
将所述层的所述参数值量化为下限参数值集,在所述下限参数值集中参数值具有所述下限整数值的最大位大小。
3.根据权利要求1所述的计算机实现方法,其中输出最终光标值和输出所述神经网络的所述一组参数值的步骤包括:
针对来自最终迭代的不是整数值的每个光标值,将所述光标值舍入到整数值;以及
使用所述最终光标值来量化来自所述最终迭代的所述参数值以获得所述神经网络的所述一组参数值。
4.根据权利要求3所述的计算机实现方法,其还包括:
执行微调操作以调整所述一组参数值中的至少一些。
5.根据权利要求2所述的计算机实现方法,其中所述压缩分量包括:
给定所述参数值的量化的所述神经网络的总存储器大小相对于在量化之前的所述神经网络的存储器大小的比率;以及
控制所述神经网络的准确度与参数值的压缩之间的权衡的正则化因子。
6.根据权利要求5所述的计算机实现方法,其中所述比率由影响所述比率在所述损失函数中的重要性的参数来更改。
7.根据权利要求5所述的计算机实现方法,其中给定所述参数值的量化的所述神经网络的所述总存储器大小表示使用所述上限参数值集和所述下限参数值集获得的融合。
8.根据权利要求1所述的计算机实现方法,其还包括:
不对所述神经网络的第一层的参数值进行量化;
不对所述神经网络的最后一层的参数值进行量化;或者
不对所述神经网络的所述第一层和所述最后一层的参数值进行量化。
9.根据权利要求1所述的计算机实现方法,其还包括:
初始化所述神经网络模型的所述层中的至少一些的光标值;
初始化所述神经网络的所述参数值;以及
初始化批次大小。
10.一种系统,其包括:
一个或多个处理器;以及
存储一个或多个指令序列的非暂时性计算机可读介质或媒介,当所述一个或多个指令序列由所述一个或多个处理器中的至少一者执行时,致使执行包括以下各项的步骤:
响应于没有达到停止条件,执行包括以下各项的步骤:
将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到所述神经网络中以获得训练数据输出;
给定来自所述神经网络的所述训练数据输出和损失函数,确定所述神经网络的训练数据损失,所述损失函数包括与所述神经网络的预测准确度相关的损失分量和与在量化之后的所述神经网络的参数值的存储器大小相关的压缩分量;
使用所述训练数据损失更新所述神经网络的所述参数值中的至少一些;
将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到所述神经网络中以获得验证数据输出;
给定来自所述神经网络的所述验证数据输出和所述损失函数,确定所述神经网络的验证数据损失;
使用所述验证数据损失更新所述神经网络的所述层中的至少一些的光标值,其中所述神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及
针对所述层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化所述神经网络的该层的参数值,经过量化的参数值用于确定所述损失函数的所述压缩分量;以及
响应于达到停止条件:
输出所述神经网络的所述层中的所述至少一些的最终光标值,其中所述神经网络的层的最终光标值是用于表示所述神经网络的该层的参数值的位大小;以及
输出所述神经网络的一组参数值。
11.根据权利要求10所述的系统,其中量化所述神经网络的层的参数值的步骤包括:
针对所述层的所述光标值,识别上限整数值和下限整数值,其中所述上限整数值和下限整数值是界定所述光标值并表示用于表示所述层的参数值的存储器位大小的两个最近整数值;以及
将所述层的所述参数值量化为上限参数值集,在所述上限参数值集中参数值具有所述上限整数值的最大位大小;以及
将所述层的所述参数值量化为下限参数值集,在所述下限参数值集中参数值具有所述下限整数值的最大位大小。
12.根据权利要求10所述的系统,其中所述输出最终光标值和输出所述神经网络的所述一组参数值的步骤包括:
针对来自最终迭代的不是整数值的每个光标值,将所述光标值舍入到整数值;以及
使用所述最终光标值来量化来自所述最终迭代的所述参数值以获得所述神经网络的所述一组参数值。
13.根据权利要求12所述的系统,其中所述非暂时性计算机可读介质或媒介还包括一个或多个指令序列,当所述一个或多个指令序列由所述一个或多个处理器中的至少一者执行时,致使执行包括以下各项的步骤:
执行微调操作以调整所述一组参数值中的至少一些。
14.根据权利要求11所述的系统,其中所述压缩分量包括:
给定所述参数值的量化的所述神经网络的总存储器大小相对于在量化之前的所述神经网络的存储器大小的比率;以及
控制所述神经网络的准确度与参数值的压缩之间的权衡的正则化因子。
15.根据权利要求14所述的系统,其中给定所述参数值的量化的所述神经网络的所述总存储器大小表示使用所述上限参数值集和所述下限参数值集获得的融合。
16.一种存储一个或多个指令序列的非暂时性计算机可读介质或媒介,所述指令序列在由一个或多个处理器执行时致使执行包括以下各项的步骤:
响应于没有达到停止条件,执行包括以下各项的步骤:
将从包括输入数据和对应地面真值数据的训练数据集获得的训练数据批次输入到所述神经网络中以获得训练数据输出;
给定来自所述神经网络的所述训练数据输出和损失函数,确定所述神经网络的训练数据损失,所述损失函数包括与所述神经网络的预测准确度相关的损失分量和与在量化之后的所述神经网络的参数值的存储器大小相关的压缩分量;
使用所述训练数据损失更新所述神经网络的所述参数值中的至少一些;
将从包括输入数据和对应地面真值数据的验证数据集获得的验证数据批次输入到所述神经网络中以获得验证数据输出;
给定来自所述神经网络的所述验证数据输出和所述损失函数,确定所述神经网络的验证数据损失;
使用所述验证数据损失更新所述神经网络的所述层中的至少一些的光标值,其中所述神经网络中的层的光标值与用于表示该层的参数值的存储器大小相关;以及
针对所述层中的至少一些中的每个层,使用界定该层的光标值的两个整数来量化所述神经网络的该层的参数值,经过量化的参数值用于确定所述损失函数的所述压缩分量;以及
响应于达到停止条件:
输出所述神经网络的所述层中的所述至少一些的最终光标值,其中所述神经网络的层的最终光标值是用于表示所述神经网络的该层的参数值的位大小;以及
输出所述神经网络的一组参数值。
17.根据权利要求16所述的非暂时性计算机可读介质或媒介,其中量化所述神经网络的层的参数值的步骤包括:
针对所述层的所述光标值,识别上限整数值和下限整数值,其中所述上限整数值和下限整数值是界定所述光标值并表示用于表示所述层的参数值的存储器位大小的两个最近整数值;以及
将所述层的所述参数值量化为上限参数值集,在所述上限参数值集中参数值具有所述上限整数值的最大位大小;以及
将所述层的所述参数值量化为下限参数值集,在所述下限参数值集中参数值具有所述下限整数值的最大位大小。
18.根据权利要求16所述的非暂时性计算机可读介质或媒介,其中所述输出最终光标值和输出所述神经网络的所述一组参数值的步骤包括:
针对来自最终迭代的不是整数值的每个光标值,将所述光标值舍入到整数值;以及
使用所述最终光标值来量化来自所述最终迭代的所述参数值以获得所述神经网络的所述一组参数值。
19.根据权利要求16所述的非暂时性计算机可读介质或媒介,其中所述压缩分量包括:
给定所述参数值的量化的所述神经网络的总存储器大小相对于在量化之前的所述神经网络的存储器大小的比率;以及
控制所述神经网络的准确度与参数值的压缩之间的权衡的正则化因子。
20.根据权利要求19所述的非暂时性计算机可读介质或媒介,其中给定所述参数值的量化的所述神经网络的所述总存储器大小表示使用所述上限参数值集和所述下限参数值集获得的融合。
CN201980060253.9A 2019-09-24 2019-09-24 用于深度神经网络的基于光标的自适应量化 Active CN112840358B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/107509 WO2021056180A1 (en) 2019-09-24 2019-09-24 Cursor-based adaptive quantization for deep neural networks

Publications (2)

Publication Number Publication Date
CN112840358A true CN112840358A (zh) 2021-05-25
CN112840358B CN112840358B (zh) 2023-05-23

Family

ID=75165360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980060253.9A Active CN112840358B (zh) 2019-09-24 2019-09-24 用于深度神经网络的基于光标的自适应量化

Country Status (3)

Country Link
US (1) US20210232890A1 (zh)
CN (1) CN112840358B (zh)
WO (1) WO2021056180A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3944029A1 (en) * 2020-07-21 2022-01-26 Siemens Aktiengesellschaft Method and system for determining a compression rate for an ai model of an industrial task
US20220164666A1 (en) * 2020-11-20 2022-05-26 Adobe Inc. Efficient mixed-precision search for quantizers in artificial neural networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796668A (zh) * 2016-03-16 2017-05-31 香港应用科技研究院有限公司 用于人工神经网络中比特深度减少的方法和系统
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
CN109685198A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 用于量化神经网络的参数的方法和装置
CN110222821A (zh) * 2019-05-30 2019-09-10 浙江大学 基于权重分布的卷积神经网络低位宽量化方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216720B2 (en) * 2015-10-08 2022-01-04 Shanghai Zhaoxin Semiconductor Co., Ltd. Neural network unit that manages power consumption based on memory accesses per period
WO2017176384A2 (en) * 2016-02-24 2017-10-12 Sri International Low precision neural networks using subband decomposition
US11106973B2 (en) * 2016-03-16 2021-08-31 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for bit-depth reduction in artificial neural networks
US11157814B2 (en) * 2016-11-15 2021-10-26 Google Llc Efficient convolutional neural networks and techniques to reduce associated computational costs
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
US11734545B2 (en) * 2017-11-14 2023-08-22 Google Llc Highly efficient convolutional neural networks
US11468316B2 (en) * 2018-03-13 2022-10-11 Recogni Inc. Cluster compression for compressing weights in neural networks
US11429862B2 (en) * 2018-03-20 2022-08-30 Sri International Dynamic adaptation of deep neural networks
CN109002889B (zh) * 2018-07-03 2021-12-17 华南理工大学 自适应迭代式卷积神经网络模型压缩方法
EP3998554A4 (en) * 2019-06-12 2023-11-15 Shanghai Cambricon Information Technology Co., Ltd METHOD FOR DETERMINING QUANTIZATION PARAMETERS IN A NEURONAL NETWORK AND ASSOCIATED PRODUCTS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796668A (zh) * 2016-03-16 2017-05-31 香港应用科技研究院有限公司 用于人工神经网络中比特深度减少的方法和系统
CN109685198A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 用于量化神经网络的参数的方法和装置
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
CN110222821A (zh) * 2019-05-30 2019-09-10 浙江大学 基于权重分布的卷积神经网络低位宽量化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HANXIAO LIU 等: "DARTS: differentiable architecture search" *
YIREN ZHOU 等: "Adaptive Quantization for Deep Neural Network" *

Also Published As

Publication number Publication date
WO2021056180A1 (en) 2021-04-01
CN112840358B (zh) 2023-05-23
US20210232890A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
TWI791610B (zh) 對人工神經網路及浮點神經網路進行量化的方法及裝置
US20220261634A1 (en) Neural network quantization parameter determination method and related products
US11250320B2 (en) Neural network method and apparatus
KR102607176B1 (ko) 웨이트 파라미터 감소를 위한 자기 쳐내기 신경망들
JP2024050691A (ja) ディープニューラルネットワークの動的適応
CN109313720B (zh) 具有稀疏访问的外部存储器的增强神经网络
US11475308B2 (en) Jointly pruning and quantizing deep neural networks
CN113179660A (zh) 基于用于深度神经网络的增强学习的张量分解中的排序选择
CN112840358B (zh) 用于深度神经网络的基于光标的自适应量化
US20210397963A1 (en) Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification
CN111860364A (zh) 人脸识别模型的训练方法、装置、电子设备和存储介质
US12008467B2 (en) Asymmetric quantization for compression and for acceleration of inference for neural networks
KR20220092776A (ko) 신경망 모델 양자화 장치 및 방법
CN113508400A (zh) 神经网络中多个路径的部分激活
Huai et al. Latency-constrained DNN architecture learning for edge systems using zerorized batch normalization
KR20220134627A (ko) 하드웨어-최적화된 신경 아키텍처 검색
US20220405561A1 (en) Electronic device and controlling method of electronic device
KR102559605B1 (ko) 함수 최적화 방법 및 장치
US20220292342A1 (en) Communication Efficient Federated/Distributed Learning of Neural Networks
CN113177627B (zh) 优化系统、重新训练系统及其方法及处理器和可读介质
JP2024504179A (ja) 人工知能推論モデルを軽量化する方法およびシステム
CN112651420A (zh) 训练图像分类模型的系统及方法和对图像进行分类的方法
US20220277195A1 (en) Automated data augmentation in deep learning
KR20240082469A (ko) 양자화 구조를 도출하기 위한 장치의 동작 방법 및 그 장치
TWI846674B (zh) 資料處理裝置以及修剪資料處理裝置的權重的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant