用于压缩神经网络的方法和设备与流程

专利查询2023-12-15  106



1.本发明涉及用于根据可预给定的最大复杂度来压缩深度神经网络的方法、设备、计算机程序和机器可读存储介质。


背景技术:

2.神经网络可以用于驾驶员辅助或自动驾驶的各种任务,例如用于视频图像的语义分割,其中将各个像素分类为不同的类别(行人、车辆等)。
3.然而,当前用于驾驶员辅助或用于自动驾驶的系统需要特殊的硬件,特别是由于安全和效率的要求。从而例如使用计算和存储能力有限的特殊微控制器。但是,这些限制对神经网络的开发提出了特殊要求,因为神经网络通常是在具有数学优化方法和浮点数的高性能计算机上训练的。然后如果简单地去除神经网络的经过训练的权重,使得可以在微控制器上计算简化的神经网络,则其性能会急剧下降。出于这个原因,以下神经网络需要特殊的训练方法,所述神经网络即使在嵌入式系统中经过学习的过滤器数量减少也可以获得出色的结果并且快速和简单地加以训练。
4.作者zhuang liu、jianguo li、zhiqiang shen、gao huang、shoumeng yan和changshui zhang 在他们的出版物“learning efficient convolutional networks through network slimming(通过网络瘦身学习高效卷积网络)”,corr,abs/1708.06519,可在线获取:https://arxiv.org/pdf/1708.06519.pdf中公开了一种使用从批量归一化层获得的加权因子来压缩卷积神经网络(英语:convolution neural networks)的方法。
5.本发明的优点有利的是,基于本发明在学习之后最多只保留与学习之前定义的一样多的参数和乘法。
6.在学习期间,权重或过滤器被全局去除,即在整个神经网络中进行权重的全局优化或过滤器减少。这意味着对于超过例如80%的压缩,根据本发明的方法将该压缩独立地分配到神经网络的不同层上。也就是说,然后由根据本发明的方法确定各个层的局部减少率。这导致特别低的性能损失,同时显著提高了压缩的神经网络的计算效率,因为只需执行更少的算术运算。
7.鉴于所有网络层共同为学习任务做出贡献这一事实,彼此独立地去除各个层是不合适的。本发明在此具有的优点是考虑了各个权重或过滤器的相互作用,由此在压缩之后没有或只有很少的性能降低。
8.从本发明所获得的压缩的机器学习系统中得出其他优点:直接减少计算时间、能量消耗和存储器需求,而不需要专用硬件。
9.因此,在训练神经网络时可以考虑计算机的有限资源,例如存储器/能量消耗/计算能力。
10.本发明的任务是训练最终仅具有最大预给定数量的参数和乘法的神经网络。


技术实现要素:

11.在第一方面,本发明涉及一种用于压缩神经网络的方法。所述神经网络包括由第一层和第二层组成的至少一个序列,所述第一层对其输入变量进行加权,特别是加权求和,并作为输出变量输出,所述第二层根据缩放因子(γ)对其输入变量进行仿射变换并作为输出变量输出。应当注意,所述仿射变换可以附加地具有移位系数(β),由此输入变量通过所述仿射变换移位,特别是沿着x轴移位。加权可以理解为第一层的多个权重的预给定权重集合。例如,可以将第一层的权重矩阵的行视为加权。向第一层的加权分别分配来自第二层的缩放因子(γ)。该分配可以这样进行,即,将所述缩放因子分配给来自第一层的以下加权,这些加权的输入变量由相应的缩放因子缩放,或者根据相应的加权确定的输出变量由相应的缩放因子缩放。替代地,可以将所述缩放因子分配给加权,使得权重(加权)的集合分别对应于通道,并且向每个通道分配缩放相应通道的输入变量或输出变量的缩放因子。
12.需要注意的是,所述序列包括“第一层以及随后连接的第二层”的具体序列和“第二层以及随后连接的第一层”的具体序列。还应当注意,所述神经网络优选地是卷积神经网络(英语:convolution neural network)并且第一层是卷积层,该卷积层将其输入变量与多个过滤器进行卷积,其中所述过滤器是对第一层的加权。每个过滤器在此可以代表一个通道。第二层优选为批量归一化层。
13.第一方面的方法包括以下步骤:定义最大复杂度。在前向传播的情况下,复杂度表征第一层的计算机资源的消耗,特别是第一层的体系结构的可数特性。复杂度优选地表征神经网络的乘法的最大数量(m*)和/或参数的最大数量(p*)。附加地或替代地,复杂度可以表征层的输出变量的最大数量。复杂度可以与第一层或所有层、即整个神经网络有关。复杂度优选地与整个神经网络有关。神经网络复杂度的参数可以理解为所有可学习的参数。这些参数优选地理解为神经网络的层的权重或过滤器系数。乘法的最大数量可以理解为神经网络或层执行的所有为了通过神经网络传播所述神经网络的输入变量而最大允许执行的乘法的数量。
14.随后确定第一成本函数(l
learning
),其表征神经网络的所确定的输出变量与训练数据的预给定输出变量之间的偏差。
15.随后确定第二成本函数(l
pruning
),其表征神经网络的当前复杂度与定义的复杂度(p*,m*)之间的偏差,其中根据绝对值大于预给定阈值(t)的缩放因子的数量来确定当前复杂度。
16.然后使所述神经网络进行学习,使得根据所述神经网络的参数优化第一和第二成本函数的总和。所述神经网络可以经过预学习,即该神经网络已经仅使用第一成本函数学习了多个时期。
17.随后去除第一层的以下加权,分配给这些加权的缩放因子具有小于预给定阈值(t)的绝对值。附加地,可以将第二层集成到第一层中,其方式是对第一层额外地实现第二层的仿射变换。
18.替代地,在用两个成本函数学习后,可以通过将缩放因子和移位系数都设置为值0来删除缩放因子在绝对值上小于阈值的加权。
19.建议借助于应用于每个缩放因子的指标函数(φ(γ,t))的总和来确定缩放因子(γ)的当前数量,其中当缩放因子的绝对值大于阈值(t)时,所述指标函数输出值1,否则输
出值0。然后根据所述指标函数的总和来确定当前复杂度,所述总和归一化到第一层的所计算的加权的数量乘以来自第一层的参数或乘法的数量。
20.还建议所述神经网络具有第一层和第二层的多个序列。于是,根据指标函数的总和来分别确定第一层的复杂度,所述总和归一化到第一层的所计算的加权的数量。将当前复杂度确定为第一层的复杂度的总和乘以紧接在前的第一层的复杂度并且乘以来自相应第一层的参数或乘法的数量。乘以紧接在前的第一层的复杂度的优点是由此可以考虑到,在对紧接在前的层进行压缩时,后续层的计算复杂度自动降低。
21.还建议用因子(λ)缩放第二成本函数(l
pruning
),其中因子(λ)被选择为,使得缩放后的第二成本函数的值对应于学习开始时第一成本函数的所确定的第一值。例如,所述第一值可以对应于为以下神经网络确定的第一成本函数的值,该神经网络在学习开始时用随机权重初始化。已经发现,在第二成本函数的这种缩放情况下,其对成本函数总和的影响是理想的,以便在去除加权后实现最低的性能降低。
22.还建议在学习开始时将第二成本函数的因子(λ)初始化为值1,并且在每次重复执行学习的步骤时都将因子(λ)递增,直到该因子采取的值使得用因子(λ)缩放后的第二成本函数在绝对值上对应于学习开始时的第一成本函数。已经发现,就学习的快速收敛和实现最大复杂度的目标而言,这种所谓的因子(λ)升温可以达到最好的结果。
23.此外建议,在去除加权之后,所述神经网络根据所述第一成本函数进行部分学习,特别是重新学习。“部分”可以理解为所述神经网络仅重新学习加权的选集以及可选地仅在少量时期、优选地3个时期期间学习。这对应于微调压缩的神经网络。
24.此外建议将根据第一方面压缩的压缩的神经网络用于基于计算机的视觉(英语:computer vision),特别是用于图像分类。在此,所述神经网络可以是图像分类器,其中所述图像分类器将其输入图像分配给多个预给定类别中的至少一个类别。优选地,所述图像分类器执行语义分割,即逐像素的分类,或执行探测,即确定对象是否存在/不存在。图像可以是相机图像,或雷达/激光雷达/超声图像,或这些图像的组合。
25.此外建议,根据第一方面压缩的压缩的神经网络根据传感器的检测到的传感器变量确定输出变量,然后可以将所述输出变量用于借助于控制单元确定控制变量。
26.所述控制变量可以用于控制技术系统的致动器。所述技术系统例如可以是至少部分自主的机器、至少部分自主的车辆、机器人、工具、作业机器或诸如无人机的飞行对象。例如,所述输入变量可以根据检测到的传感器数据来加以确定并提供给压缩的神经网络。所述传感器数据可以由所述技术系统的传感器(例如相机)检测,或者替代地从外部接收。
27.在其他方面,本发明涉及一种设备和一种计算机程序,它们中的每一个都被设置为执行上述方法,本发明还涉及一种机器可读存储介质,其上存储有所述计算机程序。
附图说明
28.下面参考附图更详细地解释本发明的实施方式。在附图中:图1示意性地示出了本发明的一种实施方式的流程图;图2示意性地示出了用于控制至少部分自主的机器人的实施例;图3示意性地示出了用于控制制造系统的实施例;图4示意性地示出了用于控制访问系统的实施例;
图5示意性地示出了用于控制监视系统的实施例;图6示意性地示出了用于控制个人助理的实施例;图7示意性地示出了用于控制医学成像系统的实施例;图8示出了训练设备的可能结构。
具体实施方式
29.对于具体的学习任务(例如分类,特别是语义分割),通常会定义对应的第一成本函数l
learning
并为此定义神经网络或网络架构。第一成本函数l
learning
可以是任何成本函数(英语:loss function,损失函数),其在数学上表征神经网络的输出与由训练数据组成的标签之间的偏差。神经网络由相互连接的层组成。因此,神经网络在学习之前由连续排列的层定义。各个层对其输入变量进行加权求和,或者可以对其输入变量进行线性或非线性变换。具有加权求和的层在下面称为第一层。加权求和可以借助于矩阵向量乘法或借助于卷积来进行。对于矩阵向量乘法,矩阵的行对应于加权,而对于卷积,过滤器对应于加权。在每个层之后,可以将具有仿射变换的层构建到神经网络中。这些层在下面称为第二层。包括仿射变换的层优选地是批量归一化层。
30.通常,层是超维度的,因为最初无法预测相应学习任务需要多少参数。
31.但是,在此没有考虑到神经网络在学习结束后应当具有参数和乘法的最大可预给定数量,该数量应当小于最初选择的参数数量。因此,目标是在学习期间就已经有针对性地压缩或减少神经网络或在训练后有针对性地压缩或减少神经网络,使得该神经网络仅具有该预给定数量,并由此以有限的资源实现最佳可能的性能。所述压缩应当以从神经网络中去除权重的方式进行。
32.为此建议,在学习时使用第二成本函数l
pruning
。这个附加的成本函数与第一成本函数l
learning
一起使用:l=l
learning
+λl
pruning
,其中λ用作两个成本函数之间的权重因子。优选地,λ被选择为使得包括第二成本函数乘以λ的第二成本函数λl
pruning
的值近似对应于学习过程开始时的第一成本函数的值。
33.可以如下进行使用第二成本函数对神经网络的压缩。为此图1示例性地示出了该方法的流程图(1)。
34.在第一步骤s21中,基于参数的数量p和/或乘法的数量m来定义神经网络的复杂度。如果现在可用的计算资源有限,所述计算资源对应于最大复杂度p*和m*,则使用以下成本函数通过神经网络的学习对当前复杂度和进行优化:。
35.可以根据压缩的神经网络的待执行硬件的特性来确定所述神经网络的可用复杂度或目标复杂度(p*,m*)。这些特性可以是:存在的存储空间、每秒算术运算等。例如,可以直接从所述存储空间中导出具有预给定分辨率的参数的最大数量。
36.在其他实施例中,附加地或替代地可以将每层的输出变量数量的上限用作最大复杂度。这个数量可以从硬件的带宽中推导出来。
37.为了在训练期间对参数和乘法计数,将指标函数
ϕ
应用于批量归一化层的缩
放因子γ:其中使用来自值域[10-15
;10-1
]的t,例如t=10-4

[0038]
因此,使用获得缩放因子γ作为自变量的指标函数。所述指标函数的输出可以被解释为:零值表示可以删除的不活跃通道。
[0039]
可以说每一层具有多个通道,其中一层的输出变量中的通道数量等于卷积过滤器的数量或等于权重矩阵的矩阵行的数量。
[0040]
在批量归一化层的情况下,在计算了加权总和之后对每个通道归一化和线性变换。根据训练数据堆叠(英语:batch)的期望值(μ)和方差(σ)来计算批量归一化层的归一化的输出变量。然后也附加地根据可学习的参数(γ,β)确定归一化的输出变量。如果可学习参数的值接近于零,则通道失去其对网络输出的影响。这两个可学习参数的优点是它们可以对归一化层的输出变量进行“去归一化”,例如在通过预期值和方差移位和缩放批量归一化层的输入变量没有意义的情况下。有关更多细节,请参阅ioffe、sergey和christianszegedy的“batch normalization: accelerating deep network training by reducing internal covariate shift(批量归一化:通过减少内部协变量偏移来加速深度网络训练)”arxiv预印本arxiv:1502.03167(2015),可在线获取:https://arxiv.org/pdf/1502.03167.pdf。
[0041]
学习后,可以将批量归一化层集成到前/后卷积或全连接层中以加速推理图。因此,执行加权求和的层的归一化输出变量通常可以表示为:,其中和其中运算*代表卷积或(矩阵)乘法,代表与数值稳定性的偏差(bias),从而不会出现除以0。优选地=10-5

[0042]
需要注意的是,对于值,归一化的输出变量大致对应于值,该值与通道输入无关并且因此仅对应于恒定偏差。这种偏差通过随后的卷积或全连接层传播,并对所产生的输出变量移位。然而,这种移位会被随后的批量归一化层校正,其方式是减去关于相应小堆叠的平均值。
[0043]
这允许在神经网络学习了之后,如果所述指标函数输出零,则将批量归一化层的缩放因子(γ)和移位系数(β)设置为零。
[0044]
在步骤s21之后是步骤s22。在该步骤中可以计算如下:

[0045]
这里,l表示层索引,l表示总层数,c
l
表示层l中的通道数量,p
l
表示层l中的当前参数数量。
[0046]
相应地:。
[0047]
因此,在学习的每个“前向路径”之后l
pruning
会惩罚额定参数数量p*与实际参数数量之间的偏差,以及额定乘法数量m*和实际乘法数量之间的偏差。
[0048]
步骤s22之后是步骤s23。在该步骤中,将两个成本函数加在一起并借助于优化方法、优选借助于梯度下降法进行优化。也就是说,神经网络的参数,如过滤器系数、权重和缩放因子γ,被适配为使得成本函数的总和得到最小化或最大化。
[0049]
对应的梯度可以通过形成指标函数φ(γ,t)的梯度往回通过神经网络传播。
[0050]
直通估计器(ste)可以用于指标函数的梯度。有关ste的更多细节请参阅:geoffrey hinton,neural networks for machine learning(用于机器学习的神经网络),coursera, video lecture, 2012。由于指示函数φ与y轴对称,因此可以使用梯度估计器的以下适配:对于γ≤0,,对于γ》0则为1。
[0051]
在完成步骤s23之后,接着可以重复多次步骤s23直到满足终止标准为止。例如,所述终止标准可以是成本函数总和的变化最小或达到预给定数量的训练步骤。需要注意的是,在重复时最大复杂度保持不变。替代地,随着学习的继续进行,最大复杂度可以减小。
[0052]
在下一步骤s24中,从神经网络中去除指标函数φ为其输出值0的通道。替代地,这些通道可以按照分配给它们的缩放因子γ排列在列表中,其中从神经网络中去除具有γ(即乘法和参数的预给定数量)的最小值的通道。
[0053]
在其他实施例中,步骤s23和s24可以针对可预给定数量连续执行多次。在此,步骤s23也可以每次重复多次,直到满足终止标准为止。
[0054]
在去除通道后神经网络可以重新学习,但现在只使用第一成本函数,优选在三个时期内。
[0055]
最佳地,随后可以是步骤s25。在该步骤中可以运行压缩的神经网络。然后该压缩的神经网络可以作为分类器对图像进行分类,特别是对图像进行分割。
[0056]
在神经网络具有一个或多个桥接连接(英语:short cut connection)的情况下,权重/过滤器的去除可能变得更加困难,因为经由这些连接可以激活已经停用的通道。
[0057]
然而,桥接连接对于根据本发明的方法不构成问题。因为如果层经由桥接连接获得先前层的其他输出变量,则可以计算对两个输出变量进行缩放的缩放因子γ的总和,然后将该总和作为指标函数φ(γ1+γ2, t)的自变量传递。
[0058]
可以使用根据上述方法获得的神经网络,如示例性在图2至图7中所示的。
[0059]
以优选规则的时间间隔使用传感器30,特别是诸如视频传感器的成像传感器来检
测环境,传感器30也可以通过多个传感器给定,例如立体摄像机。还可以想到其他成像传感器,例如雷达、超声或激光雷达。也可以想到热成像相机。将传感器30的传感器信号s——或者在多个传感器的情况下每个传感器信号s——传送到控制系统40。控制系统40因此接收传感器信号s的序列。控制系统40从中确定操控信号a,将该操控信号a传输到致动器10。
[0060]
控制系统40在可选的接收单元中接收传感器30的传感器信号s序列,该接收单元将传感器信号s序列转换为输入图像x序列(替代地,也可以将每个传感器信号s直接作为输入图像x)。例如,输入图像x可以是传感器信号s的片段或进一步处理。输入图像x包括视频记录的各个帧。换句话说,根据传感器信号s来确定输入图像x。将输入图像x序列输送到压缩的神经网络。
[0061]
所述压缩的神经网络优选地通过参数f来予以参数化,参数f存储在参数存储器p中并且由该参数存储器提供。
[0062]
所述压缩的神经网络从输入图像x中确定输出变量y。这些输出变量y可以特别是包括输入图像x的分类和语义分割。将输出变量y输送到可选的整形单元80,该整形单元从中确定将输送到致动器10以对应地操控致动器10的操控信号a。输出变量y包括关于传感器30已检测到的对象的信息。
[0063]
致动器10接收操控信号a,被对应地控制并执行对应的动作。致动器10在此可以包括(不一定在结构上集成的)操控逻辑,所述操控逻辑从操控信号a中确定第二操控信号,然后用该第二操控信号来操控致动器10。
[0064]
在其他实施方式中,控制系统40包括传感器30。在另外的实施方式中,控制系统40替代地或附加地还包括致动器10。
[0065]
在其他优选实施方式中,控制系统40包括一个或多个处理器45和至少一个机器可读存储介质46,在所述机器可读存储介质上存储有指令,当指令在处理器45上执行时,所述指令促使控制系统40执行根据本发明的方法。
[0066]
在替代实施方式中,替代或附加于致动器10地设置显示单元10a。
[0067]
图2示出了控制系统40可以如何用于控制至少部分自主的机器人,这里是至少部分自主的机动车辆100。
[0068]
传感器30可以是例如优选地布置在机动车辆100中的视频传感器。
[0069]
人工神经网络60被设置为从输入图像x中可靠地标识对象。
[0070]
优选地布置在机动车辆100中的致动器10可以是例如机动车辆100的制动器、驱动器或转向系统。于是操控信号a可以被确定为,使得以这样的方式操控一个或多个致动器10,即,机动车辆100例如防止与由人工神经网络60可靠标识的对象碰撞,特别是当所述对象是特定类别的对象,例如行人时。
[0071]
替代地,至少部分自主的机器人还可以是另外的移动机器人(未示出),例如是通过飞行、游泳、潜水或步行来移动的机器人。所述移动机器人还可以是例如至少部分自主的割草机或至少部分自主的清洁机器人。在这些情况下,操控信号a也可以被确定为,使得以这样的方式操控移动机器人的驱动器和/或转向系统,即,至少部分自主的机器人例如防止与由所述压缩的神经网络标识的对象碰撞。
[0072]
替代地或附加地,可以用操控信号a来操控显示单元10a并且例如可以显示所确定的安全区域。例如,在机动车辆100具有非自动转向系统的情况下,也可以用操控信号a操控
显示单元10a,使得如果确定机动车辆100即将与可靠标识的对象之一碰撞,则显示单元10a输出光学或声学的警告信号。
[0073]
图3示出了一种实施例,其中控制系统40用于操控制造系统200的制造机器11,其方式是操控控制该制造机器11的致动器10。制造机器11可以是例如用于冲压、锯切、钻孔和/或切割的机器。
[0074]
于是传感器30可以是例如光学传感器,其例如检测制造产品12a、12b的特性。可能的是,这些制造产品12a、12b是可移动的。可以根据所检测的制造产品12a、12b的分配来操控控制制造机器11的致动器10,从而制造机器11对应地执行制造产品12a、12b中的正确制造产品的后续加工步骤。还可能的是,通过标识制造产品12a、12b中相同制造产品的正确特性(即,没有错配),制造机器11对应地适配相同的制造步骤以加工后续的制造产品。
[0075]
图4示出了一种实施例,其中控制系统40用于控制访问系统300。访问系统300可以包括物理访问控制,例如门401。视频传感器30被设置为检测人员。可以借助于对象标识系统60来解释所检测的图像。如果同时检测多个人员,则可以通过将这些人员(即对象)彼此关联来例如特别可靠地确定人员的身份,例如通过分析人员的运动。致动器10可以是锁,其根据操控信号a来解除访问控制或不解除访问控制,例如打开门401或不打开门401。为此,可以根据对象标识系统60的解释来选择操控信号a,例如根据所确定的人员身份。代替物理访问控制,也可以设置逻辑访问控制。
[0076]
图5示出了一种实施例,其中控制系统40用于控制监视系统400。该实施例与图5所示的实施例的不同之处在于,代替致动器10设置了由控制系统40操控的显示单元10a。例如,人工神经网络60可以可靠地确定由视频传感器30记录的对象的身份以根据该身份例如推断哪些对象是可疑的,然后可以选择操控信号a,使得该对象由显示单元10a彩色地突出显示。
[0077]
图6示出了一种实施例,其中控制系统40用于控制个人助理250。传感器30优选地是接收用户249的手势图像的光学传感器。
[0078]
根据传感器30的信号,控制系统40确定个人助理250的操控信号a,其方式是例如由神经网络执行手势识别。然后将所确定的操控信号a传送到个人助理250并且因此对应地操控该个人助理。所确定的操控信号a可以特别是被选择为,使得它对应于由用户249进行的猜测的期望操控。可以根据由人工神经网络60识别的手势来确定所述猜测的期望操控。控制系统40然后可以根据所述猜测的期望操控来选择操控信号a以传送到个人助理250,和/或与所述猜测的期望操控对应地选择操控信号a以传送到个人助理250。
[0079]
对应的操控例如可以包括:个人助理250从数据库中检索信息并以用户249可以阅读的方式再现所述信息。
[0080]
代替个人助理250,也可以设置家用电器(未示出),特别是洗衣机、电炉、烤箱、微波炉或洗碗机,以对应地加以操控。
[0081]
图7示出了一种实施例,其中控制系统40用于控制医学成像系统500,例如mrt设备、x射线设备或超声设备。传感器30可以例如由成像传感器给定,由控制系统40来操控显示单元10a。例如,神经网络60可以确定由所述成像传感器记录的区域是否显眼,然后可以选择操控信号a,使得该区域由显示单元10a彩色地突出显示。
[0082]
图8示意性地示出了训练设备141包括提供器71,提供器71从训练数据集中提供输
入图像e。将输入图像e输送到待训练的监视单元61,其由此确定输出变量a。将输出变量a和输入图像e输送到评估器74,评估器74由此如结合图1描述的那样确定新参数θ',该新参数被传送到参数存储器p并在那里代替参数θ。
[0083]
由训练系统141执行的方法可以实现为计算机程序地存储在机器可读存储介质147上并由处理器148执行。
[0084]
术语“计算机”包括用于处理可预给定计算规则的任何设备。这些计算规则能够以软件形式或硬件形式或软件和硬件的混合形式存在。

技术特征:
1.一种用于压缩神经网络的方法,其中所述神经网络具有由第一层和第二层组成的至少一个序列,所述第一层根据多个加权对所述第一层的输入变量进行加权求和,所述第二层根据缩放因子(γ)对所述第二层的输入变量进行仿射变换,其中向所述第一层的加权分别分配来自所述第二层的缩放因子(γ),所述方法包括以下步骤:定义最大复杂度(p*,m*),其中所述复杂度表征所述第一层的计算机资源的消耗,确定第一成本函数(l
learning
),所述第一成本函数表征所述神经网络的所确定的输出变量与训练数据的预给定输出变量之间的偏差;确定第二成本函数(l
pruning
),所述第二成本函数表征所述神经网络的当前复杂度与所述最大复杂度(p*,m*)之间的偏差,其中根据绝对值大于预给定阈值(t)的缩放因子(γ)的数量来确定所述当前复杂度;所述神经网络进行学习,使得根据所述神经网络的加权和缩放因子(γ)优化第一和第二成本函数的总和;以及去除所述第一层的以下加权,分配给所述加权的缩放因子(γ)具有小于所述预给定阈值(t)的绝对值。2.根据权利要求1所述的方法,其中分别借助于应用于每个缩放因子的指标函数(φ(γ,t))的总和来确定所述缩放因子(γ)的当前数量,其中当所述缩放因子的绝对值大于所述阈值(t)时,所述指标函数输出值1,否则输出值0,其中根据所述指标函数的总和来确定所述当前复杂度,所述总和归一化到所述第一层的所计算的加权的数量乘以来自所述第一层的参数或乘法的数量。3.根据权利要求2所述的方法,其中所述神经网络具有所述第一层和所述第二层的多个序列,其中根据指标函数的总和来确定所述第一层的复杂度,所述总和归一化到所述第一层的所计算的加权的数量,其中将所述当前复杂度确定为所述第一层的复杂度的总和乘以相应第一层的紧接在前的第一层的复杂度并且乘以来自相应第一层的参数或乘法的数量。4.根据前述权利要求中任一项所述的方法,其中所述第一层是卷积层(convolutional layer)并且所述加权是过滤器,其中向每个缩放因子(γ)分配了所述卷积层的过滤器。5.根据前述权利要求中任一项所述的方法,其中根据计算单元的架构来定义所述复杂度,在所述计算单元上应当执行所述压缩的神经网络。6.根据前述权利要求中任一项所述的方法,其中所述预给定阈值t=10-4
。7.根据前述权利要求3至6中任一项所述的方法,其中所述第一层之一经由桥接连接与所述神经网络的其他先前层连接,其中将所述指标函数应用于两个先前层的缩放因子的总和。8.根据前述权利要求中任一项所述的方法,其中用因子(λ)缩放所述第二成本函数
(l
pruning
),其中所述因子(λ)被选择为,使得缩放后的第二成本函数的值对应于学习开始时所述第一成本函数的所确定的值。9.根据权利要求8所述的方法,其中在学习开始时将所述第二成本函数的因子(λ)初始化为值1,并且在每次重复执行学习的步骤时都将因子(λ)递增,直到该因子对应于学习开始时第一成本函数的所确定的值。10.根据前述权利要求中任一项所述的方法,其中在去除加权的步骤之后,所述神经网络根据所述第一成本函数部分地重新学习。11.根据前述权利要求中任一项所述的方法,其中所述复杂度表征所述第一层的乘法数量(m*)或所述第一层的参数数量(p*)或所述第一层的输出变量数量。12.根据权利要求11所述的方法,其中所述复杂度表征乘法和参数的数量,其中所述第二成本函数表征所述当前复杂度与预给定复杂度在参数数量和乘法数量方面的偏差之总和。13.一种使用根据前述权利要求中任一项所述的压缩的神经网络作为图像分类器的方法。14.一种设置为执行根据权利要求1至13中任一项所述的方法的设备(141)。15.一种计算机程序,包括指令,所述指令被设置为当所述指令在计算机上执行时,所述指令促使所述计算机执行根据权利要求1至13中任一项所述的方法。16.一种机器可读存储介质(146),其上存储有根据权利要求15所述的计算机程序。

技术总结
用于压缩神经网络的方法。该方法包括以下步骤:定义所述神经网络的最大复杂度。确定第一成本函数。确定第二成本函数,该第二成本函数表征所述神经网络的当前复杂度与定义的复杂度之间的偏差。使神经网络进行学习,使得根据所述神经网络的参数来优化第一和第二成本函数的总和;以及去除以下加权,分配给所述加权的缩放因子小于预给定阈值。权的缩放因子小于预给定阈值。权的缩放因子小于预给定阈值。


技术研发人员:F
受保护的技术使用者:罗伯特
技术研发日:2021.09.07
技术公布日:2022/3/8

最新回复(0)