CN114358274A - 训练用于图像识别的神经网络的方法和设备 - Google Patents
训练用于图像识别的神经网络的方法和设备 Download PDFInfo
- Publication number
- CN114358274A CN114358274A CN202110662202.2A CN202110662202A CN114358274A CN 114358274 A CN114358274 A CN 114358274A CN 202110662202 A CN202110662202 A CN 202110662202A CN 114358274 A CN114358274 A CN 114358274A
- Authority
- CN
- China
- Prior art keywords
- neural network
- channel
- pruning
- accuracy
- pruned
- 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 372
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012549 training Methods 0.000 title claims abstract description 21
- 238000013138 pruning Methods 0.000 claims abstract description 204
- 230000015654 memory Effects 0.000 claims description 70
- 238000011156 evaluation Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 7
- 238000009966 trimming Methods 0.000 claims description 6
- 239000010410 layer Substances 0.000 description 82
- 230000004913 activation Effects 0.000 description 12
- 238000001994 activation Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000000670 limiting effect Effects 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Images
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- 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
-
- 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/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Feedback Control In General (AREA)
- Image Analysis (AREA)
Abstract
公开了一种训练用于图像识别的神经网络的方法和设备。所述方法包括:接收输入图像集;以输入图像集为输入执行预训练的神经网络,以获取推断的结果值,并基于与输入图像集对应的预定结果值和推断的结果值获取预训练的神经网络的第一任务准确度;基于通道单元,通过基于预设学习权重并基于与预训练的神经网络的多个层中的每个的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络;基于第一任务准确度和修剪后的神经网络的任务准确度更新学习权重;基于更新后的学习权重和修剪后的神经网络的任务准确度更新逐通道修剪参数;和基于通道单元,基于更新后的学习权重并基于更新后的逐通道修剪参数重新修剪修剪后的神经网络。
Description
本申请要求于2020年10月13日在韩国知识产权局提交的第10-2020-0132151号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及训练用于图像识别的神经网络的方法和设备。
背景技术
人工神经网络可以是计算架构。使用神经网络装置,输入数据可被分析并且有效信息可被提取。
人工神经网络装置可使用大的计算量来处理复杂的输入数据。随着人工神经网络的学习量增大,构成人工神经网络的连接性可能变得复杂。另外,旧学习数据的准确度增大,新数据的估计值的置信度可能降低。也就是说,过拟合(overfitting)问题可能发生。此外,人工神经网络的复杂度可能增大,存储器分配量可能相应地过度增大,这可能导致小型化和商业化方面的问题。
发明内容
提供本发明内容来以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确认要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种训练用于图像识别的神经网络的方法包括:接收输入图像集;以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一任务准确度;基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络;以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的任务准确度;基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重;基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数;和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
在一个总体方面,一种训练用于图像识别的神经网络的设备包括:处理器,处理器被配置为:接收输入图像集,以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一任务准确度,基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络,以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的任务准确度,基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重,基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数,和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
在一个总体方面,一种训练用于图像识别的神经网络的方法包括:接收输入图像集;以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一准确度;针对预训练的神经网络的每个通道,基于所述通道的修剪参数和学习权重来修剪所述通道的权重;以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的第二准确度;基于预训练的神经网络的第一准确度与修剪后的神经网络的第二准确度的比较来更新学习权重;针对每个通道,基于更新后的学习权重和第二准确度来更新所述通道的修剪参数;和针对每个通道,基于所述通道的更新后的修剪参数和更新后的学习权重来重新修剪所述通道的权重。
在一个总体方面,一种神经网络的训练方法包括:将预训练的神经网络存储在存储器中;通过处理器从存储器读取预训练的神经网络;通过处理器修剪预训练的神经网络;将修剪后的神经网络存储在存储器中,其中,通过处理器修剪预训练的神经网络的步骤包括:获取由预训练的神经网络处理的推断任务的第一任务准确度,基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络,基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重,基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数,和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
在一个总体方面,一种神经网络的训练方法包括:将预训练的神经网络存储在存储器中;通过处理器从存储器读取预训练的神经网络;通过处理器修剪预训练的神经网络;将修剪后的神经网络存储在存储器中,其中,通过处理器修剪预训练的神经网络的步骤包括:针对预训练的神经网络的每个通道,基于所述通道的修剪参数和学习权重来修剪所述通道的权重;基于使用预训练的神经网络执行的推断的第一准确度与使用修剪后的神经网络执行的推断的第二准确度的比较来更新学习权重;针对每个通道,基于更新后的学习权重和第二准确度来更新所述通道的修剪参数;和针对每个通道,基于所述通道的更新后的修剪参数和更新后的学习权重来重新修剪所述通道的权重。
在一个总体方面,一种神经网络设备包括:处理器,处理器被配置为:获取由预训练的神经网络处理的推断任务的第一任务准确度;基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络;基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重;基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数;和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
在一个总体方面,一种神经网络修剪方法包括:获取由预训练的神经网络处理的推断任务的第一任务准确度;基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重来修剪神经网络;基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重;基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数;和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
逐通道修剪参数可包括用于确定修剪阈值的第一参数。
修剪的步骤可包括:在所述多个通道之中,修剪所述多个通道之中的通道元素以阈值比率或更大的比率占据0的通道。
更新学习权重的步骤可包括:响应于修剪后的神经网络的任务准确度小于第一任务准确度,更新学习权重,使得修剪后的神经网络的任务准确度增大。
所述方法可包括:重复地执行确定重新修剪后的神经网络的任务准确度和重新修剪后的神经网络的学习权重的修剪-评估操作。
所述方法可包括:基于预设回合(epoch)和重新修剪后的神经网络的任务准确度来确定是否额外执行修剪-评估操作。
所述方法可包括:响应于重复地执行修剪-评估操作,将确定的学习权重与学习权重的下限阈值进行比较;和基于比较的结果,确定是否终止当前修剪会话并发起学习权重被设置为初始参考值的后续修剪会话。
一种非暂时性计算机可读存储介质可存储指令,所述指令在由处理器执行时,将处理器配置为执行所述方法。
在另一总体方面,一种神经网络修剪设备包括:处理器,处理器被配置为:获取由预训练的神经网络处理的推断任务的第一任务准确度;基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络;基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重;基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数;和基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
逐通道修剪参数可包括用于确定修剪阈值的第一参数。
为了修剪,处理器可被配置为:在所述多个通道之中,修剪所述多个通道之中的包括在通道中的通道元素以阈值比率或更大的比率占据0的通道。
为了更新学习权重,处理器可被配置为:响应于修剪后的神经网络的任务准确度小于第一任务准确度,更新学习权重,使得修剪后的神经网络的任务准确度增大。
处理器可被配置为:重复地执行确定重新修剪后的神经网络的任务准确度和重新修剪后的神经网络的学习权重的修剪-评估操作。
处理器可被配置为:基于预设回合和重新修剪后的神经网络的任务准确度来确定是否额外执行修剪-评估操作。
处理器可被配置为:响应于重复地执行修剪-评估操作来将确定的学习权重与学习权重的下限阈值进行比较,并且基于比较的结果来确定是否终止当前修剪会话并发起学习权重被设置为初始参考值的后续修剪会话。
所述设备可包括:存储器,存储指令,所述指令在由处理器执行时将处理器配置为执行获取第一任务准确度的步骤、修剪神经网络的步骤、更新学习权重的步骤、更新逐通道修剪参数的步骤以及重新修剪修剪后的神经网络的步骤。
在另一总体方面,一种神经网络修剪方法包括:针对预训练的神经网络的每个通道,基于所述通道的修剪参数和学习权重来修剪所述通道的权重;基于使用预训练的神经网络执行的推断的第一准确度与使用修剪后的神经网络执行的推断的第二准确度的比较来更新学习权重;针对每个通道,基于更新后的学习权重和第二准确度来更新所述通道的修剪参数;和针对每个通道,基于所述通道的更新后的修剪参数和更新后的学习权重来重新修剪所述通道的权重。
更新学习权重的步骤可包括:基于第二准确度是否大于第一准确度来更新学习权重。
更新学习权重的步骤可包括:响应于第二准确度大于第一准确度,减小学习权重;并且响应于第二准确度小于或等于第一准确度,增大学习权重。
修剪权重的步骤可包括:基于修剪参数来确定权重转换函数的值;和基于权重转换函数的值来修剪权重。
修剪权重的步骤可包括:与响应于学习权重是小于第一值的第二值相比,响应于学习权重是第一值修剪更大量的权重。
从下面的具体实施方式、附图以及权利要求,其它特征和方面将是清楚的。
附图说明
图1示出在人工神经网络中执行的操作的示例。
图2示出修剪的示例。
图3示出用于修剪人工神经网络的设备的示例。
图4示出电子系统的示例。
图5是示出由用于修剪人工神经网络的设备执行的修剪算法的示例的流程图。
图6是示出由用于修剪人工神经网络的设备执行的更新修剪-评估操作变量的操作的示例的流程图。
图7示出包括人工神经网络和用于修剪人工神经网络的设备的系统的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的次序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后本领域已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已仅被提供,以示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
下面的本公开中公开的示例的结构性或功能性的描述仅意在出于描述示例的目的,并且示例可以以各种形式来实现。示例不意味着受到限制,而是意在各种修改、等同物和替换物也被覆盖在权利要求的范围内。
尽管使用“第一”或“第二”的术语来解释各种构件、组件、区域、层或部分,但是构件、组件、区域、层或部分不被术语所限制。这些术语应仅被用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分进行区分。例如,在根据本公开的构思的权利的范围内,在此描述的示例中所称的“第一”构件、“第一”组件、“第一”区域、“第一”层或“第一”部分可被称为“第二”构件、“第二”组件、“第二”区域、“第二”层或“第二”部分,或者类似地,“第二”构件、“第二”组件、“第二”区域、“第二”层或“第二”部分可被称为“第一”构件、“第一”组件、“第一”区域、“第一”层或“第一”部分。
贯穿说明书,将理解,当组件或元件被称为“在”另一组件或元件“上”、“连接到”或“结合到”另一组件或元件时,该组件或元件可直接在该另一组件或元件上、直接连接到或结合到该另一组件或元件,或者可存在介于其间的一个或多个中间组件或元件。相反,当组件或元件被称为“直接在”另一组件或元件“上”、“直接连接到”或“直接结合到”另一组件或元件时,不存在中间组件或元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前所述来解释。
在此使用的术语仅出于描述特定示例的目的,并不意在限制本公开。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。如在此使用的,术语“包含”和/或“包括”用在本说明书中时,说明存在叙述的特征、整体、步骤、操作、元件、组件或它们的组合,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。在此针对示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与示例所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域中的上下文和本公开中的含义一致的含义,并且将不以理想化或过于形式化的意义被解释。
在下文中,将参照附图详细描述示例,并且在附图中相同的参考标号始终表示相同的元件。
示例可被实现为各种类型的产品(诸如,以数据中心、服务器、个人计算机(PC)、膝上型计算机、平板计算机、智能电话、电视、智能电子装置、智能车辆、自助服务机和可穿戴装置为例)。在下文中,参照附图描述示例。尽管相同的参考标号在不同的附图中被示出,但是相同的参考标号始终表示相同的元件。
一个或多个实施例的方法和设备可在保持神经网络的性能并降低实现神经网络的系统成本的同时执行压缩。
图1示出在人工神经网络中执行的操作的示例。
人工神经网络可以是实现信息处理方法的计算系统。虽然神经网络可被称为“人工”神经网络,但是这样的称谓并不意在赋予关于神经网络架构如何计算地映射或由此直观地识别信息与人类的节点如何操作的任何相关性。也就是说,术语“人工神经网络”仅是表示神经网络的硬件实现的专门术语。
作为实现人工神经网络的方法之一,深度神经网络(DNN)可包括多个层。例如,DNN可包括输入层、输出层和多个隐藏层,输入层被配置为接收输入数据,输出层被配置为基于学习输出通过基于输入数据的预测得到的结果值,多个隐藏层设置在输入层与输出层之间。
基于用于处理信息的算法,DNN可被分类为卷积神经网络(CNN)、循环神经网络(RNN)等。
训练人工神经网络的方法可被称为深度学习。各种算法(例如,CNN方案和RNN方案)可用于深度学习。
这里,训练人工神经网络可表示确定和更新层之间的权重和偏置或属于相邻层之中的不同层的多个节点之间的权重和偏置。
例如,多个分层结构以及多个层或多个节点之间的权重和偏置可被统称为人工神经网络的连接性(connectivity)。因此,训练人工神经网络可表示构造和学习连接性。
参照图1,人工神经网络100可包括输入层、隐藏层和输出层,人工神经网络100可基于接收到的输入数据(例如,I1和I2)执行操作,并且基于执行的结果生成输出数据(例如,O1和O2)。
人工神经网络100可以是包括一个或多个隐藏层的DNN或n层人工神经网络。例如,参照图1,人工神经网络100可以是包括输入层(层1)、一个或多个隐藏层(层2和层3)和输出层(层4)的DNN。DNN可包括CNN、RNN、深度信念网络(DBN)、受限玻尔兹曼机(RBM)等。然而,这仅作为示例来提供。
当人工神经网络100被实现为DNN架构时,人工神经网络100可包括能够处理有效信息的更多层。因此,与包括单个层的人工神经网络相比,人工神经网络100可处理复杂的数据集。尽管图1示出人工神经网络100包括四个层,但是这仅作为示例来提供。人工神经网络100可包括更多数量或更少数量的层,或者可包括更多数量或更少数量的通道。人工神经网络100可包括与图1的结构不同的各种结构的层。
包括在人工神经网络100中的每个层可包括多个通道。多个通道可对应于多个节点、处理元件(PE)或与其类似的术语。例如,参照图1,层1可包括两个通道(节点),层2和层3中的每个可包括三个通道(例如,CH1至CH3)。然而,这仅作为示例来提供。包括在人工神经网络100中的每个层可包括各种数量的通道(节点)。
包括在人工神经网络100中的每个层中的通道可被互连并处理数据。例如,单个通道可从其它通道接收数据并可执行操作,并且可将操作结果输出到其它通道。
每个通道的输入和输出可分别被称为输入激活和输出激活。也就是说,激活可以是与单个通道的输出对应同时与包括在后续层中的通道的输入对应的参数。每个通道可基于从包括在前一层中的通道接收的激活、权重和偏置来确定该通道的激活。权重可以是用于计算每个通道的输出激活的参数,并且可以是分配给通道之间的连接关系的值。
每个通道可由计算单元或处理元件进行处理,计算单元或处理元件被配置为接收输入并输出输出激活。每个通道的输入和输出可被映射。例如,当σ表示激活函数、表示从包括在第(i-1)层中的第k节点到包括在第i层中的第j节点的权重、表示包括在第i层中的第j节点的偏置值并且表示第i层的第j节点的激活时,激活可被表示为下面的等式1。
等式1:
参照图1,第二层(层2)的第一通道(CH1)的激活可被表示为此外,可具有根据等式1的的值。上述等式1仅作为示例来提供,以描述用于人工神经网络100处理数据的激活、权重和偏置。激活可以是通过将从前一层接收的激活的加权传递给激活函数(例如,S型(sigmoid)函数和修正线性单元(ReLU)函数)而获取的值。
图2示出修剪(pruning)的示例。
在图2中,人工神经网络210可对应于在修剪之前预训练(或先前训练)的人工神经网络的层的一部分,人工神经网络220可对应于修剪后的人工神经网络的对应层的一部分。
参照图2,在人工神经网络210中,连接关系可形成在包括在包含在两个相邻的不同层中的每个中的三个通道中的两个节点组合的所有节点组合之间。例如,通道的层的每个节点可连接到通道的后续层的每个节点。
在图2中,预训练的人工神经网络210可以是全连接的,表示属于包括在人工神经网络210中的不同层的两个节点之间的连接强度的权重可以是大于0的值。当在所有相邻层的节点之间存在连接性时,人工神经网络210的整体复杂度增大。此外,由于过拟合(overfitting)问题,人工神经网络210的预测结果可能具有降低的准确度和置信度。
为了降低复杂度和/或过拟合,可执行对人工神经网络210的修剪。例如,当在修剪之前在人工神经网络210中的多个权重之中存在预设阈值或更小的权重时,可执行弱化(weakening)或去除对应的权重的修剪。
为了确定可被修剪的人工神经网络210的部分,可探索人工神经网络210。这里,可通过去除或减少基本上不损坏或降低人工神经网络210的准确度的人工神经网络210的层的参数或通道的部分,来修剪人工神经网络210。
可对基本上不影响人工神经网络210的输出的人工神经网络210的层的每个通道执行修剪。例如,可对基本上不影响由层的每个通道生成的输出特征图的层的每个通道的一个或多个输入特征图执行修剪。
可确定和检索权重具有小于指定阈值的值的节点之间的连接。与确认或确定为具有小于阈值的值的所有权重对应的连接关系可被去除或完全归零,或者可被忽略。
当权重小时(例如,当权重小于指定的下限阈值时),可检测人工神经网络210的对应通道。在这种情况下,检测到的通道可被选择为将从人工神经网络210去除的候选。
修剪可包括降低人工神经网络210的至少一个数值的数值形式的精度。例如,可通过分析人工神经网络210的多个层中的每个层的通道中的至少一个权重,来确定用于权重的数值形式的精度是否可降低。由于使用的数值形式的精度降低,因此可依次使用较低精度的算术硬件。低精度算术硬件可比高精度算术硬件更功率高效且更密集嵌入。与使用比所需更多数量的位的典型的人工神经网络相比,通过使用指示参数的精度和范围所需的最小数量的位,一个或多个实施例的人工神经网络可实现相对高的性能(例如,快速运行时间和/或低功耗)。
此外,一个或多个实施例的修剪方法可以以轻微的准确度损失来修剪多个通道之中的特定的通道自身。在一个示例中,多个通道之中的通道元素以阈值比率或更大的比率占据0的整个通道(例如,通道元素为0的数量与通道元素的总数量的比率大于或等于阈值比率的通道)可被修剪。例如,当层2的通道5的大多数值收敛到0并且数据数量小时,可修剪对应的通道自身。
例如,可通过在修剪之前将权重转换函数应用于人工神经网络210来转换人工神经网络210的权重,如下面的等式2所示。
等式2:
w′n,c,m=g(wn,c,m,αn,c,βn,c)·Wn,c,m
在等式2中,wn,c,m表示在修剪之前的人工神经网络(例如,人工神经网络210)的权重,w’n,c,m表示在修剪之后的人工神经网络(例如,人工神经网络220)的权重,n表示对应的层索引,c表示对应的通道索引,m表示对应的权重索引,g表示权重转换函数。
例如,权重转换函数g可被表示为下面的等式3。
等式3:
在等式3中,βn,c表示阈值确定变量,αn,c表示用于确定权重转换函数围绕阈值变化的梯度的变量。在一个示例中,βn,c可以是用于确定修剪阈值的参数。这里,αn,c和βn,c可被称为修剪参数,修剪参数可针对对应层的每个通道而被确定。例如,αn,c和βn,c可以是与第n层的第c通道对应的修剪参数。
随着α增大,权重转换函数的值可基于阈值逐渐变化。随着β增大,转换为接近0的值的权重的区域可减小。当权重转换函数的值小于或等于期望值时,权重值可被转换为0。
权重转换函数g可具有各种形式,并且可理解,在理解本公开之后,其它适用的函数也在本公开的范围内。
可通过学习来确定逐通道修剪参数。可执行人工神经网络的学习,以确定使损失函数最小化的模型参数。可将损失函数确定为在人工神经网络的学习处理期间确定最佳模型参数的索引。在一个示例中,可基于如下面的等式4所示的损失函数来训练人工神经网络。
等式4:
其中,0<λ<1,0<η<∞。
在等式4中,L'表示损失函数,L表示任务准确度,λ表示学习权重,N表示层数,C表示通道数。
参照等式4,可基于学习权重λ确定任务准确度与修剪量之间的比率。例如,随着学习权重λ变得更接近1,修剪量可增大并且任务速度可提高,这可能导致任务准确度的下降。相反,随着学习权重λ变得更接近0,任务准确度可被提高并且修剪量可减少,这可能导致任务速度的降低。在下文中,作为非限制性示例,参照图3至图6描述确定学习权重和修剪参数并基于所确定的学习权重和修剪参数来修剪人工神经网络的方法。
图3示出用于修剪人工神经网络的设备(或称为,神经网络设备)(例如,设备300)的示例。
参照图3,设备300可包括存储器310(例如,一个或多个存储器)和控制器320(例如,一个或多个处理器)。
设备300可包括存储器310和控制器320,控制器320通过系统总线或另外的适当的电路连接到存储器310。
设备300可将指令存储在存储器310中。控制器320可通过执行经由系统总线从存储器310调用的指令,来处理修剪人工神经网络的操作。
存储器310可包括本地存储器或至少一个物理存储器装置(诸如,至少一个大容量存储装置)。这里,本地存储器可包括随机存取存储器(RAM)或通常在指令的实际执行期间使用的其它易失性存储器装置。大容量存储装置可被实现为硬盘驱动器(HDD)、固态驱动器(SSD)或其它非易失性存储器装置。此外,设备300可包括至少一个高速缓存,至少一个高速缓存提供至少部分指令的临时存储空间,以减少大容量存储装置在执行修剪操作时针对指令进行搜索的次数。在一个示例中,存储器可存储预训练的人工神经网络以及修剪后的人工神经网络。
响应于由设备300执行存储在存储器310中的可执行指令,控制器320可执行在此公开的各种操作。例如,存储器310可存储指令,使得控制器320可执行图1、图2和图4至图7中描述的至少一个操作。
根据将被实现的设备的特定类型,设备300可包括比图3中示出的组件的数量少的数量的组件,或者可包括图3中未示出的附加组件。此外,至少一个组件可被包括在另外的组件中,并且可构成另外的组件的一部分。
控制器320可获取由预训练的人工神经网络处理的推断任务的任务准确度的初始值。在下文中,由预训练的人工神经网络处理的推断任务的任务准确度的初始值可被称为第一任务准确度。
人工神经网络可学习目标任务,并且构建推断模型。此外,人工神经网络可基于构建的推断模型输出关于外部输入值的推断结果。
与使用人工神经网络执行的任务相关,人工神经网络可应用于用于智能电话的面部识别模块或软件、识别操作/分类操作(诸如,对象识别、语音识别和图像分类)、医疗和诊断装置以及无人系统,并且人工神经网络可被实现为被配置为通过处理视频数据来提取有意义信息的专用处理装置。
控制器320可通过评估预训练的人工神经网络来获取任务准确度的初始值。任务准确度可包括表示预计的结果值与由人工神经网络的推断结果值之间的误差的均方误差(MSE)。这里,作为与任务准确度对应的值的MSE越小,人工神经网络的性能越好。
例如,为了测量任务准确度,控制器320可向人工神经网络输入用于测量人工神经网络的性能的数据集。控制器320可基于输入数据集来计算预计的结果值(例如,与输入数据集对应的预定结果值)与使用人工神经网络推断的结果值之间的MSE,并且可将任务准确度确定为MSE、将任务准确度确定为包括MSE或者基于MSE确定任务准确度。这里,可基于人工神经网络期望的任务的领域来不同地确定数据集。例如,可在图像分类领域中使用诸如cifar-10和cifar-100的数据集。在一个示例中,控制器320可以以输入数据集(例如,输入图像集)为输入执行人工神经网络,以获取使用人工神经网络推断的结果值,并基于与输入数据集对应的预定结果值和使用人工神经网络推断的结果值获取人工神经网络的任务准确度。在一个示例中,设备300可以是训练用于图像识别的神经网络的设备,然而,示例不限于此。
控制器320可在执行修剪之前获取预训练的人工神经网络的任务准确度作为任务准确度的初始值。例如,可通过接收训练数据集并且通过基于由人工神经网络以训练数据集为基础预测的结果执行评估,来计算任务准确度。任务准确度可以是预测损失,预测损失具有越小值,人工神经网络的推断结果越准确。除此之外,可使用各种方法来测量任务准确度。控制器320可多次评估人工神经网络,并且基于多个评估结果的平均值来获取任务准确度。
控制器320可通过根据预设学习权重基于与构成预训练的人工神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整属于通道的节点之间的权重,基于通道单元(例如,以通道为单位)来修剪人工神经网络。例如,控制器320可通过调整属于通道的节点之间的连接的至少一部分来修剪人工神经网络,该通道用于发送和接收预训练的人工神经网络的多个层中的每个层的通道信息。
这里,控制器320可获取或确定关于包括在构成预训练的人工神经网络的多个层中的通道之间的连接的信息。也就是说,控制器320可获取或确定包括在多层人工神经网络的多个层中的每个层中的通道的信息和关于包括在多个层中的通道之间的连接的信息。此外,关于连接的信息可包括关于多个层之中的相邻层之间的连接的权重的信息。
控制器320可通过调整包括在人工神经网络的层中的通道之间的连接的至少一部分,来修剪人工神经网络。例如,控制器320可通过调整人工神经网络的连接的权重的修剪操作来压缩人工神经网络。以上参照图2进行的与修剪有关的描述可应用于此。
控制器320可基于任务准确度的初始值和修剪后的人工神经网络的任务准确度,来确定(或者,更新)人工神经网络的学习权重。这里,当修剪后的人工神经网络的任务准确度小于初始值时,控制器320可确定学习权重以增大任务准确度。也就是说,当基于修剪后的人工神经网络的任务准确度确定的推断任务准确度小于基于任务准确度的初始值确定的修剪之前的人工神经网络的推断任务准确度时,学习权重可减小以防止推断任务的性能下降。例如,当任务准确度的值与推断任务的性能成比例时,控制器320可确定修剪后的人工神经网络的任务准确度的值小于修剪之前的任务准确度的值,因此可减小学习权重。相反,当任务准确度的值与推断任务的性能成反比例时,控制器320可确定修剪后的人工神经网络的任务准确度的值小于修剪之前的任务准确度的值,因此可增大学习权重。
学习权重可表示与执行一次修剪的时间相比执行的修剪的程度。用于执行一次修剪的时间量对于执行修剪的每个设备可以是相同的。因此,随着学习权重增大,在每个修剪阶段中修剪的信息量可增大。
控制器320可基于确定的学习权重和修剪后的人工神经网络的任务准确度来更新逐通道修剪参数。例如,控制器320可基于用于确定用作执行修剪的标准的权重的阈值的变量(例如,等式3中的阈值确定变量βn,c)、确定的学习权重和修剪后的人工神经网络的任务准确度来确定损失函数,并且可更新阈值确定变量以减小损失函数。
控制器320可基于更新后的逐通道修剪参数根据更新后的学习权重基于通道单元,来重新修剪修剪后的人工神经网络。控制器320可重复执行重新修剪人工神经网络并确定重新修剪后的人工神经网络的任务准确度和重新修剪后的人工神经网络的学习权重的修剪-评估操作。这里,控制器320可基于预设回合(epoch)和重新修剪后的人工神经网络的任务准确度,来确定是否额外执行修剪-评估操作。修剪-评估操作可以是测量一次修剪和任务准确度的单元。
控制器320可响应于重复地执行修剪-评估操作而将确定的学习权重与学习权重的下限阈值进行比较。控制器320可基于比较的结果,来确定是否终止当前修剪会话(session)并发起学习权重被设置为初始参考值的后续修剪会话。例如,当确定所确定的学习权重小于或等于学习权重的下限阈值时,控制器320可终止当前修剪会话,可将学习权重设置为初始参考值,并且可发起后续修剪会话。这里,通过终止当前修剪会话,控制器320可存储关于在当前修剪会话期间修剪的人工神经网络的信息。通过终止多个修剪会话中的每个,控制器320可通过比较存储的人工神经网络的性能来确定最佳修剪方法。会话可以是直到根据多个修剪-评估操作将学习权重更新为初始值为止的单元。
控制器320可执行修剪-评估操作,因此可获取修剪后的或重新修剪后的人工神经网络的任务准确度。例如,每当控制器320执行在单独会话期间执行的多个修剪-评估操作中的每个时,控制器320可获取和/或存储任务准确度并计算每个单独会话的平均任务准确度。在一个会话中计算的平均任务准确度可用作用于确定后续会话中的学习权重的比较标准。
图4示出电子系统的示例。
参照图4,电子系统400可基于人工神经网络实时分析输入数据,提取有效信息,并且基于提取的信息来确定情况和/或控制电子系统400被安装到的电子装置的组件。例如,电子系统400可以是无人机、机器人设备(诸如,高级驾驶员辅助系统(ADAS))、智能TV、智能电话、医疗装置、移动装置、视频显示装置、测量装置以及物联网(IoT)装置,或者电子系统400可包括在无人机、机器人设备(诸如,高级驾驶员辅助系统(ADAS))、智能TV、智能电话、医疗装置、移动装置、视频显示装置、测量装置以及物联网(IoT)装置中,除此之外,电子系统400可被安装到各种类型的电子装置中的至少一种。
参照图4,电子系统400可包括控制器410(例如,一个或多个处理器)、RAM 420、神经形态装置430、存储器440(例如,一个或多个存储器)和通信模块450。电子系统400的硬件组件的一部分可被安装到至少一个半导体芯片。
控制器410可控制电子系统400的整体操作。控制器410可包括单核或多核。控制器410可处理或执行存储在存储器440中的程序和/或数据。控制器410可通过执行存储在存储器440中的程序来控制神经形态装置430的功能。此外,控制器410可执行减少由神经形态装置430使用的权重信息量的修剪。控制器410可被实现为中央处理器(CPU)、图形处理器(GPU)、接入点(AP)等。图4的控制器410和存储器440可分别对应于图3的控制器320和存储器310。
RAM 420可临时存储程序、数据或指令。例如,可根据控制器410的控制或启动码将存储在存储器440中的程序和/或数据临时存储在RAM 420中。RAM 420可被实现为存储器(诸如,动态RAM(DRAM)或静态RAM(SRAM))。
神经形态装置430可基于接收到的输入数据来执行操作,并且基于执行的结果来生成信息信号。神经形态装置430可对应于专用于人工神经网络的硬件加速器或包括硬件加速器的设备。
信息信号可包括各种类型的识别信号中的一种(例如,语音识别信号、对象识别信号、视频识别信号和生物信息识别信号中的任何一种)。例如,神经形态装置430可接收包括在视频流中的帧数据作为输入数据,并且可从帧数据生成关于包括在由帧数据表示的图像中的对象的识别信号。然而,这仅作为示例来提供。神经形态装置430可接收各种类型的输入数据,并且可基于电子系统400被安装到的电子装置的类型或功能根据输入数据生成识别信号。
存储器440可以是被配置为存储数据并存储OS、各种类型的程序和各种类型的数据的存储设备。根据示例,存储器440可存储在神经形态装置430的操作执行处理期间生成的中间结果或在操作执行处理期间使用的权重。
存储器440可以是DRAM,但是这仅作为示例来提供。存储器440可包括易失性存储器和非易失性存储器中的任何一个或任何组合。非易失性存储器的示例包括ROM、随机存取可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、PRAM、MRAM、RRAM、FRAM等。非易失性存储器的示例包括DRAM、SRAM、SDRAM、PRAM、MRAM、RRAM、FeRAM等。根据示例,存储器440可包括HDD、SSD、CF、SD、微型(micro)-SD、迷你(mini)-SD、xD和记忆棒中的任何一个或任何组合。
通信模块450可包括能够与外部设备通信的各种类型的有线接口或无线接口。例如,通信模块450可包括有线局域网(LAN)、无线局域网(WLAN)(诸如,无线保真(Wi-Fi))、无线个域网(WPAN)(诸如,蓝牙)、无线通用串行总线(USB)、ZigBee、近场通信(NFC)、射频识别(RFID)、电力线通信(PLC)、移动蜂窝网络可访问的通信接口(诸如,第三代(3G)、第四代(4G)和长期演进(LTE))等。
图5是示出由用于修剪人工神经网络的设备执行的修剪算法(或称为,神经网络的训练方法)的示例的流程图。
图5的处理可由图3的用于修剪人工神经网络的设备300和图4的电子系统400中的一者或两者来执行。在一个示例中,设备300和电子系统400中的一者或两者执行的图5的处理可以是训练用于图像识别的神经网络的方法,然而,示例不限于此。
在下文中,图5和图6中使用的数值、变量的范围和等式可在理解本公开之后容易得到的范围内被修改,并且修改的数值属于公开的范围。
参照图5,在操作501中,设备可获取关于预训练的人工神经网络的信息。如上所述,关于人工神经网络的信息可以是或者可包括属于包括在多个层之中的相邻层中的各个通道的多个节点之间的权重。
在操作502中,设备可发起初始会话。这里,可将用于标识会话的索引n设置为1。
在操作503中,设备可设置修剪-评估操作变量的初始值。例如,设备可将s设置为0,s是表示在每个会话中重复的修剪-评估操作的数量的索引。
此外,设备可将表示学习权重的λs设置为作为初始参考权重值的λinit。
例如,λinit可表示学习权重的可用范围内的最大值。作为另一示例,λinit可以是学习权重的可用范围内的随机值。例如,学习权重λs可具有从0到1的值。这里,λinit可以是1。然而,这仅作为示例来提供。
此外,设备可为每个会话设置平均任务准确度Tn-1。这里,下标不是n而是n-1表示前一会话的平均任务准确度被用作与当前会话的任务准确度的比较标准。然而,这仅作为示例来提供。可使用各种方法来确定作为比较标准的任务准确度。
例如,设备可在修剪之前基于针对预训练的人工神经网络预先确定的训练数据集来重复地执行评估,然后可将得到的评估结果的平均值确定为Tinit。任务准确度可由设备确定。作为另一示例,任务准确度可由实现人工神经网络的外部设备或另外的外部设备确定,然后,设备可从外部设备获取学习准确度。
此外,设备可获取作为每个会话的终止标准的学习权重的下限阈值λmin。例如,下限阈值λmin可以是接近基于学习权重的可用范围和下限值确定的下限值的值。例如,学习权重λ可具有从0到1的值。这里,λmin可以是10-20。然而,这仅作为示例来提供。
此外,作为修剪的示例,设备可将阈值确定变量βs设置为初始值βinit,以确定用作执行修剪的标准的权重的阈值。这里,βs可将权重的阈值的大小确定为转换现有权重的权重转换函数的变量。例如,随着βs增大,阈值增大,有概率性地更多的权重可被修剪或转换为0或者被转换为更小的权重值。
在操作504中,设备可基于修剪-评估操作变量对人工神经网络执行修剪操作。
例如,设备可获取关于人工神经网络的每个相邻层的所有权重或至少一部分权重的值的信息,并且可基于预定的学习权重λs和修剪参数(例如,修剪参数包括阈值确定变量βs)来执行修剪。
在操作504中,当预训练的人工神经网络或先前修剪-评估操作中的修剪后的人工神经网络的权重值小于修剪的参考阈值时,设备可将对应的权重值转换为0或者可将权重值减小到更小值。此外,在操作504中,当预训练的人工神经网络或先前修剪-评估操作中的修剪后的人工神经网络的权重值大于修剪的参考阈值时,设备可将对应的权重值转换为1,或者可将对应的值增大到更大值。
在操作505中,设备可更新修剪-评估操作变量(例如,学习权重λs)。作为非限制性示例,参照图6进一步描述更新修剪-评估操作变量的方法。
在操作506中,设备可确定更新后的学习权重λs是否小于学习权重的下限阈值λmin。
当在操作506中确定更新后的学习权重λs大于或等于学习权重的下限阈值λmin时,设备可返回到操作504并执行后续程序。
当在操作506中确定更新后的学习权重λs小于学习权重的下限阈值λmin时,设备可执行会话终止程序。由于修剪后的人工神经网络的任务准确度的下降,修剪进展速度可能降低。因此,设备可终止当前会话n并增大学习权重λs,然后进行后续会话n+1。
在操作507中,设备可更新当前会话的平均推断任务准确度,该平均推断任务准确度是用于评估后续会话n+1中的修剪后的人工神经网络的任务准确度的比较标准。例如,设备可用在当前会话n中执行修剪-评估操作预设次数时获取的任务准确度的平均任务准确度来更新会话n中的推断任务准确度。例如,设备可根据下面的等式5更新推断任务准确度。
等式5:
Tn=AVG(Ts)
在等式5中,Tn表示会话n中的推断任务准确度,AVG表示用于计算平均值的运算符,Ts表示在会话n中获取的修剪后的人工神经网络的任务准确度的总和值。在理解本公开之后将理解,除了简单平均方法之外,以各种方式计算推断任务准确度(后续会话n=1中的任务准确度的比较标准)的任何方法都在公开的范围内。
在操作508中,设备可基于重新修剪后的人工神经网络的任务准确度和预设回合,来确定是否额外执行修剪-评估操作。
例如,在操作508中,当整个人工神经网络的至少预设比率(例如,70%)被修剪时或者当人工神经网络通过预设回合被训练时,设备可终止修剪操作。这里,可基于重新修剪后的人工神经网络的任务准确度来确定修剪程度。例如,重新修剪后的人工神经网络的任务准确度越高,修剪程度越低。例如,重新修剪后的人工神经网络的任务准确度越低,修剪程度越高。
在操作509中,设备可在更新会话之前存储关于会话n中的修剪后的人工神经网络的信息。此外,在操作509中,设备可增大下降的学习权重λs。例如,设备可将λs设置为作为初始参考权重值的λinit。
图6是示出由用于修剪人工神经网络的设备执行的更新修剪-评估操作变量的操作的示例的流程图。
图6的处理可由图3的用于修剪人工神经网络的设备300和图4的电子系统400中的一者或两者来执行。在非限制性示例中,图6的操作可对应于图5的操作505。
参照图6,在操作601中,设备可发起更新修剪-评估操作变量的操作。
在操作602中,设备可用s+1更新表示在会话n中重复修剪-评估操作的次数的s。在下文中,s表示更新后的值。
在操作603中,设备可确定任务准确度Ls-1。例如,可基于针对修剪后的人工神经网络执行的评估来确定Ls-1。如上所述,随着推断更准确,任务准确度Ls-1的值可减小。
任务准确度Ls-1可以是例如预测损失。然而,这仅作为示例来提供。
在操作604中,设备可添加当前会话n中的任务准确度历史。例如,设备可存储用于确定图5中描述的每个会话的平均推断任务准确度Tn的Ls-1。
在操作605中,设备可确定任务准确度Ls-1的值是否大于前一会话n-1中的平均推断任务准确度Tn-1的值。
当修剪后的人工神经网络的任务准确度(例如,任务准确度Ls-1)小于初始值或前一会话的推断任务准确度(例如,平均推断任务准确度Tn-1)时,设备可确定学习权重以增大任务准确度。
当在操作605中确定任务准确度Ls-1的值大于前一会话n-1中的平均推断任务准确度Tn-1的值时,例如在操作606中,设备可根据下面的等式6更新学习权重λs。
等式6:
当在操作605中确定任务准确度Ls-1的值小于或等于前一会话n-1中的平均推断任务准确度Tn-1的值时,例如在操作607中,设备可根据下面的等式7更新学习权重λs。
等式7:
这里,可基于学习权重λs和任务准确度Ls-1,来确定阈值确定变量βn,c和用于确定权重转换函数围绕阈值(例如,修剪参数)变化的梯度的变量αn,c。
在操作608中,设备可终止修剪-评估操作变量的更新。
通常,根据人工神经网络的修剪率的增大,人工神经网络的准确度可能减小。根据图4至图6的示例,可基于由设备获取的数据和等式来确定执行修剪所需的变量。也就是说,根据使修剪成本最小化的算法,不需要微调或手动设置具有相对高灵敏度的主要参数的方法来确定最佳修剪。因此,一个或多个实施例的设备可减少用于修剪的时间量和成本,这可导致提高修剪的效率。此外,通过对人工神经网络进行修剪,可降低人工神经网络的复杂度,并且相应地减少存储器分配量。
图7示出包括人工神经网络(例如,人工神经网络750)和用于修剪人工神经网络的设备(例如,设备700)的系统的示例。
例如,人工神经网络750可表示包括在设备700的外部服务器和/或数据库中的设备。
参照图7,设备700可包括存储器710(例如,一个或多个存储器)、控制器720(例如,一个或多个处理器)和通信器730。
在不脱离图7的示例的范围的情况下,与图3的存储器310和控制器320有关的描述可应用于图7的存储器710和控制器720。
设备700可通过通信器730与人工神经网络750形成通信网络。
设备700可通过通信器730从人工神经网络750获取关于人工神经网络750的信息。在执行修剪操作时,设备700可通过通信器730访问关于人工神经网络750的信息。因此,不需要将关于人工神经网络750的信息存储在存储器710中。
此外,设备700可以以各种方式来执行。例如,可通过在用户终端中执行设备700并且通过访问外部人工神经网络获取修剪后的人工神经网络,来执行设备700。作为另一示例,人工神经网络750和设备700可集成地实现在用户终端中。作为另一示例,设备700和人工神经网络750可与用户终端分开实现,用户终端可通过设备700仅获取修剪后的人工神经网络750。
在此关于图1至图7描述的设备、存储器、控制器、电子系统、RAM、神经形态装置、通信模块、通信器、设备300、存储器310、控制器320、电子系统400、控制器410、RAM 420、神经形态装置430、存储器440、通信模块450、设备700、存储器710、控制器720、通信器730以及其它设备、单元、模块、装置和组件通过硬件组件来实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例适当地包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器和被配置为执行在本申请中描述的操作的任何其它电子组件。在其它示例中,执行在本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其它装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可在本申请中描述的示例的描述中被使用,但是在其它示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其它硬件组件可通过一个或多个其它处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图7中示出的执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被如上所述地实现为执行指令或软件,以执行在本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其它操作可通过一个或多个其它处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述,使用任何编程语言编写指令或软件,附图中示出的框图和流程图以及说明书中的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如,多媒体卡或者微型卡(例如,安全数字(SD)或者极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其它装置,任何其它装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器和计算机可执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及它们的等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例将被认为仅是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其它示例中的类似特征或方面。如果描述的技术以不同的次序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其它组件或它们的等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求及它们的等同物限定,并且在权利要求及它们的等同物的范围内的所有变化应被解释为包括在公开中。
Claims (24)
1.一种训练用于图像识别的神经网络的方法,所述方法包括:
接收输入图像集;
以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一任务准确度;
基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络;
以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的任务准确度;
基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重;
基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数;和
基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
2.根据权利要求1所述的方法,其中,逐通道修剪参数包括用于确定修剪阈值的第一参数。
3.根据权利要求1所述的方法,其中,修剪的步骤包括:
修剪所述多个通道之中的通道元素以阈值比率或更大的比率占据0的通道。
4.根据权利要求1所述的方法,其中,更新学习权重的步骤包括:响应于修剪后的神经网络的任务准确度小于第一任务准确度,更新学习权重,使得修剪后的神经网络的任务准确度增大。
5.根据权利要求1至权利要求4中的任意一项所述的方法,还包括:
重复地执行确定重新修剪后的神经网络的任务准确度和重新修剪后的神经网络的学习权重的修剪-评估操作。
6.根据权利要求5所述的方法,还包括:
基于预设回合和重新修剪后的神经网络的任务准确度来确定是否额外执行修剪-评估操作。
7.根据权利要求5所述的方法,还包括:
响应于重复地执行修剪-评估操作,将确定的学习权重与学习权重的下限阈值进行比较;和
基于比较的结果,确定是否终止当前修剪会话并发起学习权重被设置为初始参考值的后续修剪会话。
8.一种训练用于图像识别的神经网络的设备,所述设备包括:
处理器,处理器被配置为:
接收输入图像集,
以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一任务准确度,
基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络,
以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的任务准确度,
基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重,
基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数,和
基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
9.根据权利要求8所述的设备,其中,逐通道修剪参数包括用于确定修剪阈值的第一参数。
10.根据权利要求8所述的设备,其中,为了修剪,处理器被配置为:修剪所述多个通道之中的包括在通道中的通道元素以阈值比率或更大的比率占据0的通道。
11.根据权利要求8所述的设备,其中,为了更新学习权重,处理器被配置为:响应于修剪后的神经网络的任务准确度小于第一任务准确度,更新学习权重,使得修剪后的神经网络的任务准确度增大。
12.根据权利要求8至权利要求11中的任意一项所述的设备,其中,处理器被配置为:重复地执行确定重新修剪后的神经网络的任务准确度和重新修剪后的神经网络的学习权重的修剪-评估操作。
13.根据权利要求12所述的设备,其中,处理器被配置为:基于预设回合和重新修剪后的神经网络的任务准确度来确定是否额外执行修剪-评估操作。
14.根据权利要求12所述的设备,其中,处理器被配置为:响应于重复地执行修剪-评估操作来将确定的学习权重与学习权重的下限阈值进行比较,并且基于比较的结果来确定是否终止当前修剪会话并发起学习权重被设置为初始参考值的后续修剪会话。
15.根据权利要求8至权利要求11中的任意一项所述的设备,还包括:存储器,存储指令,所述指令在由处理器执行时将处理器配置为执行接收输入图像集的步骤、获取第一任务准确度的步骤、修剪神经网络的步骤、获取修剪后的神经网络的任务准确度的步骤、更新学习权重的步骤、更新逐通道修剪参数的步骤以及重新修剪修剪后的神经网络的步骤。
16.一种训练用于图像识别的神经网络的方法,所述方法包括:
接收输入图像集;
以输入图像集为输入执行预训练的神经网络,以获取使用预训练的神经网络推断的结果值,并基于与输入图像集对应的预定结果值和使用预训练的神经网络推断的结果值获取预训练的神经网络的第一准确度;
针对预训练的神经网络的每个通道,基于所述通道的修剪参数和学习权重来修剪所述通道的权重;
以输入图像集为输入执行修剪后的神经网络,以获取使用修剪后的神经网络推断的结果值,并基于预定结果值和使用修剪后的神经网络推断的结果值获取修剪后的神经网络的第二准确度;
基于预训练的神经网络的第一准确度与修剪后的神经网络的第二准确度的比较来更新学习权重;
针对每个通道,基于更新后的学习权重和第二准确度来更新所述通道的修剪参数;和
针对每个通道,基于所述通道的更新后的修剪参数和更新后的学习权重来重新修剪所述通道的权重。
17.根据权利要求16所述的方法,其中,更新学习权重的步骤包括:基于第二准确度是否大于第一准确度来更新学习权重。
18.根据权利要求17所述的方法,其中,更新学习权重的步骤包括:
响应于第二准确度大于第一准确度,减小学习权重;并且
响应于第二准确度小于或等于第一准确度,增大学习权重。
19.根据权利要求16至权利要求18中的任意一项所述的方法,其中,修剪权重的步骤包括:
基于修剪参数来确定权重转换函数的值;和
基于权重转换函数的值来修剪权重。
20.根据权利要求16至权利要求18中的任意一项所述的方法,其中,修剪权重的步骤包括:与响应于学习权重是小于第一值的第二值相比,响应于学习权重是第一值来修剪更大量的权重。
21.一种神经网络的训练方法,所述训练方法包括:
将预训练的神经网络存储在存储器中;
通过处理器从存储器读取预训练的神经网络;
通过处理器修剪预训练的神经网络;
将修剪后的神经网络存储在存储器中,
其中,通过处理器修剪预训练的神经网络的步骤包括:
获取由预训练的神经网络处理的推断任务的第一任务准确度,
基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络,
基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重,
基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数,和
基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
22.一种神经网络的训练方法,所述训练方法包括:
将预训练的神经网络存储在存储器中;
通过处理器从存储器读取预训练的神经网络;
通过处理器修剪预训练的神经网络;
将修剪后的神经网络存储在存储器中,
其中,通过处理器修剪预训练的神经网络的步骤包括:
针对预训练的神经网络的每个通道,基于所述通道的修剪参数和学习权重来修剪所述通道的权重;
基于使用预训练的神经网络执行的推断的第一准确度与使用修剪后的神经网络执行的推断的第二准确度的比较来更新学习权重;
针对每个通道,基于更新后的学习权重和第二准确度来更新所述通道的修剪参数;和
针对每个通道,基于所述通道的更新后的修剪参数和更新后的学习权重来重新修剪所述通道的权重。
23.一种神经网络设备,所述神经网络设备包括:
处理器,处理器被配置为:
获取由预训练的神经网络处理的推断任务的第一任务准确度,
基于通道单元,通过基于预设学习权重并且基于与预训练的神经网络的多个层中的每个层的通道对应的逐通道修剪参数调整多个通道的节点之间的权重,来修剪神经网络,
基于第一任务准确度和修剪后的神经网络的任务准确度来更新学习权重,
基于更新后的学习权重和修剪后的神经网络的任务准确度来更新逐通道修剪参数,和
基于通道单元,基于更新后的学习权重并且基于更新后的逐通道修剪参数来重新修剪修剪后的神经网络。
24.一种存储指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,将处理器配置为执行根据权利要求1至权利要求7以及权利要求16至权利要求22中的任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200132151A KR20220048832A (ko) | 2020-10-13 | 2020-10-13 | 인공 신경망 프루닝 방법 및 장치 |
KR10-2020-0132151 | 2020-10-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114358274A true CN114358274A (zh) | 2022-04-15 |
Family
ID=77021261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110662202.2A Pending CN114358274A (zh) | 2020-10-13 | 2021-06-15 | 训练用于图像识别的神经网络的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220114453A1 (zh) |
EP (1) | EP3985574A1 (zh) |
KR (1) | KR20220048832A (zh) |
CN (1) | CN114358274A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240028055A (ko) | 2022-08-24 | 2024-03-05 | 동국대학교 산학협력단 | 사이버 공격에 강인한 인공 신경망 구조 재구성 장치 및 방법 |
KR102603427B1 (ko) * | 2023-03-09 | 2023-11-17 | 주식회사 노타 | 신경망 모델을 최적화하는 방법 및 이를 수행하는 장치 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200070831A (ko) * | 2018-12-10 | 2020-06-18 | 삼성전자주식회사 | 인공 신경망을 압축하기 위한 장치 및 방법 |
-
2020
- 2020-10-13 KR KR1020200132151A patent/KR20220048832A/ko unknown
-
2021
- 2021-04-21 US US17/236,503 patent/US20220114453A1/en active Pending
- 2021-06-15 CN CN202110662202.2A patent/CN114358274A/zh active Pending
- 2021-07-22 EP EP21187186.8A patent/EP3985574A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3985574A1 (en) | 2022-04-20 |
US20220114453A1 (en) | 2022-04-14 |
KR20220048832A (ko) | 2022-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7329455B2 (ja) | ニューラルネットワーク量子化のための方法及び装置 | |
JP7072464B2 (ja) | 固定小数点量子化ニューラルネットワークのための方法及び装置 | |
US11250320B2 (en) | Neural network method and apparatus | |
US20220335284A1 (en) | Apparatus and method with neural network | |
US11836603B2 (en) | Neural network method and apparatus with parameter quantization | |
CN109697510B (zh) | 具有神经网络的方法和装置 | |
KR20190050141A (ko) | 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치 | |
CN113168559A (zh) | 机器学习模型的自动化生成 | |
JP2020064635A (ja) | ニューラルネットワークのパラメータを量子化する方法及びその装置 | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
US11816557B2 (en) | Method and apparatus with neural network parameter quantization | |
US11763153B2 (en) | Method and apparatus with neural network operation | |
US20200226451A1 (en) | Method and apparatus with neural network layer contraction | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
JP7329352B2 (ja) | 分類のためのニューラルネットワークにおいて、パラメータを処理する方法及び装置 | |
US11868870B2 (en) | Neuromorphic method and apparatus with multi-bit neuromorphic operation | |
KR20210121946A (ko) | 뉴럴 네트워크 양자화를 위한 방법 및 장치 | |
KR102581471B1 (ko) | 분류를 위한 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 | |
KR20200139071A (ko) | 뉴럴 네트워크에서 파라미터를 양자화하는 방법 및 장치 | |
KR20240035013A (ko) | 뉴럴 네트워크의 파라미터 양자화 방법 및 장치 | |
KR20230123309A (ko) | 프루닝 방법 및 장치 | |
CN114254746A (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 |