CN108416423A - 用于神经网络修剪和再训练的自动阈值 - Google Patents
用于神经网络修剪和再训练的自动阈值 Download PDFInfo
- Publication number
- CN108416423A CN108416423A CN201810100412.0A CN201810100412A CN108416423A CN 108416423 A CN108416423 A CN 108416423A CN 201810100412 A CN201810100412 A CN 201810100412A CN 108416423 A CN108416423 A CN 108416423A
- Authority
- CN
- China
- Prior art keywords
- trimming
- layer
- neural network
- threshold value
- weight
- 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
Links
- 238000009966 trimming Methods 0.000 title claims abstract description 157
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000008859 change Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims 5
- 238000005516 engineering process Methods 0.000 description 22
- 238000012549 training Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 101100537629 Caenorhabditis elegans top-2 gene Proteins 0.000 description 2
- 101150107801 Top2a gene Proteins 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000004218 nerve net Anatomy 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
- Feedback Control In General (AREA)
Abstract
实施例包括一种方法,该方法包括:使用阈值对具有多个层的神经网络的层进行修剪;以及使用不同的阈值来重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。
Description
相关申请的交叉引用
本申请要求于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等的***)。本领域技术人员将会进一步理解:无论是在说明书、权利要求书还是附图中,实际上任何呈现两个或更多个备选术语的分离词语(disjunctive word)和/或短语都应该被理解为考虑包括术语之一、术语的任一个、或全部两个术语在内的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
在一些实施例中,神经网络(诸如深度学***,同时减小神经网络硬件上的负载。在一些实施例中,为了减小神经网络的参数大小,可以对神经网络进行修剪以使许多参数为零。然而,问题在于如何为神经网络的每一层设置良好的阈值以尽可能地对网络进行修剪,但是同时又维持其原有的性能。对于由数十层组成的神经网络来说,暴力搜索阈值可能并不实际,特别是考虑到一层的阈值可能取决于其他层。此外,修剪可能要求对网络进行再训练以恢复到原来的性能。这种修剪过程可能花费相当长的时间才能被验证为有效的。如本文所述的,在各种实施例中,可以将对阈值的自动选择连同对网络进行再训练的方法一起用来对神经网络进行修剪以减少参数。
图1A是根据一些实施例的用于自动确定阈值的技术的流程图。在100中,初始化用于对神经网络的层进行修剪的阈值。在一些实施例中,可以将阈值初始化为值的范围的极端,例如0或l。在其他实施例中,可以将阈值初始化为诸如0.2、0.5等的特定值。在其它实施例中,阈值可以被设置为随机的值。在其它实施例中,可以使用经验规则来确定阈值。在一些实施例中,阈值可以被设置为针对另一层(诸如类似情形的层(similarly situatedlayer)或具有相似或相同类型的层)来自动确定的值。在一些实施例中,初始阈值可以对于神经网络的所有层是相同的;然而,在其他实施例中,阈值对于一些层或对于每一层可以是不同的。
在102中,使用阈值对神经网络的层进行修剪。例如,把阈值用于将该层的一些权重设置为零。在104中,针对经修剪的层来计算修剪误差。修剪误差是修剪之前和之后的权重的函数。
在106中,将修剪误差(PE)与修剪误差容限(PEA)进行比较。在一些实施例中,如果修剪误差等于修剪误差容限,则修剪误差可能已经达到修剪误差容限。然而在其他实施例中,如果修剪误差在包括修剪误差容限在内的范围内,则修剪误差可能已经达到修剪误差容限。备选地,修剪误差容限可能是可接受的修剪误差的范围。例如,可以使用相对较小的数来限定高于和低于具体的修剪误差容限的范围。如果修剪误差和修剪误差容限的分离程度小于相对较小的数,则认为修剪误差在修剪误差容限处。
如果修剪误差还没有达到修剪误差容限,则在108中改变阈值。可以以各种方式来执行改变阈值。例如,可以将阈值改变固定的量。在其他实施例中,阈值可以改变基于修剪误差和修剪误差容限的差的量。在其他实施例中,阈值可以改变基于当前阈值的量。在其他实施例中,可以使用诸如二分搜索或其他类型搜索之类的搜索技术来选择另一个阈值。改变阈值的技术可以(但不需要)是对于所有层相同的技术。
与如何改变无关,在108中改变阈值之后,该过程通过在102中对层进行修剪并在104中计算修剪误差来重复。将修剪误差再次与修剪误差容限进行比较,以确定修剪误差是否已经达到修剪误差容限。因此,使用不同的阈值来重复对神经网络的层的修剪,直到修剪误差达到修剪误差容限为止。
图1B是根据一些实施例的用于自动确定阈值的技术的流程图。在该实施例中,修剪技术类似于图1A的修剪技术。将省略对类似操作的描述。在一些实施例中,在101中对修剪误差容限进行初始化。在其他实施例中,可以对非零权重的百分比或百分比的范围进行初始化。在其他实施例中,可以对阈值、修剪误差容限以及非零权重的百分比或百分比范围的组合进行初始化。可以使用与上述针对初始化阈值来描述的技术相类似的技术对修剪误差容限和/或非零权重的百分比或百分比范围进行初始化。
在110中,在修剪误差达到修剪误差容限之后,计算非零权重的百分比并将其与可接受的百分比或非零权重的百分比范围进行比较。在该实施例中,将修剪权重的数量表示为百分比;然而在其他实施例中,可以用不同方式来表示修剪权重的数量。尽管已经使用非零权重的百分比作为示例,在其他实施例中可以使用修剪权重的百分比并将其与对应的范围或值进行比较。
如果修剪权重的百分比不在针对该层的范围内,则在112中,改变修剪误差容限。可以使用如上面针对108中改变阈值所描述的技术来改变修剪误差容限。用于改变阈值的相同或不同的技术也可以用来改变修剪误差容限。改变修剪误差容限的技术可以(但不需要)是针对所有层的相同技术。
在修剪误差容限已经改变之后,可以在102中再次修剪该层。可以执行后续操作,直到修剪权重的百分比在可接受量的范围内为止。在114中,可以类似地处理下一层。因此,这种过程可以针对神经网络的每一层重复。
使用根据一些实施例的技术允许单个阈值和/或单个修剪误差容限对神经网络的所有层进行修剪。但是,每个层最终都将具有基于特定层的自动确定的阈值。如果将固定阈值用于两个层到所有的层,则阈值对于那些层中的一个或多个层可能不是最优的。此外,由于根据一些实施例的修剪技术关注于单独的层上,因此可以针对该层专门地确定阈值。
在一些实施例中,非零权重的百分比可以是用于对神经网络进行修剪的单一控制或单一类型的控制。如上所述,修剪误差容限将改变,直到非零权重的百分比在期望的范围内为止。类似地,阈值改变,直到修剪误差达到修剪误差容限为止。因此,通过设置非零权重的百分比,修剪误差容限和阈值将改变以达到所需的百分比。
在一些实施例中,也可以对修剪误差容限和/或阈值进行初始化。例如,可以对修剪误差容限进行初始化,以将操作的结果偏置到非零权重的百分比范围的具体一侧或者该范围内的具***置。
在一些实施例中,阈值可以如下确定。对修剪误差容限ε*进行初始化。对于每一个层1,使用如上所述的技术对阈值T1进行初始化。使用阈值T1,对层1的每一个权重Wi进行修剪。公式1是可以如何对权重进行修剪的示例。
在一些实施例中,可以通过缩放因子对阈值T1进行缩放。这里,可以通过σ(w)对阈值T1进行缩放。σ(w)是该层内的所有权重的标准差。然而在其他实施例中,可以通过不同的缩放因子对阈值T1进行缩放。
一旦对该层进行了修剪,计算修剪误差ε。公式2是如何计算修剪误差的示例。
D(w)-||wpruned||0 (2)
这里,wpruned是修剪权重的向量,而w是修剪之前的原始权重的向量。D(w)是w的总长度。因此,所得到的修剪误差ε基于误差的量以及经修剪的权重的数量。
可以将修剪误差ε与修剪误差容限ε*进行比较。公式3是比较的示例。
|ε-ε*|>θ (3)
这里,θ是限定以定义了以修剪误差容限ε*为中心的范围的数。在一些实施例中,θ是0;然而在其他实施例中,θ是相对较小的数。在其他实施例中,θ是限定了范围的大小的数。
如果修剪误差ε与修剪误差容限ε*之差小于θ,则修剪误差ε已经达到修剪误差容限ε*。如果没有小于,则阈值T1可以如公式4所述地改变。
这里,ζ是常数,可以将阈值T1改变该常数。如上所述,在其他实施例中,阈值T1可以按照不同的方式改变。例如,ζ可以是在每一次迭代以因子2来渐进式减小的值。不管怎样,一旦改变了阈值T1,可以如上所述地执行使用经更新的阈值T1的修剪和后续步骤。
如果修剪误差ε已经达到修剪误差容限ε*,可以检查非零权重的百分比。公式5是计算百分比p的示例。
然后将百分比p与可接受百分比的范围进行比较。在一些实施例中,可接受百分比的范围可以是相同的;然而在其他实施例中,范围可以是不同的。具体地,范围可以取决于层的类型。例如,对于卷积型层,百分比p的范围可以在0.2和0.9之间,而对于其他层(例如全连接层),范围可以在0.04和0.2之间。
如果百分比p小于针对该层的范围的下端,则修剪误差容限ε*如公式6那样减小。类似地,如果百分比大于针对该层的范围的上端,则修剪误差容限ε*如公式7那样增加。
ε*=ε*-τ (6)
ε*=ε*+τ (7)
在误差容限ε*改变之后,可以重复上述修剪,直到修剪误差ε已经达到新的修剪误差容限ε*为止。在一些实施例中,可以保持前一次迭代的阈值T1;然而在其他实施例中,阈值T1可以是不同的,例如被初始化为原始初始值或者根据初始化算法进行初始化。例如,可以将用于下一次迭代的阈值T1初始化为基于过去的阈值T1、但是沿预期减小修剪迭代次数的方向调节的值,以达到新的修剪误差容限ε*。
上述技术可以重复,直到该百分比p在针对该层的可接受范围内为止。可以针对神经网络的其他层重复操作。在一些实施例中,可以在取决于或者不取决于在先修剪的层的情况下选择诸如修剪误差容限ε*和初始阈值T1之类的各种值。例如,对于两种类似情形的层,较后修剪的层可以使用来自较早修剪的层的作为结果的修剪误差容限ε*和阈值T1。
因此通过根据本文描述的技术进行修剪,在一些实施例中,可以自动确定每层的修剪阈值。也就是说,可以将阈值确定为满足经修剪的层保留的非零权重的特定范围和/或特定的修剪误差容限。取决于具体的层,阈值对于一个或多个层(包括所有层)可以不同。
图2是根据一些实施例的再训练操作的流程图。在200中,可以初始化各种参数。例如,可以初始化基本学习率、用于迭代次数的计数器等。
在202中,使用自动确定的阈值对神经网络的层进行修剪。具体地,可以如上所述自动地生成针对层的阈值。在一些实施例中,可以对所有的层进行修剪;然而如将在下面进一步详细描述的,在一些实施例中,可以对少于全部的层进行修剪。
作为修剪的结果,具有非零权重的神经网络保留。在204中,使用那些非零权重对神经网络进行再训练。重复修剪和再训练操作,直到完成所需的迭代次数为止。例如,在206中,可以将迭代的次数与所需的次数进行比较。如果迭代次数还没有达到所需的次数,则可以重复修剪和再训练。
图3A~图3B是根据一些实施例的再训练操作的流程图。参考图3A,在300中可以与如上所述200中的那些类似地初始化各种参数。在302中,针对卷积型(CONV)层使用自动确定的阈值对那些层进行修剪。尽管已经使用卷积型层作为示例,但是在其他实施例中,可以对不同类型或者包含小于所有层在内的其他子集进行修剪。
在304中,使用非零权重对神经网络进行再训练。在一些实施例中,再训练继续进行特定次数的迭代。在其他实施例中,再训练继续进行,直到再训练已经覆盖了所有的训练样本集合为止。
在306中,将迭代次数与阈值进行比较。如果迭代次数小于阈值,则重复302和304中的修剪和再训练。具体而言,在304中的再训练之后,当执行302中的修剪时,之前在较早的修剪操作中存活的一些非零权重可能已经降低到相关联层的修剪阈值以下。因此,那些权重可以设置为零,并且在304中再训练保留的非零权重。
如果在306中迭代次数已经达到阈值,则在308中对神经网络中具有与在302中修剪的层不同类型的层集合进行固定。也就是说,在304中的后续再训练期间,不对固定的层进行再训练。在一些实施例中,全连接(FC)和输入(IP)层是固定的。可以重复302中的修剪和304中的再训练,直到在310中完成了所需次数的迭代为止。
参考图3B,在312中,在图3A的302中正在被修剪的层是固定的。在该示例中,卷积型层是在302中被修剪的层。因此,在312中固定了卷积型层。
在314中,使用与层相关联的自动确定的阈值对在308中固定的层进行修剪。在该示例中,该层是作为在步骤308中固定的层的FC/IP层。
在316中,可以基于修剪率来调节再训练的退出率。具体地,由于修剪可以反映权重的减少数量,所以可以相应地改变退出率以适应较低数量的非零权重。
在318中,对神经网络进行再训练。然而,在321中,将卷积型层进行固定。因此,不对这些层进行再训练。在320中,如果迭代次数尚未完成,则重复314和318中的修剪和再训练。
在一些实施例中,除了图3A中的300中的初始化之外,可以不执行图3A中的其余操作。也就是说,操作可以在312处开始,其中对卷积型层进行固定。在一些实施例中,可以在对层进行固定之前使用各自自动确定的阈值对卷积型层进行修剪。
尽管已经使用具体类型的层作为进行修剪、再训练和固定的层的示例,在其他实施例中,类型可以是不同的。此外,在一些实施例中,在302中进行修剪且在312中进行固定的第一层集合以及在308中进行固定在314中进行修剪的第二层集合可以形成整个层集合。然而在其他实施例中,对其他层集合的修剪、再训练和固定可以不遵循用于第一集合或第二集合的技术。例如,可以在302中对第三层集合进行修剪,但是在312中不进行固定。
图4是根据一些实施例的自动确定阈值、修剪和再训练的技术的流程图。在一些实施例中,在400中,自动确定修剪阈值。可以如上所述自动确定阈值。在402中,那些自动确定的阈值用于对神经网络进行修剪和再训练。在一些实施例中,可以通过多次迭代在400中自动确定阈值。在这些迭代完成之后,在402中,所得到的阈值用于对神经网络迭代地进行修剪和再训练。
图5是示出了根据一些实施例的再训练操作的一组曲线。这些曲线图说明了对GoogLeNet神经网络的修剪和再训练。具体地,曲线图示出了损耗变化、顶级-1准确度和顶级-2准确度。这里示出了两个修剪操作,一个在第一训练迭代之前,而第二个已经执行了一定量的训练迭代之后。尽管示出了两个修剪操作,但是可以执行任何数量的修剪操作。
图6是包括根据一些实施例的修剪和再训练之后的各种神经网络的结果在内的图表。具体地,针对各种神经网络和那些网络的经修剪版本,描述了权重参数的大小变化、顶级-1准确度和顶级-5准确度。这里列举了AlexNet、VGG16、SqueezeNet和GoogLeNet,以及AlexNet和VGG16的经修剪版本。具体地,经修剪的GoogLeNet条目示出了如本文所述修剪的GoogLeNet的训练和推理网络。如所述的,如本文所述修剪的GoogLeNet具有能够提供更高准确度的神经网络的最小尺寸的权重参数。具体地,经修剪的训练和推理神经网络在权重参数最小的情况下都能够实现超过89%的顶级-5准确度。
图7A~图7C是包括根据一些实施例的修剪神经网络的各种技术的结果在内的图表。这些图表列出了GoogLeNet神经网络的层和子层以及各种修剪技术的结果。示出了预先固定(prefix)阈值的两个实例,包括修剪后的得到的总权重以及顶级-1和顶级-5性能。另一个实例说明了使用经验规则产生的阈值的结果。最终,最后一个实例示出了根据本文描述的实施例的修剪结果。该结果示出了如本文所述的修剪可以实现可与未修剪网络相当的准确度,且具有比预先固定阈值更少的权重。针对由经验规则产生的阈值,本文描述的修剪实现了在具有相似总权重的情况下相似或更高的准确度。然而,可以在不要求用于预先选择修剪阈值的选择技术或规则的情况下执行本文描述的修剪。也就是说,不需要执行具有预先固定阈值的多次迭代,并且可能不需要用于生成规则的经验信息而可以实现类似和/或更好的结果。
图8示出了根据一些实施例的***。***800包括处理器802和存储器804。处理器802可以是通用处理器、数字信号处理器(DSP)、专用集成电路、微控制器、可编程逻辑器件、分立电路、这些器件的组合等。处理器802可以包括内部部分,例如寄存器、高速缓存存储器、处理核心等,并且还可以包括外部接口,例如地址和数据总线接口、中断接口等。尽管在***800中仅示出了一个处理器802,可以存在多个处理器802。另外,诸如逻辑芯片组、集线器、存储器控制器、通信接口等的其他接口设备可以是***800的一部分,以将处理器802连接到内部和外部组件。
存储器804可以是能够存储数据的任何器件。这里,针对***800示出了一个存储器804;然而,***800中可以包括任何数量的存储器804,包括不同类型的存储器。存储器804的示例包括动态随机存取存储器(DRAM)模块、根据诸如DDR、DDR2、DDR3、DDR4之类的各种标准的双倍数据率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)、诸如闪存之类的非易失性存储器、自旋转移扭矩磁阻随机存取存储器(STT-MRAM)或相变RAM、磁或光学介质等。
存储器804可以被配置为存储代码,该代码在处理器802上执行时使得***800实现本文所描述的技术中的任一个或全部技术。在一些实施例中,***800可以被配置为接收输入806,诸如神经网络、初始阈值、初始修剪误差容限、可接受的修剪百分比范围等。输出808可以包括自动确定的阈值、经修剪和再训练的神经网络、或上面描述的其他结果信息。
尽管已经根据特定实施例描述了方法和***,但是本领域普通技术人员将容易认识到可以对所公开的实施例进行许多变化,并且因此任何变化都应该被认为是在本文公开的方法和***的精神和范围内。因此,在不脱离所附权利要求的精神和范围的情况下,本领域的普通技术人员可以做出许多修改。
Claims (20)
1.一种方法,包括:
使用阈值对具有多个层的神经网络的层进行修剪;以及
使用不同的阈值重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。
2.根据权利要求1所述的方法,还包括针对所述神经网络的每个层:
初始化所述修剪误差容限;
初始化所述阈值;以及
重复以下步骤,直到针对所述层的修剪权重的百分比在针对所述层的范围内为止:
重复以下步骤,直到所述修剪误差达到所述修剪误差容限为止:
使用所述阈值对所述神经网络的所述层进行修剪;
计算经修剪的层的修剪误差;
将所述修剪误差与所述修剪误差容限进行比较;以及
响应于所述比较来改变所述阈值;
计算经修剪的层的修剪权重的百分比;以及
响应于所述修剪权重的百分比来改变所述修剪误差容限。
3.根据权利要求1所述的方法,还包括:
使用不同的修剪误差容限来重复对所述层重复进行修剪,直到针对所述层的修剪权重的百分比在针对所述层的范围内为止。
4.根据权利要求3所述的方法,其中,所述神经网络的不同类型的层针对所述修剪权重的百分比具有不同的范围。
5.根据权利要求1所述的方法,其中,对所述神经网络的所述层进行修剪包括:如果权重的量值小于所述阈值,则将所述权重设置为零。
6.根据权利要求1所述的方法,其中,对所述神经网络的所述层进行修剪包括:如果权重的量值小于按缩放因子缩放的所述阈值,则将所述权重设置为零。
7.根据权利要求6所述的方法,其中,所述缩放因子是所述层的权重的标准差。
8.根据权利要求1所述的方法,还包括:通过将权重误差的量值除以经修剪的权重的数量来计算所述修剪误差。
9.根据权利要求1所述的方法,还包括进行以下操作以产生所述不同的阈值:
如果所述修剪误差小于所述修剪误差容限,则增加所述阈值;以及
如果所述修剪误差大于所述修剪误差容限,则降低所述阈值。
10.根据权利要求1所述的方法,还包括:对于所述神经网络的每一层执行重复对所述神经网络的层进行修剪。
11.根据权利要求1所述的方法,还包括:在经修剪的层的修剪误差达到所述修剪误差容限之后,使用所述阈值迭代地对所述神经网络进行修剪和再训练。
12.一种方法,包括:
重复以下步骤:
使用自动确定的阈值对神经网络的多个层进行修剪;以及
仅使用修剪之后保留的权重对所述神经网络进行再训练。
13.根据权利要求12所述的方法,其中,对所述神经网络的层进行修剪包括:使用自动确定的阈值对所述神经网络的具有第一类型的层进行修剪。
14.根据权利要求13所述的方法,还包括:
将所述神经网络的具有与所述第一类型不同的第二类型的层的权重进行固定;
重复以下步骤:
对具有所述第一类型的层进行修剪;以及
仅使用修剪之后保留的权重对所述神经网络进行再训练;
将所述神经网络的具有所述第一类型的层的权重进行固定;以及
重复以下步骤:
对所述神经网络的具有所述第二类型的层进行修剪;以及
仅使用修剪之后保留的权重对所述神经网络进行再训练。
15.根据权利要求13所述的方法,还包括:将所述神经网络的具有与所述第一类型不同的第二类型的层的权重进行固定。
16.根据权利要求15所述的方法,还包括:
将所述神经网络的具有所述第一类型的层的权重进行固定;以及
重复以下步骤:
对所述神经网络的具有所述第二类型的层进行修剪;以及
仅使用修剪之后保留的权重对所述神经网络进行再训练。
17.根据权利要求12所述的方法,还包括:在对所述神经网络进行再训练之前,产生所述自动确定的阈值。
18.根据权利要求12所述的方法,还包括:响应于所述修剪的修剪率来调节用于再训练的退出率。
19.一种***,包括:
存储器;以及
处理器,耦接到所述存储器并被配置为:
使用阈值对具有多个层的神经网络的层进行修剪;以及
使用不同的阈值来重复对所述神经网络的所述层进行修剪,直到经修剪的层的修剪误差达到修剪误差容限为止。
20.根据权利要求19所述的***,其中,所述处理器还被配置为针对所述神经网络的每个层:
初始化所述修剪误差容限;
初始化所述阈值;以及
重复以下步骤,直到针对所述层的修剪权重的百分比在针对所述层的范围内为止:
重复以下步骤,直到所述修剪误差达到所述修剪误差容限为止:
使用所述阈值对所述神经网络的所述层进行修剪;
计算经修剪的层的修剪误差;
将所述修剪误差与所述修剪误差容限进行比较;以及
响应于所述比较来改变所述阈值;
计算经修剪的层的修剪权重的百分比;以及
响应于所述修剪权重的百分比来改变所述修剪误差容限。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762457806P | 2017-02-10 | 2017-02-10 | |
US62/457,806 | 2017-02-10 | ||
US15/488,430 | 2017-04-14 | ||
US15/488,430 US10832135B2 (en) | 2017-02-10 | 2017-04-14 | Automatic thresholds for neural network pruning and retraining |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108416423A true CN108416423A (zh) | 2018-08-17 |
CN108416423B CN108416423B (zh) | 2024-01-12 |
Family
ID=63104667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810100412.0A Active CN108416423B (zh) | 2017-02-10 | 2018-01-31 | 用于神经网络修剪和再训练的自动阈值 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10832135B2 (zh) |
KR (1) | KR102566480B1 (zh) |
CN (1) | CN108416423B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948795A (zh) * | 2019-03-11 | 2019-06-28 | 驭势科技(北京)有限公司 | 一种确定网络结构精度和延时优化点的方法和装置 |
WO2020134829A1 (zh) * | 2018-12-25 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN112949662A (zh) * | 2021-05-13 | 2021-06-11 | 北京市商汤科技开发有限公司 | 一种图像处理方法、装置、计算机设备以及存储介质 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10832135B2 (en) | 2017-02-10 | 2020-11-10 | Samsung Electronics Co., Ltd. | Automatic thresholds for neural network pruning and retraining |
KR102413028B1 (ko) * | 2017-08-16 | 2022-06-23 | 에스케이하이닉스 주식회사 | 중첩 신경망을 프루닝하는 방법 및 장치 |
KR20190051697A (ko) | 2017-11-07 | 2019-05-15 | 삼성전자주식회사 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
US10776662B2 (en) * | 2017-11-09 | 2020-09-15 | Disney Enterprises, Inc. | Weakly-supervised spatial context networks to recognize features within an image |
KR20190099927A (ko) * | 2018-02-20 | 2019-08-28 | 삼성전자주식회사 | 심층 신경망의 학습을 수행시키는 방법 및 그에 대한 장치 |
JP6831347B2 (ja) * | 2018-04-05 | 2021-02-17 | 日本電信電話株式会社 | 学習装置、学習方法および学習プログラム |
US20190378013A1 (en) * | 2018-06-06 | 2019-12-12 | Kneron Inc. | Self-tuning model compression methodology for reconfiguring deep neural network and electronic device |
US11010132B2 (en) | 2018-09-28 | 2021-05-18 | Tenstorrent Inc. | Processing core with data associative adaptive rounding |
US11281974B2 (en) * | 2018-10-25 | 2022-03-22 | GM Global Technology Operations LLC | Activation zero-bypass and weight pruning in neural networks for vehicle perception systems |
US20210397962A1 (en) * | 2018-10-31 | 2021-12-23 | Nota, Inc. | Effective network compression using simulation-guided iterative pruning |
US11663001B2 (en) * | 2018-11-19 | 2023-05-30 | Advanced Micro Devices, Inc. | Family of lossy sparse load SIMD instructions |
KR20200066953A (ko) | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
KR102163498B1 (ko) * | 2018-12-24 | 2020-10-08 | 아주대학교산학협력단 | 신경망의 프루닝-재훈련 장치 및 방법 |
JP7150651B2 (ja) * | 2019-03-22 | 2022-10-11 | 株式会社日立ソリューションズ・テクノロジー | ニューラルネットワークのモデル縮約装置 |
CN110276452A (zh) * | 2019-06-28 | 2019-09-24 | 北京中星微电子有限公司 | 神经网络模型的剪枝方法、装置、设备和人工智能芯片 |
CN110599458A (zh) * | 2019-08-14 | 2019-12-20 | 深圳市勘察研究院有限公司 | 基于卷积神经网络的地下管网检测评估云*** |
CN111553480B (zh) * | 2020-07-10 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机可读介质及电子设备 |
KR20220045424A (ko) * | 2020-10-05 | 2022-04-12 | 삼성전자주식회사 | 인공 신경망을 압축하는 방법 및 장치 |
KR102614909B1 (ko) * | 2021-03-04 | 2023-12-19 | 삼성전자주식회사 | 희소화를 이용한 뉴럴 네트워크 연산 방법 및 장치 |
JP2023063944A (ja) * | 2021-10-25 | 2023-05-10 | 富士通株式会社 | 機械学習プログラム、機械学習方法、及び、情報処理装置 |
US20230153625A1 (en) * | 2021-11-17 | 2023-05-18 | Samsung Electronics Co., Ltd. | System and method for torque-based structured pruning for deep neural networks |
KR102663160B1 (ko) * | 2023-09-07 | 2024-05-07 | 주식회사 노타 | 효율적인 생성형 인공지능 모델의 압축을 위한 프루닝 방법 및 시스템 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787408A (en) * | 1996-08-23 | 1998-07-28 | The United States Of America As Represented By The Secretary Of The Navy | System and method for determining node functionality in artificial neural networks |
US20030069652A1 (en) * | 2001-10-05 | 2003-04-10 | Lee Shih-Jong J. | Regulation of hierarchic decisions in intelligent systems |
US20040024773A1 (en) * | 2002-04-29 | 2004-02-05 | Kilian Stoffel | Sequence miner |
US20040215430A1 (en) * | 2002-04-19 | 2004-10-28 | Huddleston David Eugene | Method and apparatus for discovering evolutionary changes within a system |
US20130138589A1 (en) * | 2011-11-28 | 2013-05-30 | Microsoft Corporation | Exploiting sparseness in training deep neural networks |
CN105352907A (zh) * | 2015-11-27 | 2016-02-24 | 南京信息工程大学 | 基于径向基网络温度补偿的红外气体传感器及检测方法 |
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、***和服务器*** |
CN105512725A (zh) * | 2015-12-14 | 2016-04-20 | 杭州朗和科技有限公司 | 一种神经网络的训练方法和设备 |
CN106127217A (zh) * | 2015-05-07 | 2016-11-16 | 西门子保健有限责任公司 | 用于近似深入神经网络以用于解剖对象检测的方法和*** |
CN106295800A (zh) * | 2016-07-28 | 2017-01-04 | 北京工业大学 | 一种基于递归自组织rbf神经网络的出水总氮tn智能检测方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5288645A (en) * | 1992-09-04 | 1994-02-22 | Mtm Engineering, Inc. | Hydrogen evolution analyzer |
US6324532B1 (en) | 1997-02-07 | 2001-11-27 | Sarnoff Corporation | Method and apparatus for training a neural network to detect objects in an image |
NZ503882A (en) * | 2000-04-10 | 2002-11-26 | Univ Otago | Artificial intelligence system comprising a neural network with an adaptive component arranged to aggregate rule nodes |
WO2003079286A1 (en) * | 2002-03-15 | 2003-09-25 | Pacific Edge Biotechnology Limited | Medical applications of adaptive learning systems using gene expression data |
EP1382012B1 (en) | 2002-03-26 | 2007-01-17 | Council of Scientific and Industrial Research | Improved performance of artificial neural network models in the presence of instrumental noise and measurement errors |
WO2006026383A2 (en) * | 2004-08-26 | 2006-03-09 | Strategic Health Decisions, Inc. | Sytem for optimizing treatment strategies using a patient-specific rating system |
CN103136247B (zh) * | 2011-11-29 | 2015-12-02 | 阿里巴巴集团控股有限公司 | 属性数据区间划分方法及装置 |
US20140006471A1 (en) * | 2012-06-27 | 2014-01-02 | Horia Margarit | Dynamic asynchronous modular feed-forward architecture, system, and method |
US9798751B2 (en) | 2013-10-16 | 2017-10-24 | University Of Tennessee Research Foundation | Method and apparatus for constructing a neuroscience-inspired artificial neural network |
US9730643B2 (en) * | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
WO2016010601A2 (en) * | 2014-04-23 | 2016-01-21 | The Florida State University Research Foundation, Inc. | Adaptive nonlinear model predictive control using a neural network and input sampling |
US9672474B2 (en) * | 2014-06-30 | 2017-06-06 | Amazon Technologies, Inc. | Concurrent binning of machine learning data |
WO2016039751A1 (en) | 2014-09-11 | 2016-03-17 | Nuance Communications, Inc. | Method for scoring in an automatic speech recognition system |
US10460230B2 (en) * | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
US11423311B2 (en) * | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
US20180082181A1 (en) * | 2016-05-13 | 2018-03-22 | Samsung Electronics, Co. Ltd. | Neural Network Reordering, Weight Compression, and Processing |
US10832135B2 (en) * | 2017-02-10 | 2020-11-10 | Samsung Electronics Co., Ltd. | Automatic thresholds for neural network pruning and retraining |
-
2017
- 2017-04-14 US US15/488,430 patent/US10832135B2/en active Active
- 2017-12-20 KR KR1020170175812A patent/KR102566480B1/ko active IP Right Grant
-
2018
- 2018-01-31 CN CN201810100412.0A patent/CN108416423B/zh active Active
-
2020
- 2020-09-09 US US17/016,363 patent/US12008474B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787408A (en) * | 1996-08-23 | 1998-07-28 | The United States Of America As Represented By The Secretary Of The Navy | System and method for determining node functionality in artificial neural networks |
US20030069652A1 (en) * | 2001-10-05 | 2003-04-10 | Lee Shih-Jong J. | Regulation of hierarchic decisions in intelligent systems |
US20040215430A1 (en) * | 2002-04-19 | 2004-10-28 | Huddleston David Eugene | Method and apparatus for discovering evolutionary changes within a system |
US20040024773A1 (en) * | 2002-04-29 | 2004-02-05 | Kilian Stoffel | Sequence miner |
US20130138589A1 (en) * | 2011-11-28 | 2013-05-30 | Microsoft Corporation | Exploiting sparseness in training deep neural networks |
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、***和服务器*** |
CN106127217A (zh) * | 2015-05-07 | 2016-11-16 | 西门子保健有限责任公司 | 用于近似深入神经网络以用于解剖对象检测的方法和*** |
CN105352907A (zh) * | 2015-11-27 | 2016-02-24 | 南京信息工程大学 | 基于径向基网络温度补偿的红外气体传感器及检测方法 |
CN105512725A (zh) * | 2015-12-14 | 2016-04-20 | 杭州朗和科技有限公司 | 一种神经网络的训练方法和设备 |
CN106295800A (zh) * | 2016-07-28 | 2017-01-04 | 北京工业大学 | 一种基于递归自组织rbf神经网络的出水总氮tn智能检测方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020134829A1 (zh) * | 2018-12-25 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种神经网络批归一化的优化方法及装置 |
CN109948795A (zh) * | 2019-03-11 | 2019-06-28 | 驭势科技(北京)有限公司 | 一种确定网络结构精度和延时优化点的方法和装置 |
CN112949662A (zh) * | 2021-05-13 | 2021-06-11 | 北京市商汤科技开发有限公司 | 一种图像处理方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US12008474B2 (en) | 2024-06-11 |
KR20180092810A (ko) | 2018-08-20 |
CN108416423B (zh) | 2024-01-12 |
US20200410357A1 (en) | 2020-12-31 |
US10832135B2 (en) | 2020-11-10 |
KR102566480B1 (ko) | 2023-08-11 |
US20180232640A1 (en) | 2018-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108416423A (zh) | 用于神经网络修剪和再训练的自动阈值 | |
US20230014634A1 (en) | Processing images using deep neural networks | |
US11062181B2 (en) | Image classification neural networks | |
KR102458808B1 (ko) | 신경망을 이용한 텍스트 시퀀스 처리 | |
US11210579B2 (en) | Augmenting neural networks with external memory | |
EP3718057A1 (en) | Neural architecture search using a performance prediction neural network | |
US20210110258A1 (en) | Method and apparatus with model training and/or sequence recognition | |
US11010664B2 (en) | Augmenting neural networks with hierarchical external memory | |
KR20180096779A (ko) | 압축된 순환 신경망 모델들 | |
CN110622178A (zh) | 学习神经网络结构 | |
WO2017100711A1 (en) | Augmenting neural networks with external memory | |
KR102038719B1 (ko) | 룰―기반 컨텍스트 획득 방법 | |
CN110990531B (zh) | 一种文本情感识别方法及装置 | |
CN108614815A (zh) | 句子交互方法和装置 | |
CN113326356B (zh) | 针对文本分类器的自然对抗样本生成方法及相关装置 | |
CN104572820A (zh) | 模型的生成方法及装置、重要度获取方法及装置 | |
CN111967395A (zh) | 银行票据识别方法及装置 | |
US20240160934A1 (en) | Method for removing branches from trained deep learning models | |
US20230274143A1 (en) | Complementary Prompting For Rehearsal-Free Continual Learning | |
CN113361703B (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 |