提供深度神经网络的权重的平衡修剪的系统和方法技术方案

技术编号:23625221 阅读:36 留言:0更新日期:2020-03-31 22:52
一种提供深度神经网络的权重的平衡修剪的系统和方法,其中,在所述系统和方法中,将DNN的权重划分为多个组,在每个组中确定非零权重的数量的计数,确定每个组中的权重的计数的方差,利用具有每个组中的权重的计数的方差等于0的约束使用拉格朗日乘子使DNN的损失函数最小化,并通过反向传播重新训练权重和拉格朗日乘子。

The system and method of balancing pruning to provide the weight of deep neural network

【技术实现步骤摘要】
提供深度神经网络的权重的平衡修剪的系统和方法本申请要求于2018年9月24日提交到美国专利商标局并且被分配序列号62/735,846的美国临时专利申请以及于2018年11月9日提交到美国专利商标局并且被分配序列号16/186,470的美国非临时专利申请的优先权,所述美国临时专利申请和所述美国非临时专利申请的全部内容通过引用整体包含于此。
在此公开的主题涉及神经网络。更具体地,在此公开的主题涉及提供深度神经网络(DNN)的权重的平衡修剪(balancedpruning)的系统和方法。
技术介绍
神经网络硬件被设计为加速深度神经网络的计算。然而,硬件加速器在处理稀疏参数(sparseparameters)方面效率不高,并且平衡神经网络参数的稀疏度以确保并行处理元件具有相同量的工作负荷是一个难题。稀疏度被用于减小参数大小并提高深度神经网络的计算效率。
技术实现思路
示例实施例提供一种提供深度神经网络(DNN)的权重的平衡修剪的系统,所述系统可包括:权重掩蔽器和损失确定器。权重掩蔽器可掩蔽DNN的多个权重组中的权重的每个组中的权重;损失确定器可基于DNN的网络损失减去所述多个权重组中的非零权重的计数的方差,来确定DNN的损失。在一个实施例中,损失确定器还可基于DNN的网络损失减去与拉格朗日乘子相乘的所述多个权重组中的非零权重的计数的方差,来确定DNN的损失。在另一实施例中,权重掩蔽器可将权重的每个组中的权重与掩蔽函数相乘。在另一实施例中,掩蔽函数可以是可微分的。示例实施例提供一种提供深度神经网络(DNN)的权重的平衡修剪的方法,所述方法可包括:将DNN的权重划分为多个组;通过权重掩蔽器将掩蔽函数应用于每个组中的权重;在掩蔽函数被应用之后,确定每个组中的非零权重的数量的计数;确定每个组中的非零权重的计数的方差;通过损失确定器利用具有每个组中的非零权重的计数的方差等于0的约束使用拉格朗日乘子,使DNN的损失函数最小化;通过反向传播重新训练权重和拉格朗日乘子。在一个实施例中,拉格朗日乘子可被用于乘以每个组中的非零权重的计数的方差。在另一实施例中,后处理可包括:确定重新训练的权重的模式;如果所述多个组中的组在平衡修剪之后具有更多的非零权重,则将应用于该组的掩蔽函数调整为0,直到该组的非零权重的计数等于重新训练的权重的模式为止;以及如果所述多个组中的组在平衡修剪之后具有更少的非零权重,则将应用于该组的掩蔽函数调整为1,直到该组的非零权重的计数等于重新训练的权重的模式为止。附图说明在以下部分中,将参照附图中示出的示例性实施例来描述在此公开的主题的方面,其中:图1描述根据在此公开的主题的示例阈值函数的曲线图;图2是根据在此公开的主题的用于DNN的平衡自修剪的方法的流程图;图3是根据在此公开的主题的后处理方法的示例实施例的流程图;图4描述根据在此公开的主题的平衡自修剪器的示例实施例。具体实施方式在以下具体实施方式中,阐述了许多具体细节以便提供对本公开的透彻理解。然而,本领域技术人员将理解,可在没有这些具体细节的情况下实践公开的方面。在其他实例中,没有详细描述公知的方法、过程、组件和电路,以不模糊在此公开的主题。此外,描述的方面可被实现为在任何成像装置或系统(包括但不限于智能电话、用户设备(UE)和/或膝上型计算机)中。贯穿本说明书的对“一个实施例”或“实施例”的引用表示:结合该实施例描述的特定特征、结构或特性可包括在在此公开的至少一个实施例中。因此,贯穿本说明书的不同地方短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有类似含义的其他短语)的出现可不一定都指示同一实施例。此外,在一个或多个实施例中,可以以任何合适的方式组合特定的特征、结构或特性。在这方面,如在此使用的,词“示例性”表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例不应被解释为一定比其他实施例优选或有利。此外,根据在此的讨论的上下文,单数术语可包括相应的复数形式,并且复数术语可包括相应的单数形式。类似地,带有连字符的术语(例如,“二-维”、“预先-确定”、“特定-像素”等)可与相应的非带有连字符的版本(例如,“二维”、“预先确定”、“特定像素”等)偶尔可互换地使用,大写的词条(例如,“CounterClock”、“RowSelect”、“PIXOUT”等)可与相应的非大写的版本(例如,“counterclock”、“rowselect”、“pixout”等)互换地使用。这样的偶尔可互换的使用不应被认为彼此不一致。还应注意,在此示出和讨论的各种附图(包括组件图)仅为了说明的目的,并且不按比例绘制。类似地,各种波形和时序图仅为了说明的目的而被示出。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,如果认为合适,则在附图中重复参考标号以指示相应的和/或类似的元件。在此使用的术语仅为了描述一些示例实施例的目的,而不意在限制要求权利的主题。除非上下文另有清楚地指示,否则如在这里使用的单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,表明存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或增加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。除非这样清楚地定义,否则在此使用的术语“第一”、“第二”等用作它们之后的名词的标签,并且不表示任何类型的顺序(例如,空间、时间、逻辑等)。此外,可在两个或更多个附图之间使用相同的参考标号来表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的用法仅为了简化说明和易于讨论,并不表示这样的组件或单元的构造或结构细节在所有实施例之间都是相同的或者这样共同引用的部件/模块是实现在此公开的多个示例实施例中的一些示例实施例的唯一方式。将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”或者“结合到”另一元件或层时,它可直接“在”该另一元件或层上、直接连接到或者直接结合到该另一元件或层,或者可存在中间元件或层。相反,当元件或层被称为“直接在”另一元件或层“上”、“直接连接到”或者“直接结合到”另一元件或层时,不存在中间元件或层。相同的标号始终表示相同的元件。如在此使用的,术语“和/或”包括相关联的所列项中的一个或多个的任何组合和全部组合。除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此清楚地如此定义,否则术语(诸如通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不被理想化或过于形式化地解释。如在此使用的,术语“模块”表示被配置为提供在此结合模块描述的功能的软件、固件和/或硬件的任何组合。软件可被实现为软件包、代码和/或指令集或指令,并且如在此描述的任何实施方式中使用的术语“硬件”可单独地包括例如硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件,或者可包括本文档来自技高网...

【技术保护点】
1.一种提供深度神经网络的权重的平衡修剪的系统,所述系统包括:/n权重掩蔽器,掩蔽深度神经网络的多个权重组中的每个权重组中的权重;以及/n损失确定器,基于深度神经网络的网络损失减去掩蔽的多个权重组中的非零权重的计数的方差,来确定深度神经网络的损失。/n

【技术特征摘要】
20180924 US 62/735,846;20181109 US 16/186,4701.一种提供深度神经网络的权重的平衡修剪的系统,所述系统包括:
权重掩蔽器,掩蔽深度神经网络的多个权重组中的每个权重组中的权重;以及
损失确定器,基于深度神经网络的网络损失减去掩蔽的多个权重组中的非零权重的计数的方差,来确定深度神经网络的损失。


2.根据权利要求1所述的系统,其中,损失确定器还基于深度神经网络的网络损失减去与拉格朗日乘子相乘的所述多个权重组中的非零权重的计数的方差,来确定深度神经网络的损失。


3.根据权利要求2所述的系统,其中,权重掩蔽器将每个权重组中的权重与掩蔽函数相乘。


4.根据权利要求3所述的系统,其中,掩蔽函数是可微分的。


5.根据权利要求4所述的系统,其中,掩蔽函数的锐度是可选择地可控的,掩蔽函数的宽度是可选择地可控的。


6.一种提供深度神经网络的权重的平衡修剪的方法,所述方法包括:
将深度神经网络的权重划分为多个组;
通过权重掩蔽器将掩蔽函数应用于每个组中的权重;
在掩蔽函数被应用之后,确定每个组中的非零权重的数量的计数;
确定所述多个组中的非零权重的计数的方差;

【专利技术属性】
技术研发人员:邓伟然
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国;KR

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

1