CN114766024A - 用于修剪神经网络的方法和设备 - Google Patents
用于修剪神经网络的方法和设备 Download PDFInfo
- Publication number
- CN114766024A CN114766024A CN202080072413.4A CN202080072413A CN114766024A CN 114766024 A CN114766024 A CN 114766024A CN 202080072413 A CN202080072413 A CN 202080072413A CN 114766024 A CN114766024 A CN 114766024A
- Authority
- CN
- China
- Prior art keywords
- neural network
- neuron
- neural
- neurons
- parameter
- 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
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
- 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/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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/084—Backpropagation, e.g. using gradient descent
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)
- Character Discrimination (AREA)
- Machine Translation (AREA)
- Feedback Control In General (AREA)
- Harvester Elements (AREA)
Abstract
本发明涉及用于修剪包括多个神经元(105)的神经网络(100)的方法,所述方法包括:初始化阶段,其中获取输入信息,所述输入信息至少包括与所述神经网络(100)相关的参数({wni,bni})和表示所述神经网络(100)必须处理的任务的数据集(D),其中所述参数({wni,bni})包括与所述多个神经元中的至少一个神经元(105)相关的权重向量(wni)和/或偏置(bni);正则化阶段,其中通过使用所述数据集(D)根据训练算法来训练所述神经网络(100);阈值阶段,其中当所述权重向量(wni)的元素(wnij)的绝对值低于给定阈值(T)时,将元素置零,所述方法,其中,在所述正则化阶段,根据基于神经敏感度度量(S)的正则化更新规则演化所述参数({wni,bni}),以将与所述神经网络(100)的至少一个较不敏感的神经元(108)相关的参数驱向零,其中所述神经敏感度度量(S)基于所述多个神经元中的至少一个神经元(105)的预激活信号。
Description
描述
根据权利要求1的前序部分,本发明涉及用于修剪神经网络的方法和设备。特别地,本发明描述了用于修剪神经网络的方法和设备,使得它们可以在带宽受限的信道上传送、存储在容量受限的介质上或者部署到资源受限的装置。例如,本发明可以在用于人工智能(AI)应用(即,神经网络应用)的硬件优化芯片组中实现,诸如在众多智能手机中使用的麒麟980 CPU、A12仿生CPU和骁龙845芯片组等。
近来,因为神经元多层相连,所以神经网络(NN)可以解决极具挑战性的任务。将神经网络的复杂性定义为其可学习参数的数量,通常具有数万个神经元的架构以及数亿级别的参数的复杂性。例如,8层AlexNet内存占用超过240MB内存,而19层VGGNet内存占用超过500MB。
这种复杂性可能会限制神经网络在诸如用于参数表示的可用内存、推断时间或用于共享网络模型的传输带宽的资源受限的工业场景中的部署。所述工业场景的示例可以是为由智能手机执行的诸如相机场景和对象识别、人工智能辅助夜间拍摄、智能自拍模糊和增强现实等的改进特征而进行的神经网络的部署。在便携式或嵌入式装置上部署NN已经成为日益关注的问题。
在文献中提出了几种不同的方法,以解决当在资源受限的装置上部署神经网络时带来的内存需求、模型复杂性和能量消耗的问题。这些方法可以分为三大类:改变模型结构、参数量化和权重修剪。
改变神经网络的模型结构允许从一种架构移向另一架构,例如,通过强制精确的神经元连接或者通过共享权重,可以减少参数的数量或网络的复杂性。
量化允许减少各个参数的位表示,因此可以减少存储和使用神经网络所需的内存。
修剪技术旨在学习稀疏神经网络拓扑,即具有少许非零参数或总共具有更少的神经元的神经网络。
例如,近来由E.Tartaglione、S.A.Fiandrotti和G.Francini在文章“Learning sparse neural networks via sensitivity-driven regularization(经由敏感度驱动的正则化学习稀疏神经网络)”中提出了一种技术,该文章发表在2018年的Advances in Neural Information Processing Systems(神经信息处理系统的进展)第3878-3888页。上述作者已经引入了将神经网络的较不敏感的参数选择性地趋向零的正则化项,较不敏感的参数即对网络输出具有小的重要性,并且因此可以在不影响网络性能的情况下被修剪。这种方法对于在网络中减少非零参数的数量是有效的。
在上述文章中描述的技术方案具有以下缺点。
这种方法的第一缺点是,其旨在针对各个神经元独立地最小化非零参数的数量,因此,所学习的神经网络的稀疏拓扑通常缺乏这样的结构,该结构妥协实际压缩神经网络的可能性。
这种方法的另一缺点是,存储和访问由该方法提供的所得的修剪的神经网络的随机稀疏结构,意味着内存访问成本和处理开支中的显著惩罚。
本发明旨在通过提供用于修剪神经网络的方法和设备来解决这些和其他问题,使得ⅰ)获得结构非常紧凑的神经网络,并且ⅱ)在学习任务性能中具有有限的(或没有)惩罚。
本发明公开了用于修剪神经网络的改进的方法和设备,其允许基于神经元敏感度正则化函数将神经元的参数向零联合改进,相对于现有技术中的已知技术,不仅实现模型压缩,还实现结构简化。以这种方式,所提出的发明能够有效地简化用于资源受限的装置的神经网络。此外,所公开的框架能够例如与用于多媒体应用的神经网络压缩的任何标准结合使用。
在下文中将参照附图通过非限制性实施例详细描述本发明,其中:
-图1表示本领域已知的示例性神经网络;
-图2参照图1的神经网络,例示根据本发明实施例的修剪处理;
-图3示意性示出根据本发明实施例的用于修剪神经网络的设备的框图;
-图4示出例示根据本发明实施例的用于修剪神经网络的方法的流程图;
-图5示出来自用于手写数字识别的MNIST数据集的一些示例;
-图6汇总根据本发明实施例由申请人提供的一些结果;
-图7例示表示根据现有技术的神经网络(诸如图1的神经网络)的一些参数的矩阵;
-图8例示表示根据本发明实施例的神经网络(诸如图2的神经网络)的一些参数的矩阵。
在描述中,任何对“实施例”的参照将指示关于本发明的实现方式所描述的特定配置、结构或特征被包括在至少一个实施例中。因此,可能出现于本描述的不同部分中的短语“在实施例中”以及其他类似短语不一定都与同一实施例相关。此外,任何特定配置、结构或特征可以以任何被认为合适的方式组合在一个以上的实施例中。因此,以下的参照只是为了简便而使用,并不限制各种实施例的保护范围或延续。
参照图1,神经网络100包括多个神经元105,并且可以由加权图表示,在加权图中,各个神经元105由图的节点表示,并且两个所述神经元105之间的连接106可以由图的边表示。连接106可以由权重即神经网络100的参数表征,其可以例如表示为由根据IEEE754标准编码为四个或八个字节的实数。神经元105被组织在N层110、120、130中,其中N是整数。该图的拓扑表征神经网络100,例如属于两个相邻层110、120、130中的神经元105可以完全连接,即如图1所示,层110、120、130的各个神经元105具有到其相邻层110、120、130的每个神经元105的连接106。
考虑n作为标记所述神经网络100的层的索引,输入层110可以由n=0标识,而输出层130可以由n=N标识。隐藏层120可以以1与N-1之间的索引n的值来标识。n层的每一层都由Xn个神经元105组成,在卷积层的情况下也称为滤波器或核。对于标记为xni的第n层110、120、130的第i个神经元105,可以定义其输出值yni、其输入值向量Yn-1、其权重向量wni及其偏置参数bni。
各个神经元105具有其自己的激活函数gni(·),在一些仿射函数fni(·)之后应用,仿射函数可以是卷积、点积或它们的任意组合。神经元的输出由以下关系式给出
yni=gni[fni({wni,bni};Yn-1)]. (1)
所述神经网络100的模型M包括与神经网络100相关的参数{wni,bni}、激活函数gni、仿射函数fni和神经网络100的图的拓扑。参数化两个相邻层110、120、130之间的连接130的权重可以表示为具有Xn×Xn-1个元素wnij的矩阵,其中索引i、j分别对应于第n层标记为xni的神经元105和第(n-1)层标记为x(n-1)j的神经元105。然而,第n层110、120、130的偏置可以表示为具有Xn个元素的向量。参数{wni,bni}的量如何随着所述神经网络100的神经元105和层110、120、130的数量的增长而线性增加是清楚的。
在部署神经网络100之前,需要对其进行训练。它的训练可以通过数据集D来执行,数据集D表示神经网络100必须处理的任务,诸如手写数字识别、语音识别、图像识别等。通常,所述数据集D包括诸如对(dk;vk)的大量示例,各个对包括输入值dk及其对应的目标值vk。例如,在手写数字的情况下,输入值dk可以是手写数字的灰度图像,其中图像的各个像素的亮度被编码为0-255范围内的数字,而目标值vk可以是对应的ASCII代码索引。例如,图5示出来自已知的MNIST数据集的一些图像,MNIST数据集以60k训练加上大小为28×28灰度的手写数字的10k测试图像组成。数据集D通常被随机划分为第一训练集U和第一验证集V,使得可以通过使用与第一训练集U相关的信息来训练神经网络100,以在所述第一验证集V上实现一些令人满意的第一性能水平A。第一性能水平A可以通过根据预定度量的值的集合来定义,例如,神经网络100可允许的最大误差。
通常,通过针对模型M的一些给定参数{wni,bni}定义损失函数L来执行神经网络100的训练。例如,损失函数L可以由以下关系式定义
其中k是在学习时期t,在第一训练集U的示例对上运行的索引,Yk是由具有dk作为输入值并且vk是其各个示例的对应目标值的神经网络100获得的输出。因此,神经网络100的训练通常通过运行本领域已知的具有误差梯度反向传播算法的梯度下降,通过最小化模型M的参数{wni,bni}上的损失函数L来执行。
在上述训练过程期间,模型M参数{wni,bni}根据梯度下降更新规则(3)从学习时期t演变到时期t+1,使得实现第一性能水平A。
作为训练过程的结果,参数{wni,bni}被训练。
如前所述,参数{wni,bni}的量随着所述神经网络100的神经元105和层110、120、130的数量线性增加。此外,在训练过程之后收集权重向量wni的矩阵通常是密集的,即它们具有少许的零元素,而在根据引用的现有技术的修剪过程之后,所述矩阵通常是非结构化的,即它们具有随机分布的非零元素。图7示出具有96×96个元素的矩阵700的示例,其表示在根据上述现有技术的训练和修剪过程之后,例如按行布置的层110、120、130中的所有神经元的权重向量wni,其中黑点表示非零权重并且白点表示零权重。由于在训练过程之后权重向量wni的密集或非结构化模式,这些矩阵的压缩是无效的,因此难以在资源受限的装置的情况中利用诸如所述神经网络100的神经网络进行操作。
所提出的发明允许有效地简化用于资源受限的装置的神经网络,以及用于多媒体应用的神经网络的压缩。
参照图2,参照神经网络100描述根据本发明实施例的修剪处理,以获得所得的修剪的神经网络200。
在本发明中描述的用于修剪神经网络的方法允许学习网络拓扑,该网络拓扑不仅是稀疏的,而且各个层具有更少的神经元,或者对于卷积层等同地具有更少的滤波器。更少的神经元简化了在内存受限的装置上获得网络拓扑的紧凑表示的任务。作为另一优点,受益于更好地利用了缓存局部性和内存访问模式,更小且更密集的模型还可以加速网络执行。
根据本发明,执行将与至少一个较不敏感的神经元108相关的参数驱向零的更新规则。这允许在以下步骤中修剪至少一个较不敏感的神经元108,即将其由连接107表示的所有相关的参数置零,诸如其偏置及其所有权重。所得的修剪后的神经网络200具有数量减少的神经元105和对应的连接106,因此非零参数{wni,bni}的数量减少,这允许例如通过更小的矩阵(即,具有数量减少的行或列)来表示它们。
相反,由E.Tartaglione等人在上述引用的文章中描述的方法公开了仅修剪(即置零)神经网络100的权重wnij的方法,结果获得数量减少的参数{wni,bni}。应当注意,由E.Tartaglione等人描述的方法可以在神经网络100中的一些神经元105的所有连接106(即,所有权重wnij)被意外修剪时关闭它们。然而,这种现象是副作用,不受引用的本领域的已知方法的控制。
图3示出例示根据本发明实施例的用于修剪神经网络100的设备300的框图。所述设备300可以包括输入装置310、存储装置320、通信装置330、输出装置340和处理装置350,它们可以例如通过允许在所述输入装置310、存储装置320、通信装置330和处理装置340之间交换信息的通信总线301可操作地连接。或者,在没有所述通信总线301的情况下,输入装置310、存储装置320、通信装置330、输出装置340和处理装置350可以通过星形架构可操作地连接。
输入装置310适于从用户读取输入信息,诸如数据和/或指令。所述输入信息可以包括例如参数{wni,bni}、所述神经网络100的模型M、数据集D、第一性能水平A和将由所得的修剪后的神经网络200实现的第二性能水平A*。这种输入装置310可以包括例如键盘、触摸屏、存储装置和根据USB、蓝牙、火线、SATA、SCSI标准等的接口,等等。
存储装置320适于存储信息和用于执行根据本发明实施例的方法的指令集合。将参照图4详细描述所述方法。存储的信息可以与参数{wni,bni}、所述神经网络100的模型M、数据集D、第一性能水平A、第二性能水平A*和所述所得的修剪后的神经网络200的修剪后的模型M*相关,其按照用于修剪神经网络100的方法获得。修剪后的模型M*包括作为用于修剪神经网络100的方法的结果的修剪后的参数{w*ni,b*ni}。所述修剪后的参数{w*ni,b*ni}可以表示为稀疏矩阵,即它们具有少许非零元素。此外,所述稀疏矩阵是结构化的,即它们的元素不是随机分布的,这允许有利地有效压缩所述修剪后的参数{w*ni,b*ni}。根据本领域已知的任何技术,修剪后的参数{w*ni,b*ni}的压缩可以是无损的或有损的。例如,在无损压缩的情况下,修剪后的参数{w*ni,b*ni}可以通过算术编码技术来编码,或者在有损压缩的情况下,可以通过码本来量化等。图8示出具有500×800个元素的矩阵800的示例,其表示在根据本发明实施例的修剪过程之后,例如按行布置的层110、120、130中的所有神经元的权重向量w*ni,其中黑点表示非零权重并且白点表示零权重。这种存储装置320可以包括例如基于半导体电子和/或光电和/或磁技术的易失性和/或非易失性存储单元。
通信装置330用于向诸如膝上电脑、智能手机、远程服务器等的另一设备发送与修剪后的模型M*相关的信息。与修剪后的模型M*相关的所述信息可以是例如按照由本发明描述的方法获得的修剪后的参数{w*ni,b*ni}。这种通信装置330可以包括例如根据Wi-Fi、GSM、LTE、以太网标准等的收发器。
输出装置340适于向所述用户提供诸如经处理的数据的输出信息。所述经处理的数据可以包括例如所述所得的修剪后的神经网络200的修剪后的参数{w*ni,b*ni}和/或修剪后的模型M*。这种输出装置340可以包括例如屏幕、触摸屏、存储装置和根据USB、蓝牙、火线、SATA、SCSI标准等的接口。
处理装置350适于处理数据并执行由存储装置320存储的指令集合。这种处理装置340可以包括例如基于ARM架构或X64架构的中央处理单元(CPU)和/或图形处理单元(GPU)。这种处理装置340可以例如由类似Arduino的微控制器来实现,或者可以由诸如CPLD、FPGA的专用硬件组件来实现,或者可以由诸如Intel Nervana神经网络处理器等的专用(purpose-built)芯片组来实现。处理装置350可以控制由输入装置310、存储装置320、通信装置330和输出装置340执行的操作。
此外,图3所示的框图仅是示例性的,它允许理解本发明如何工作以及本领域的技术人员如何实现它。本领域的技术人员理解这些图表没有限制意义,其中所示的功能、相互关系和信息可以以许多等同的方式布置;例如,看似由不同逻辑块执行的操作可以由硬件和软件资源的任意组合来执行,也可以由相同资源实现不同或所有块。
参照图4,描述参照图3的框图的修剪神经网络100的方法。
在步骤400,由所述处理装置350执行初始化阶段。在这个阶段,处理装置350获取所述输入信息,所述输入信息可以已经由存储装置320存储,或者可以由所述输入装置310取得然后由存储装置320存储。所述输入信息可以包括与神经网络100相关的参数{wni,bni}、所述神经网络100的模型M、代表神经网络100必须处理的任务的数据集D、以及将由所得的修剪后的神经网络200实现的第二性能水平A*。参数{wni,bni}可以包括与标记为xni的至少一个神经元105相关的权重向量wni和/或偏置bni。
在本发明的优选实施例中,所述输入信息可以包括已经根据本领域已知的诸如梯度下降算法的任何技术训练好的所述参数{wni,bni}。
在步骤410,由所述处理装置350执行分离阶段。在这个阶段期间,处理装置350生成所述数据集D的分区,以获得通常彼此分离的第二训练集U’和第二验证集V’,它们可以由所述存储装置320存储。优选地,所述第二训练集U’和第二验证集V’可以随机生成,例如数据集D可以随机采样。
在步骤420,由所述处理装置350执行正则化阶段。在这个阶段期间,处理装置350通过使用数据集D,根据训练算法来训练神经网络100,即训练模型M。例如,训练可以通过使用第二训练集U’,由所述梯度下降算法来执行。在这个阶段期间,参数{wni,bni}根据基于神经敏感度度量S的正则化更新规则从学习时期t演化到时期t+1,以将与神经网络100的至少一个较不敏感的神经元108相关的参数驱向零。神经敏感度度量S基于神经网络100的至少一个神经元105的预激活信号,即激活函数gni的输入值。预激活信号可以取决于标记为xni的神经元105的输入值向量Yn-1和参数{wni,bni}。这允许在接下来的步骤430中修剪至少一个较不敏感的神经元108,即将其由连接107表示的所有相关参数置零,诸如偏置bni和其权重向量wni。
所述正则化更新规则可以将与至少一个较不敏感的神经元108相关的权重向量wni(即所有权重wnij)驱向零;正则化更新规则可以写作例如以下关系式
正则化更新规则(4)的第一项和第二项对应于本领域已知的更新规则,而第三项对应于用于属于标记为xni的神经元105的权重wnij的惩罚项。所述惩罚项与标记为xni的神经元105的神经非敏感度度量成正比,其可以被定义为标记为xni的所述神经元105的所述神经敏感性度量Sni的补偿。因此,所述神经非敏感度度量可以写作例如以下关系式
神经敏感度度量Sni被定义,以评估是否应该从神经网络100修剪标记为xni的神经元105。为此,标记为xni的神经元105的神经敏感度度量Sni基于标记为xni的神经元105的预激活信号,预激活信号可以取决于输入值向量Yn-1及其参数{wni,bni}。
标记为xni的神经元105的预激活信号,可以利用标记为xni的所述神经元105的突触后电位函数pni在给定其输入值向量Yn-1及其参数{wni,bni}的情况下确定。突触后电位函数pni(·)可以写作例如以下关系式
pni=fni({wni,bni};Yn-1). (6)
因此,标记为xni的神经元105的所述神经敏感度度量Sni可以写作例如以下关系式
这种定义允许评估标记为xni的神经元105对神经网络100的输出YN的贡献,其中XN是输出层130中的神经元105的数量,yNj是输出层130中的第j个神经元105的输出,并且pni(·)是标记为xni的神经元105的所述突触后电位函数。
当标记为xni的神经元105的神经敏感度度量Sni很小时,即Sni→0,那么标记为xni的所述神经元105对输出层130中的第j个神经元105的输出yNj产生很小的贡献,因此其参数趋向零对所述神经网络100的输出几乎没有干扰。类似地,当标记为xni的神经元105的神经非敏感度度量增加时,即表示标记为xni的所述神经元105对输出层130没有贡献,因此根据如上述关系式(4)中的示例所示的正则化更新规则,其参数可以被驱向零。所述正则化更新规则可以例如与梯度下降算法一起迭代执行。
根据本发明的目的,这允许在第二阶段中修剪较不敏感的神经元108,而不是修剪单个连接106,即独立修剪神经元参数,因此从所述神经网络100获得具有结构化稀疏的所得的修剪后的神经网络200。
在本发明的另一实施例中,可以执行局部正则化更新规则来代替由关系式(4)提供的所述正则化更新规则。根据定义(7),神经敏感度度量S表示输出层130中给定神经元105的全局影响的度量。所述定义考虑了参与计算的所有先前的神经元105。在本实施例中,提供了局部神经敏感度度量的定义,其仅独立地基于各个神经元105的预激活信号和输出信号。
显然,惩罚项,即第三项,仅在神经元105保持关闭的情况下被应用。这表示神经敏感度度量的巨大近似,降低了本发明的计算复杂性。
在步骤430,由所述处理装置350执行阈值阶段。在这个阶段期间,处理装置350将神经网络100的参数{wni,bni}置零。例如,当权重向量wni的元素wnij的绝对值低于给定阈值T∈[0,+∞)时,可以将其置零。例如通过二分法,基于模型M的性能,通过从最小值Tmin增加直到达到最佳值T*来确定阈值T的值。所述最小值Tmin可以例如通过取模型M的参数{wni,bni}的整组的最小值来确定。在这个阶段期间,与至少一个标记为xni的神经元105相关的偏置bni当对应的权重向量wni被置零时可以被置零。
在步骤440,由所述处理装置350执行检查阶段。在这个阶段期间,处理装置350评估神经网络100(即模型M)在第一验证集V和/或第二验证集V’上的性能。例如,神经网络100(即模型M)的性能可以根据诸如损失函数L的预定度量来评估。接下来,处理装置350验证神经网络100(即模型M)的性能是否大于所述第二性能水平A*。在肯定的情况下,处理装置350执行步骤410,否则执行步骤450。
在步骤450,由所述处理装置350执行输出阶段。在这个阶段期间,处理装置350提供诸如所得的修剪后的神经网络200的修剪后的参数{w*ni,b*ni}和/或修剪后的模型M*的所述处理的数据作为输出。在这个阶段期间,处理装置350可以例如将所述经处理的数据存储到所述存储装置320,和/或可以通过所述输出装置340向所述用户提供与所述经处理的数据相关的输出信息,和/或可以通过所述通信装置330向诸如远程服务器的所述装置发送与所述经处理的数据相关的信息。
参照图6,将讨论由申请人进行的性能测试的结果。
在这些测试中,根据本发明实施例修剪了LeNet-5神经网络架构并且评估了其性能。这些测试是在H.Xiao,K.Rasul和R.Vollgraf在“Fashion-mnist:a novel imagedataset for benchmarking machine learning algorithms(一种用于机器学习算法基准测试的新型图像数据集)”中提出的Fashion-MNIST数据集上执行的,其发表于CoRR,第abs/1708.07747卷,2017年,可于http://arxiv.org/abs/1708.07747在线获得。该数据集与MNIST数据大小相同,但它包含女装、鞋子等的图像。众所周知,由于Fashion-MNIST的图像不像MNIST那样稀疏,因此Fashion-MNIST数据集比MNIST数据集更难分类。
根据本发明实施例的方法在具有8GB内存的RTX2080 NVIDIA GPU上使用PyTorch1.0.1以Python实现。模型的训练通过使用学习率η=0.1在20个学习时期上使用随机梯度下降(SGD)技术来执行。由于SGD通过从随机选择的数据子集计算的梯度估计来代替从整个数据集计算的实际梯度,因此SGD可以被视为梯度下降算法的随机近似。对于神经敏感度度量和局部神经敏感度度量都采用λ=10-5,在这种情况下,修剪测试的LeNet-5神经网络所需的时期在2000的数量级。
利用神经敏感度度量(Proposed-LB)和局部神经敏感度度量(Proposed-local)修剪的参数的数量几乎是通过现有技术(Tartaglione等人)修剪的参数的数量的两倍。对理解本发明的优点最重要的是,观察被修剪的神经元的数量,与Proposed-local相比,Proposed-LB修剪了更多的神经元,并且两者都比参照Tartaglione等技术修剪了更多的神经元。这是来自神经敏感度度量公式的全局信息与局部神经敏感度度量公式相比的效果。
总而言之,所获得的结果表明,在本发明中描述的方法在修剪参数和修剪神经元这两方面都优于现有技术的修剪方案。
因此,根据如上提供的描述,本发明的优点显而易见。
根据本发明的用于修剪神经网络的方法和设备,有利地允许通过基于神经元敏感度度量的正则化函数来学习紧凑的网络拓扑,这促进了结构化稀疏架构。
本发明的另一优点是,它允许在学习任务中获得具有有限的(或没有)惩罚的非常紧凑的神经网络。
本发明的另一优点是,在没有任何规定的情况下,它可以有利地应用于任何神经网络模型。
本描述已经解决了一些可能的变型,但是显而易见,本领域技术人员还可以实现其他实施例,其中一些元素可以以其他技术上等同的元素来替换。因此,本发明不限于本文描述的示例性示例,而是可以在不脱离如以下权利要求书中阐述的基本发明思想的情况下,对等同部件和元素进行许多变型、改进或替换。
Claims (20)
1.一种方法,其用于修剪包括多个神经元(105)的神经网络(100),所述方法包括:
-初始化阶段,其中由输入装置(310)获取输入信息,所述输入信息至少包括与所述神经网络(100)相关的参数({wni,bni})和表示所述神经网络(100)必须处理的任务的数据集(D),其中所述参数({wni,bni})包括与所述多个神经元中的至少一个神经元(105)相关的权重向量(wni)和/或偏置(bni);
-正则化阶段,其中所述神经网络(100)由处理装置(350)通过使用所述数据集(D)根据训练算法来训练;
-阈值阶段,其中当所述权重向量(wni)的元素(wnij)的绝对值低于给定阈值(T)时,由所述处理装置(350)将元素置零,
所述方法的特征在于,在所述正则化阶段,根据基于神经敏感度度量(S)的正则化更新规则演化所述参数({wni,bni}),以将与所述神经网络(100)的至少一个较不敏感的神经元(108)相关的参数驱向零,其中所述神经敏感度度量(S)基于所述多个神经元中的至少一个神经元(105)的预激活信号。
2.根据权利要求1所述的方法,其中,所述预激活信号取决于所述至少一个神经元(105)的输入值向量(Yn-1)和参数({wni,bni})。
3.根据权利要求1或2所述的方法,其中,所述正则化更新规则将与所述至少一个较不敏感的神经元(108)相关的权重向量(wni)驱向零。
4.根据权利要求1至3中任一项所述的方法,其中,所述神经敏感度度量(S)表示所述神经网络(100)的输出层(130)中的给定神经元(105)的全局影响的度量,其中所有先前的神经元(105)都参与所述神经敏感度度量(S)的计算。
5.根据权利要求1至3中任一项所述的方法,其中,所述神经敏感度度量(S)仅独立地基于各个所述神经元(105)的所述预激活信号和输出信号。
6.根据权利要求1至5中任一项所述的方法,其中,所述阈值(T)的值通过从最小值(Tmin)增加直到达到最佳值(T*)来确定,其中通过取所述参数({wni,bni})的整组的最小值来确定所述最小值(Tmin)。
7.根据权利要求1至6中任一项所述的方法,其中,与至少一个神经元(105)相关的所述偏置(bni)当其对应的权重向量(wni)被置零时被置零。
8.根据权利要求1至7中任一项所述的方法,其中,所述训练算法是梯度下降算法或随机梯度下降算法。
9.根据权利要求1至8中任一项所述的方法,包括输出阶段,其中由所述处理装置(350)提供经处理的数据作为输出,所述经处理的数据诸如所得的修剪后的神经网络(200)的修剪后的参数{w*ni,b*ni}和/或修剪后的模型(M*)。
10.根据权利要求9所述的方法,其中,由通信装置(330)将所述经处理的数据发送到装置。
11.一种设备(300),其用于修剪包括多个神经元(105)的神经网络(100),所述设备(300)包括输入装置(310)和处理装置(350),所述设备(300)被用来执行:
-初始化阶段,其中由输入装置(310)获取输入信息,并且所述输入信息至少包括与所述神经网络(100)相关的参数({wni,bni})和表示所述神经网络(100)必须处理的任务的数据集(D),其中所述参数({wni,bni})包括与所述多个神经元中的至少一个神经元(105)相关的权重向量(wni)和/或偏置(bni);
-正则化阶段,其中所述神经网络(100)由所述处理装置(350)通过使用所述数据集(D)根据训练算法来训练;
-阈值阶段,其中当所述权重向量(wni)的元素(wnij)的绝对值低于给定阈值(T)时,利用所述处理装置(350)将该元素置零,
所述设备(300)的特征在于,在所述正则化阶段,根据基于神经敏感度度量(S)的正则化更新规则演化所述参数({wni,bni}),以将与所述神经网络(100)的至少一个较不敏感的神经元(108)相关的参数驱向零,其中所述神经敏感度度量(S)基于所述多个神经元中的至少一个神经元(105)的预激活信号。
12.根据权利要求11所述的设备(300),其中,所述预激活信号取决于所述至少一个神经元(105)的输入值向量(Yn-1)和参数({wni,bni})。
13.根据权利要求11或12所述的设备(300),其中,所述正则化更新规则将与所述至少一个较不敏感的神经元(108)相关的权重向量(wni)驱向零。
14.根据权利要求11至13中任一项所述的设备(300),其中,所述神经敏感度度量(S)表示所述神经网络(100)的输出层(130)中的给定神经元(105)的全局影响的度量,其中所有先前的神经元(105)都参与所述神经敏感度度量(S)的计算。
15.根据权利要求11至13中任一项所述的设备(300),其中,所述神经敏感度度量(S)仅独立地基于各个所述神经元(105)的所述预激活信号和输出信号。
16.根据权利要求11至15中任一项所述的设备(300),其中,所述阈值(T)的值通过从最小值(Tmin)增加直到达到最佳值(T*)来确定,其中通过取所述参数({wni,bni})的整组的最小值来确定所述最小值(Tmin)。
17.根据权利要求11至16中任一项所述的设备(300),其中,与至少一个神经元(105)相关的所述偏置(bni)当其对应的权重向量(wni)被置零时被置零。
18.根据权利要求11至17中任一项所述的设备(300),其中,所述训练算法是梯度下降算法或随机梯度下降算法。
19.根据权利要求11至18中任一项所述的设备(300),包括输出阶段,其中由所述处理装置(350)提供经处理的数据作为输出,所述经处理的数据诸如所得的修剪后的神经网络(200)的修剪后的参数{w*ni,b*ni}和/或修剪后的模型(M*)。
20.根据权利要求19所述的设备(300),包括通信装置(330),其中,由所述通信装置(330)将所述经处理的数据发送到装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT102019000018821 | 2019-10-15 | ||
IT102019000018821A IT201900018821A1 (it) | 2019-10-15 | 2019-10-15 | Method and apparatus for pruning neural networks |
PCT/IB2020/059379 WO2021074743A1 (en) | 2019-10-15 | 2020-10-06 | Method and apparatus for pruning neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114766024A true CN114766024A (zh) | 2022-07-19 |
Family
ID=69570773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080072413.4A Pending CN114766024A (zh) | 2019-10-15 | 2020-10-06 | 用于修剪神经网络的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220284298A1 (zh) |
EP (1) | EP4035087A1 (zh) |
CN (1) | CN114766024A (zh) |
IT (1) | IT201900018821A1 (zh) |
WO (1) | WO2021074743A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008305B (zh) * | 2019-11-29 | 2023-06-23 | 百度在线网络技术(北京)有限公司 | 一种视觉搜索方法、装置以及电子设备 |
US20220300816A1 (en) * | 2021-03-19 | 2022-09-22 | Rebellions Inc. | Neural processing device and method for pruning thereof |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11315018B2 (en) * | 2016-10-21 | 2022-04-26 | Nvidia Corporation | Systems and methods for pruning neural networks for resource efficient inference |
-
2019
- 2019-10-15 IT IT102019000018821A patent/IT201900018821A1/it unknown
-
2020
- 2020-10-06 EP EP20789691.1A patent/EP4035087A1/en active Pending
- 2020-10-06 CN CN202080072413.4A patent/CN114766024A/zh active Pending
- 2020-10-06 WO PCT/IB2020/059379 patent/WO2021074743A1/en unknown
- 2020-10-06 US US17/769,707 patent/US20220284298A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4035087A1 (en) | 2022-08-03 |
IT201900018821A1 (it) | 2021-04-15 |
WO2021074743A1 (en) | 2021-04-22 |
US20220284298A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875268B2 (en) | Object recognition with reduced neural network weight precision | |
Liang et al. | Pruning and quantization for deep neural network acceleration: A survey | |
US20190087713A1 (en) | Compression of sparse deep convolutional network weights | |
KR102558300B1 (ko) | 신경망 및 신경망 트레이닝 방법 | |
KR20190110068A (ko) | 딥 신경망들의 동적 적응 | |
CN111417963A (zh) | 改进的尖峰神经网络 | |
KR102295805B1 (ko) | 학습 데이터 관리 방법 | |
WO2019229733A1 (en) | Mimicking a neural network without the original training dataset | |
CN112001498A (zh) | 基于量子计算机的数据识别方法、装置及可读存储介质 | |
CN111027619B (zh) | 一种基于忆阻器阵列的K-means分类器及其分类方法 | |
CN107223260B (zh) | 用于动态地更新分类器复杂度的方法 | |
Barman et al. | Transfer learning for small dataset | |
Tripathi et al. | Image classification using small convolutional neural network | |
CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
CN114792378A (zh) | 一种量子图像识别方法及装置 | |
KR20200063041A (ko) | 아키텍처 변이 기반 비지도 학습 및 선택적 오류 전파 기반 지도 학습을 이용한 신경망 학습 방법 및 장치 | |
Khan et al. | Bridgeout: stochastic bridge regularization for deep neural networks | |
CN117437494A (zh) | 一种图像分类方法、系统、电子设备及存储介质 | |
WO2021073752A1 (en) | Design and training of binary neurons and binary neural networks with error correcting codes | |
KR102308752B1 (ko) | 객체 추적 방법 및 장치 | |
KR102264285B1 (ko) | 수질 관리를 위한 조류 정량화 방법 | |
CN117273105A (zh) | 一种针对神经网络模型的模块构建方法及装置 | |
Lee | Differentiable sparsification for deep neural networks | |
KR102457893B1 (ko) | 딥러닝 기반의 강수량 예측 방법 | |
CN115063374A (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 |