用于神经网络修剪和再训练的自动阈值制造技术

技术编号:18713360 阅读:33 留言:0更新日期:2018-08-21 23:03
实施例包括一种方法,该方法包括:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值来重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。

Automatic thresholds for pruning and retraining of neural networks

An embodiment includes a method of pruning layers of a neural network with multiple layers using thresholds, and of repeatedly pruning the layers of the neural network using different thresholds until the pruning error of the pruned layer reaches the pruning error tolerance.

【技术实现步骤摘要】
用于神经网络修剪和再训练的自动阈值相关申请的交叉引用本申请要求于2017年2月10日提交的美国临时专利申请No.62/457,806的优先权,针对所有目的将其内容以全文引用的方式并入本文。
本公开涉及神经网络的修剪和再训练,特别是使用自动阈值对神经网络进行修剪和再训练。
技术介绍
深度学习架构,尤其是卷积深度神经网络已经用于人工智能(AI)和计算机视觉领域。这些架构已经展示出对于包括视觉对象识别、检测和分割在内的任务产生了结果。然而,这些架构可能具有大量的参数,导致较高的计算负载和增加的功耗。
技术实现思路
实施例包括一种方法,该方法包括:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值来重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。实施例包括一种方法,该方法包括:重复以下步骤:使用自动确定的阈值对神经网络的多个层进行修剪;以及仅使用修剪之后保留的权重对所述神经网络进行再训练。实施例包括一种系统,该系统包括:存储器;以及处理器,耦接到所述存储器并被配置为:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值来重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。附图说明图1A~图1B是根据一些实施例的用于自动确定阈值的技术的流程图。图2是根据一些实施例的再训练操作的流程图。图3A~图3B是根据一些实施例的再训练操作的流程图。图4是根据一些实施例的自动确定阈值、修剪和再训练的技术的流程图。图5是示出了根据一些实施例的再训练操作的一组曲线。图6是包括根据一些实施例的修剪和再训练之后的各种神经网络的结果在内的图表。图7A~图7C是包括根据一些实施例的修剪神经网络的各种技术的结果在内的图表。图8是根据一些实施例的系统。具体实施方式实施例涉及对神经网络的修剪和再训练,特别是使用自动阈值对神经网络的修剪和再训练。呈现以下描述以使得本领域普通技术人员能够实现和使用实施例,并且在专利申请及其要求的上下文中提供以下描述。对本文描述的实施例和一般原理和特征的各种修改将是显而易见的。主要在具体实施方式中提供的具体方法、设备和系统的意义下来描述实施例。然而,各方法、设备和系统将在其他实施方式中有效地运行。诸如“实施例”、“一个实施例”和“另一个实施例”之类的短语可以指代相同或不同的实施例以及多个实施例。将针对具有特定组件的系统和/或设备来描述实施例。然而,系统和/或设备可以包括比所示组件更多或更少的组件,并且在不脱离本公开范围的情况下可以进行对组件的布置和类型的变化。还将在具有某些操作的具体方法的上下文中描述实施例。然而,各方法和系统可以根据具有不同和/或附加操作的、和与实施例不矛盾的不同顺序和/或并行的操作的其他方法来操作。因此,实施例并不预期被局限于所示的具体实施例,而应赋予与本文描述的原理和特征一致的最宽范围。在具有某些组件的特定系统或设备的上下文中描述实施例。本领域的普通技术人员将容易认识到实施例与使用具有其他和/或附加组件和/或其他特征的系统或设备一致。方法、设备和系统也可以在单个元素的上下文中描述。然而,本领域的普通技术人员将容易认识到:这些方法和系统与使用具有多个元件的架构一致。本领域技术人员将会理解:通常本文中以及尤其是在所附权利要求(例如,所附权利要求的正文)中使用的术语通常预期为“开放式”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包括”应被释为“包括但不限于”等)。本领域技术人员将会进一步理解:如果意图介绍具体数量的引入的权利要求陈述,则这样的意图将在权利要求中明确地陈述,并且在没有这样的陈述的情况下,不存在这样的意图。例如,作为对理解的帮助,以下所附权利要求可以包含对引导短语“至少一个”和“一个或多个”的使用以引入权利要求陈述。然而,甚至当相同的权利要求包括引导短语“一个或多个”或“至少一个”以及诸如“a”或“an”之类的不定冠词(例如,“a”和/或“an”应解释为意味着“至少一个”或“一个或多个”)时,对这种短语的使用也不应该解释为暗示由不定冠词“a”或“an”引入的权利要求陈述将包含这样引入的权利要求陈述在内的任何特定权利要求限制为仅包含一个这种陈述在内的示例;对于使用用于引入权利要求陈述的定冠词也是如此。此外,在使用类似于“A、B或C等中的至少一个”的惯例的那些情况下,通常这样的构造旨在于本领域技术人员将理解该惯例的意义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、一起具有A和B、一起具有A和C、一起具有B和C、和/或一起具有A、B和C等的系统)。本领域技术人员将会进一步理解:无论是在说明书、权利要求书还是附图中,实际上任何呈现两个或更多个备选术语的分离词语(disjunctiveword)和/或短语都应该被理解为考虑包括术语之一、术语的任一个、或全部两个术语在内的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。在一些实施例中,神经网络(诸如深度学习神经网络)可以用减小的参数大小来创建。结果,可以维持图像识别任务的性能水平,同时减小神经网络硬件上的负载。在一些实施例中,为了减小神经网络的参数大小,可以对神经网络进行修剪以使许多参数为零。然而,问题在于如何为神经网络的每一层设置良好的阈值以尽可能地对网络进行修剪,但是同时又维持其原有的性能。对于由数十层组成的神经网络来说,暴力搜索阈值可能并不实际,特别是考虑到一层的阈值可能取决于其他层。此外,修剪可能要求对网络进行再训练以恢复到原来的性能。这种修剪过程可能花费相当长的时间才能被验证为有效的。如本文所述的,在各种实施例中,可以将对阈值的自动选择连同对网络进行再训练的方法一起用来对神经网络进行修剪以减少参数。图1A是根据一些实施例的用于自动确定阈值的技术的流程图。在100中,初始化用于对神经网络的层进行修剪的阈值。在一些实施例中,可以将阈值初始化为值的范围的极端,例如0或l。在其他实施例中,可以将阈值初始化为诸如0.2、0.5等的特定值。在其它实施例中,阈值可以被设置为随机的值。在其它实施例中,可以使用经验规则来确定阈值。在一些实施例中,阈值可以被设置为针对另一层(诸如类似情形的层(similarlysituatedlayer)或具有相似或相同类型的层)来自动确定的值。在一些实施例中,初始阈值可以对于神经网络的所有层是相同的;然而,在其他实施例中,阈值对于一些层或对于每一层可以是不同的。在102中,使用阈值对神经网络的层进行修剪。例如,把阈值用于将该层的一些权重设置为零。在104中,针对经修剪的层来计算修剪误差。修剪误差是修剪之前和之后的权重的函数。在106中,将修剪误差(PE)与修剪误差容限(PEA)进行比较。在一些实施例中,如果修剪误差等于修剪误差容限,则修剪误差可能已经达到修剪误差容限。然而在其他实施例中,如果修剪误差在包括修剪误差容限在内的范围内,则修剪误差可能已经达到修剪误差容限。备选地,修剪误差容限可能是可接受的修剪误差的范围。例如,可以使用相对较小的数来限定高于和低于具体的修剪误差容限的范围。如果修剪误差和修剪误差容限的分离程本文档来自技高网...

【技术保护点】
1.一种方法,包括:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。

【技术特征摘要】
2017.02.10 US 62/457,806;2017.04.14 US 15/488,4301.一种方法,包括:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。2.根据权利要求1所述的方法,还包括针对所述神经网络的每个层:初始化所述修剪误差容限;初始化所述阈值;以及重复以下步骤,直到针对所述层的修剪权重的百分比在针对所述层的范围内为止:重复以下步骤,直到所述修剪误差达到所述修剪误差容限为止:使用所述阈值对所述神经网络的所述层进行修剪;计算经修剪的层的修剪误差;将所述修剪误差与所述修剪误差容限进行比较;以及响应于所述比较来改变所述阈值;计算经修剪的层的修剪权重的百分比;以及响应于所述修剪权重的百分比来改变所述修剪误差容限。3.根据权利要求1所述的方法,还包括:使用不同的修剪误差容限来重复对所述层重复进行修剪,直到针对所述层的修剪权重的百分比在针对所述层的范围内为止。4.根据权利要求3所述的方法,其中,所述神经网络的不同类型的层针对所述修剪权重的百分比具有不同的范围。5.根据权利要求1所述的方法,其中,对所述神经网络的所述层进行修剪包括:如果权重的量值小于所述阈值,则将所述权重设置为零。6.根据权利要求1所述的方法,其中,对所述神经网络的所述层进行修剪包括:如果权重的量值小于按缩放因子缩放的所述阈值,则将所述权重设置为零。7.根据权利要求6所述的方法,其中,所述缩放因子是所述层的权重的标准差。8.根据权利要求1所述的方法,还包括:通过将权重误差的量值除以经修剪的权重的数量来计算所述修剪误差。9.根据权利要求1所述的方法,还包括进行以下操作以产生所述不同的阈值:如果所述修剪误差小于所述修剪误差容限,则增加所述阈值;以及如果所述修剪误差大于所述修剪误差容限,则降低所述阈值。10.根据权利要求1所述的方法,还包括:对于所述神经网络的每一层执行重复对所述神经网络的层进行修剪。11.根据权利要求1所述的方法,还包括:在经修剪的层的修剪误差达到所述修剪误差容限之后,使用所述阈值迭代地...

【专利技术属性】
技术研发人员:冀正平约翰·韦克菲尔德·布拉泽斯伊利亚·奥夫相尼科夫沈恩寿
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1