CN114386558A - 生成简化的计算机实施的神经网络 - Google Patents

生成简化的计算机实施的神经网络 Download PDF

Info

Publication number
CN114386558A
CN114386558A CN202111215634.5A CN202111215634A CN114386558A CN 114386558 A CN114386558 A CN 114386558A CN 202111215634 A CN202111215634 A CN 202111215634A CN 114386558 A CN114386558 A CN 114386558A
Authority
CN
China
Prior art keywords
neural network
pruning
matrix
substructures
simplified
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
Application number
CN202111215634.5A
Other languages
English (en)
Inventor
D·利布
M·诺南马赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN114386558A publication Critical patent/CN114386558A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

生成简化的计算机实施的神经网络。本发明涉及用于为设备生成简化的计算机实施的神经网络的技术。该方法包括:接收预给定的神经网络,所述神经网络在两个或更多个层中包含多个神经网络子结构。该方法还包括:针对预给定的神经网络计算近似神经网络,并计算与近似神经网络相关的矩阵,所述矩阵描述通过从多个神经网络子结构中剪枝一个或多个神经网络子结构引起的损失函数的变化。该矩阵通过同时从位于预给定的神经网络的两个或更多个层的不同层内的多个神经网络子结构中剪枝至少两个网络子结构来描述损失函数的变化。最后,该方法包括:基于在该矩阵中描述的损失函数的变化从多个神经网络子结构中剪枝至少一个神经网络子结构以生成简化的神经网络。

Description

生成简化的计算机实施的神经网络
技术领域
本公开涉及用于从预给定的神经网络生成简化的计算机实施的神经网络的技术以及用于应用简化的计算机实施的神经网络的技术。
背景技术
计算机实施的神经网络越来越多地用于各种技术设备中。在这里,许多技术设备的神经网络可具有复杂的结构(例如,具有大量神经元、层和相应的连接)。这可对应用神经网络所需的硬件提出(过)高的要求。因此,可能有必要在计算机实施的神经网络的性能与其复杂性之间找到折衷方案。
为了解决上述问题,开发了所谓的剪枝方法(“pruning methods”)。剪枝方法一方面旨在减小神经网络的大小并简化其整体结构,但另一方面旨在保持简化的神经网络的良好整体性能(或尽可能少地损害整体性能)。因此,例如针对具有有限硬件资源的较小型技术设备(例如电动工具、园艺设备或家用电器等),可以使用根据所述方法简化的神经网络。在其他示例中,可能有必要减少计算机实施的神经网络的评估时间,以确保技术设备(例如自主机器人)的反应足够快。为此,简化计算机实施的神经网络也可以是有利的。
发明内容
本发明涉及一种用于为设备生成简化的计算机实施的神经网络的方法。该方法包括:接收预给定的神经网络,所述神经网络在两个或更多个层中包含多个神经网络子结构。该方法还包括:针对预给定的神经网络计算近似神经网络,并计算与近似神经网络相关的矩阵,所述矩阵描述通过从多个神经网络子结构中剪枝一个或多个神经网络子结构引起的损失函数的变化。该矩阵通过同时从位于预给定的神经网络的两个或更多个层的不同层内的多个神经网络子结构中剪枝至少两个网络子结构来考虑损失函数的变化。最后,该方法包括:基于在该矩阵中描述的损失函数的变化从多个神经网络子结构中剪枝至少一个神经网络子结构以生成简化的神经网络。
此外,该方法包括:简化的计算机实施的神经网络在技术设备中的应用以及计算机实施的神经网络,所述计算机实施的神经网络利用对应的方法生成。
本发明的技术旨在生成相对于原始的预给定的神经网络更小尺寸(例如具有较少数量的神经元和/或连接和/或层)的简化的神经网络。在这种情况下,生成的简化的神经网络的整体性能或精确性的损失不应太大(并且在理想情况下不发生整体性能或精确性的损失)。这种简化(剪枝)的计算机实施的神经网络可以适用于具有相对可管理的硬件资源的技术设备(例如便携式电子设备或没有永久网络连接的设备),或者适用于需要更高计算和评估速度的技术环境(例如在至少半自主车辆的情况下)。然而,降低的复杂性和/或提高的计算和评估速度也可用于其他技术环境(例如降低功耗)。
附图说明
图1a示意性地示出了在剪枝(简化)之前和之后最初训练的神经网络。神经元及其连接示出为节点(圆圈)或边(箭头)。
图1b示意性地示出了剪枝向量
Figure DEST_PATH_IMAGE001
,借助该剪枝向量可以将海瑟矩阵H转换成Q矩阵(通过从多个神经网络子结构中剪枝一个或多个神经网络子结构来描述损失函数的变化的矩阵)。剪枝向量
Figure 7290DEST_PATH_IMAGE002
在此与神经网络的节点p相关,并通过剪枝节点p的一个或多个连接描述了当前权重的变化。
图2a示意性地示出了Q矩阵的所有计算的分量(黑色元素对应于较大的值)和通过使用用于神经网络的“Lin Sum OBD”剪枝方法的剪枝,所述神经网络针对波士顿住房数据集(即标准数据集)创建。与Q矩阵的用线标记的分量对应的神经结构被迭代去除。
如图2a那样,图2b示意性地示出了Q矩阵的相同分量和通过使用“迭代完全OBD(Iterative Full OBD)”剪枝方法的剪枝。与Q矩阵的用白色圆圈标记的分量对应的神经结构被迭代去除。
如图2a和图2b那样,图2c示意性地示出了Q矩阵的相同分量和通过使用“结构化OBD”(“structured optimal brain damage”(结构化最优脑损伤))剪枝方法的剪枝。与Q矩阵的用白色圆圈标记的分量对应的神经结构被迭代去除。
图3比较了与剪枝比的不同值相关的在图2a-2c中使用的剪枝方法的测试损失。为零的剪枝比对应于预给定的神经网络未被剪枝的情况。在该示例中,经训练的神经网络选择为预给定的神经网络。
具体实施方式
本公开涉及用于从预给定的神经网络中通过剪枝其结构生成简化的计算机实施的神经网络的方法。
在图1a中(示意性地)草绘了示例性神经网络1。神经网络可以由多个神经元组成(示例性神经元2在图1a中突出显示),所述神经元形成神经网络1的节点并经由边3相互连接。本公开的计算机实施的神经网络的神经元设置在多个层中(例如,图1a的第三层4包含三个神经元)。在本公开中,通向神经元(或节点)的边或连接被视为相应层的一部分(即输入连接和节点在同一层中)。计算机实施的神经网络可以包含两层或更多层、三层或更多层或者五层或更多层。神经元及其连接可以具有不同的结构,并且可以借助图表示为节点或边。在本公开中,由神经网络的元素构成的任何子集被称为“神经网络子结构”。在一些示例中,神经网络子结构可以包括一个或多个边、一个或多个节点或者一个或多个节点和边构成的组合(例如一个节点和通向和来自该节点的边)。除了图1a中所示的网络,可以包含附加的元素(例如反馈或存储器)。这些元素也可以是神经网络子结构或其中的一部分。在其他示例中,神经网络的元素可以是用于描述神经网络的参数(下面更详细地解释这方面)。
确定的神经元j的输出可以取决于一个或多个神经元i的所施加的输入。尤其是,可以首先形成神经元j的加权的所施加的输入的总和,其中可以为所有神经元定义从神经元j到神经元i的式子
Figure 924430DEST_PATH_IMAGE003
的权重。(
Figure DEST_PATH_IMAGE004
可以表示,神经元j与神经元i没有连接。)最后,在将为各个神经元定义的激活函数应用于先前计算的总和之后可以确定神经元j的输出。因此,在一些示例中,可以通过指定神经网络的拓扑结构和/或所有神经元的权重
Figure 704168DEST_PATH_IMAGE003
来定义神经网络。因此,权重也可以是本公开意义下的神经网络子结构的元素。也就是说,神经网络结构可以包含神经网络的一个或多个权重(一个或多个边可以对应于神经网络的图形描述)。根据上面介绍的语言规则,通向确定的层的节点或神经元的连接或边的所有权重都属于这一层。该确定的层的起始边或连接的权重属于另一层。
可以创建和训练计算机实施的神经网络,以使用在某一设备中(例如完全或不完全训练),以便处理在该设备中积累的数据(例如传感器数据),并且例如计算对于监视和/或控制所述设备相关的输出数据。因此,该设备的属性或其对确定的事件的反应最终可以“隐藏”在神经网络的拓扑和权重
Figure 542721DEST_PATH_IMAGE003
中。在其他示例中,神经网络也可以通过权重
Figure 357093DEST_PATH_IMAGE003
的其他和/或附加参数来描述。在本公开中,权重
Figure 179556DEST_PATH_IMAGE003
被讨论为示例性参数。然而,这里描述的技术也可以用于其他参数。
一些现有技术中使用的用于从经训练的神经网络剪枝网络结构的方法运行如下:在生成神经网络之后,其拓扑取决于其任务,可以相应地选择权重
Figure 446589DEST_PATH_IMAGE003
。这些权重的选择被称为训练或学习神经网络。该步骤在计算机系统上执行。在“监督学习”期间,提供多个输入数据集
Figure 645489DEST_PATH_IMAGE005
(例如传感器数据)和相应的多个期望输出数据集
Figure DEST_PATH_IMAGE006
(例如技术设备或其环境或控制变量的状态)(即输入和输出数据集分别形成一对)。分别由N对
Figure 986472DEST_PATH_IMAGE007
构成的数据集称为训练数据集。神经网络的训练可以表述为优化问题,其中神经网络的权重
Figure 979836DEST_PATH_IMAGE003
必须被调整,使得由神经网络针对给定的输入
Figure 734165DEST_PATH_IMAGE008
生成的输出
Figure DEST_PATH_IMAGE009
(其中
Figure 471177DEST_PATH_IMAGE010
是参数集θ、例如权重集的神经网络的传递函数)尽可能接近所期望的输出
Figure DEST_PATH_IMAGE011
。该优化问题可以表示为损失函数
Figure 712671DEST_PATH_IMAGE012
的最小化(在本公开中指的是损失函数的最小化,即使这在某些情况下对应于表达式的最大化时也如此)。损失函数可以采用不同式子。在一个示例中,损失函数是均方差(“MSE”)函数,例如:
Figure DEST_PATH_IMAGE013
可以针对所有权重
Figure 876936DEST_PATH_IMAGE003
执行最小化。作为这种最小化的结果,确定了经训练的权重
Figure 852983DEST_PATH_IMAGE014
,所述权重导致损失函数
Figure 754205DEST_PATH_IMAGE015
的局部(或全局)最小值。因此,建立训练的神经网络。该训练的目的不仅在于在训练阶段中再现所期望的输出(
Figure 397676DEST_PATH_IMAGE016
),而且在于能够为其他输入
Figure 732842DEST_PATH_IMAGE005
提供可信的输出(即未知输出)。
经训练的神经网络可以具有复杂拓扑结构和大量的神经元和连接,并且因此导致在计算中的高且不期望的硬件要求。正如上面已经提到的那样,该复杂神经网络首先借助剪枝方法简化,以便能够将其使用于相对应的设备上。在图1a的右侧,示出了简化的(剪枝的)神经网络1a。例如,在最上层和下层5之间剪枝几条边(连接)。附加地,在倒数第二层6中剪枝节点连带相关的边。
这种简化可以包括:分析通过剪枝一个或多个神经网络子结构引起的损失函数
Figure DEST_PATH_IMAGE017
的相应变化。对结构的剪枝可以包括:去除神经元之间的一个或多个连接(即边)和/或完全去除一个或多个神经元连带其接入和接出连接。在其他情况下(或在另一图像中),剪枝可以包括:去除或将一个或多个权重设置为零(这可以是用于去除一个或多个连接或边的替选描述)。在其他情况下,神经网络可以包括超出图1a中所示的结构的元素(例如反馈或存储器)。网络结构也可以利用本公开的方法来剪枝。
在此在一些示例中,由于结构剪枝引起的损失函数的变化可以通过损失函数
Figure 196184DEST_PATH_IMAGE018
关于权重
Figure DEST_PATH_IMAGE019
泰勒展开直至确定的阶来近似。例如,可以给出如下式子的展开:
Figure 274999DEST_PATH_IMAGE020
这里,
Figure 772976DEST_PATH_IMAGE021
是预给定的神经网络(例如权重为
Figure DEST_PATH_IMAGE022
的经训练的神经网络)的给定的权重向量
Figure 279044DEST_PATH_IMAGE023
周围的干扰向量,干扰向量反映了在剪枝之后权重
Figure DEST_PATH_IMAGE024
中的对应变化。
Figure 698524DEST_PATH_IMAGE025
通过
Figure DEST_PATH_IMAGE026
的转置产生。
Figure 299139DEST_PATH_IMAGE027
=
Figure 651622DEST_PATH_IMAGE028
是海瑟矩阵,所述海瑟矩阵由损失函数
Figure DEST_PATH_IMAGE029
关于权重
Figure 63012DEST_PATH_IMAGE030
的二阶偏导数组成,所述二阶偏导数在该示例中针对经训练的权重
Figure DEST_PATH_IMAGE031
被计算。在此适用于(至少近似)经训练的网络
Figure 969788DEST_PATH_IMAGE032
0,因为
Figure 124826DEST_PATH_IMAGE033
具有对于经训练的权重
Figure 331817DEST_PATH_IMAGE022
的最小值(至少近似在预定的数值精度的范围内)。可以忽略泰勒展开中比二阶更高阶的项。损失函数的变化于是由
Figure DEST_PATH_IMAGE034
给定。如图1b所阐明,
Figure 661910DEST_PATH_IMAGE035
对应于相应的子结构(例如节点p)的权重
Figure 524824DEST_PATH_IMAGE022
的剪枝向量。在这种情况下,剪枝向量描述通过剪枝节点p的一个或多个连接引起的当前权重的变化。剪枝向量同样可以针对其他网络子结构来定义(例如对于两个或多个节点与相应的接入边的组合,其中节点位于不同层内或在一层内,或者节点是相邻节点)。
损失函数
Figure DEST_PATH_IMAGE036
的泰勒展开式子仅作为示例显示,并且根据所选的各个向量的归一化,还可以采用不同的表达式(例如,上文所示的泰勒展开的第二项中的因子½可以记录在
Figure 749132DEST_PATH_IMAGE037
Figure DEST_PATH_IMAGE038
中)。
针对多个神经网络子结构剪枝的情况,损失函数的变化可以表示为关于矩阵的多个分量的总和,所述矩阵描述通过从多个神经网络子结构中剪枝一个或多个神经网络子结构引起的损耗函数的变化。例如,损失函数的变化可以通过以下式子确定:
Figure 545050DEST_PATH_IMAGE039
(beschn.:剪枝),其中矩阵
Figure DEST_PATH_IMAGE040
定义为
Figure 298242DEST_PATH_IMAGE041
。总和中的运行指标p和q从1运行到S,其中S表示网络子结构的总数。海瑟(Hesse)矩阵
Figure DEST_PATH_IMAGE042
由二阶偏导数
Figure 694457DEST_PATH_IMAGE043
组成,并因此该矩阵通常具有非对角线分量(即交叉项),所述非对角线分量可以是不可忽略地小。这可以通过如下事实来阐述,损失函数
Figure DEST_PATH_IMAGE044
可以是关于权重
Figure 394560DEST_PATH_IMAGE045
的非线性函数。因此,通过海瑟矩阵
Figure 576143DEST_PATH_IMAGE042
定义的矩阵
Figure DEST_PATH_IMAGE046
也可以具有非对角线形状。总之,损失函数的变化在一些示例中可以表示为两项之和:
Figure 500236DEST_PATH_IMAGE047
Figure DEST_PATH_IMAGE048
。第一项是矩阵
Figure 26158DEST_PATH_IMAGE046
的对角线分量之和,其中p=q,所述矩阵单独考虑由于每个子结构p的剪枝引起的损失函数的变化。每个对角线分量
Figure 592268DEST_PATH_IMAGE049
仅通过相对应的经剪枝的子结构p给定。第二项现在表示矩阵
Figure 893937DEST_PATH_IMAGE046
的所有非对角线分量的总和,其中p≠q。因此,每个非对角线分量
Figure 254511DEST_PATH_IMAGE046
可以描述通过同时剪枝子结构p和子结构q引起的损失函数的变化。在此意义上,可以指两个子结构p和q之间的相关性,因为只有当同时剪枝这两个子结构时才会发生损失函数的这种变化。
尽管损失函数的变化的表达式看似简单,但在
Figure DEST_PATH_IMAGE050
的计算中会存在一些困难。首先,海瑟矩阵
Figure 828581DEST_PATH_IMAGE051
(并因此矩阵
Figure 198382DEST_PATH_IMAGE046
)的维度
Figure DEST_PATH_IMAGE052
通常非常大,其中P表示神经网络中的连接的总数。出于此原因,在现有技术的一些目前已知的方法中,将海瑟矩阵通过对角矩阵(或几乎是对角矩阵)来近似。然而,这种近似忽略了上述定义的意义下的网络结构之间可能的相关性。然而,这可能导致在如下评估中的(部分相当大的)不精确性:网络子结构中的哪些网络子结构对神经网络的性能有影响。其次,
Figure 88978DEST_PATH_IMAGE053
的计算包含计算机实施的系统上的大数量计算步骤,所述数量随着根据
Figure DEST_PATH_IMAGE054
Figure 886032DEST_PATH_IMAGE055
的剪枝向量
Figure DEST_PATH_IMAGE056
的维度P和训练数据集N的数量而缩放。此外,计算步骤的数量与如下实事完全无关:考虑予以剪枝的网络子结构的相应的维度S可以显著地小于神经网络中的连接的总数P。因此,上述对具有大P的复杂结构的估计可能难以计算上执行。第三,可附加地得出问题的是,训练神经网络(尤其是相对大和复杂的神经网络)可能在计算上非常昂贵并因此是冗长的任务。在一些实施方式中,本公开的技术可以解决这些问题。
本公开的用于生成简化的计算机实施的神经网络的方法的第一步例如可以包括:接收预给定的神经网络,该神经网络在两层或更多层中包含多个神经网络子结构。例如,每层可以通过多个神经元和相应的接入连接给定。在此,设置在一层中的神经元的经加权的输出可以是可设置在另一层中的另一神经元的输入。例如,根据图1a的神经网络1包含四层。对于预给定的神经网络,可以给定当前权重
Figure 494868DEST_PATH_IMAGE057
。在一些情况下,也可以接收用于训练神经网络或待用于训练的训练数据集
Figure DEST_PATH_IMAGE058
。在一些情况下,预给定的神经网络可以是经训练的神经网络(例如,损失函数已通过训练最小化)。在其他示例中,预给定的神经网络可以是未经完全训练的神经网络(例如,损失函数尚未通过训练最小化)。在一些情况下,未经完全训练的神经网络只能执行完全训练所需的训练回合的一小部分(所谓的时期(Epochen),其可以表示对训练数据集的完整训练迭代,例如在执行“随机梯度下降(StochasticGradient Descent)”或其他方法的情况下)(例如少于100个训练回合或少于20个训练回合)。本公开的剪枝方法对于未经完全训练的神经网络会是特别有利的。“早期”剪枝可以减少训练开销。
训练数据集
Figure 760371DEST_PATH_IMAGE058
可以包含不同类型的数据,其中分别在一对中输入数据
Figure 771053DEST_PATH_IMAGE059
和输出数据
Figure DEST_PATH_IMAGE060
组合成一对
Figure 863642DEST_PATH_IMAGE061
。例如,输入日期和输出日期分别可以是标量(例如标量测量值)、任意长度的向量(即长度为1或更大)或矩阵。输入数据可以代表技术设备的环境影响或内部运行状态。在一个示例中,输入数据可以包括传感器数据。替选地或附加地,输入数据可以包括图像数据和/或音频数据。输出数据可以是设备或环境的状态或已识别的事件(例如,电子设备的状态“电池几乎耗尽”或“正在下雨”)。在其他示例中,输出参量可以是控制参量(例如对于执行器)或以某种其他方式辨识设备的反应。
根据本发明首先为预给定的神经网络计算近似神经网络。这可以包括围绕预给定的神经网络的当前权重
Figure DEST_PATH_IMAGE062
的近似。例如,可以通过围绕当前权重
Figure 130413DEST_PATH_IMAGE062
的线性化来生成近似神经网络。例如,神经网络可以通过在一组权重的情况下神经网络的传递函数的评估之和加上随权重线性缩放的项来近似。例如,这可以描述如下:
Figure 842017DEST_PATH_IMAGE063
Figure DEST_PATH_IMAGE064
,其中
Figure 566260DEST_PATH_IMAGE065
是神经网络的传递函数的梯度,所述梯度在当前权重
Figure 705117DEST_PATH_IMAGE062
的情况下在训练数据集上被计算。通过该措施可以以资源高效的方式执行该方法的其他步骤(例如在计算机系统上利用少的计算步骤执行)。
在根据本发明的方法的另一步骤中,可以计算与已经生成的近似神经网络相关的矩阵
Figure DEST_PATH_IMAGE066
,该矩阵描述损失函数
Figure 288545DEST_PATH_IMAGE067
的变化。如上所述,这些变化可以通过从多个神经网络子结构中剪枝一个或多个神经网络子结构引起。矩阵
Figure DEST_PATH_IMAGE068
可以描述通过同时从位于预给定的神经网络的不同层内的多个神经网络子结构中剪枝至少两个网络子结构引起的损失函数的变化(即矩阵
Figure 210365DEST_PATH_IMAGE068
可以考虑至少两个网络子结构之间的响应的相关性)。此外,在一些示例中,矩阵
Figure 195638DEST_PATH_IMAGE069
可以考虑通过同时剪枝位于预给定的神经网络的一层内的网络子结构引起的损失函数的变化。在一些示例中,矩阵可以描述通过同时从多个神经网络子结构(例如所有可能的对)中剪枝至少两个网络子结构的多对引起的损失函数的变化。
基于矩阵
Figure 505397DEST_PATH_IMAGE069
中描述的损失函数的变化,例如基于该矩阵的多个(例如所有)计算出的分量(而并不如在现有技术方法中那样仅基于主要对角线分量),可以确定:哪些神经网络子结构对原始预给定的神经网络的整体性能的贡献很小或甚至可以忽略不计(例如,整体性能下降不大于预定的测定值)。例如,在该上下文中,只有在剪枝之后没有造成损失函数
Figure DEST_PATH_IMAGE070
的上升或仅造成损失函数
Figure 576121DEST_PATH_IMAGE070
的非过度的上升的子结构可以分类为待剪枝的子结构。因此,这样分类的子结构可以从预给定的神经网络中被剪枝,以便能够实现为设备生成简化的神经网络。由此产生的简化神经网络可以更快地为设备提供数据和/或需要更少的硬件资源。
在此,如果通过使用预给定的神经网络关于其当前权重
Figure 317943DEST_PATH_IMAGE071
的二阶泰勒级数近似由剪枝得到的
Figure 157723DEST_PATH_IMAGE070
的变化,则上述线性化可以对应于损失函数中的近似。在一些情况下,如果预给定的神经网络不是经训练的神经网络(而是经部分训练的神经网络),则损失函数根据权重的一阶导数
Figure DEST_PATH_IMAGE072
不为零。
此外,该方法例如可以包括:计算预给定的神经网络围绕当前权重的上述梯度
Figure 638383DEST_PATH_IMAGE073
。在一个示例中,梯度
Figure 930824DEST_PATH_IMAGE073
的计算可以使用当前矩阵X,该矩阵X可以包含N对输入数据集的输入数据。然后,可以将梯度
Figure 522343DEST_PATH_IMAGE073
乘以网络子结构的剪枝向量(也称为扰动向量)
Figure DEST_PATH_IMAGE074
,以获得维度N的第二个向量
Figure 685471DEST_PATH_IMAGE075
,其中每个剪枝向量
Figure DEST_PATH_IMAGE076
分配给要剪枝的网络子结构。以此方式,可推导出多个第二向量
Figure 740627DEST_PATH_IMAGE077
(即S个第二向量),以考虑预给定的神经网络中可能的结构变化。计算成本针对这些步骤如
Figure DEST_PATH_IMAGE078
缩放。在其他示例中,梯度
Figure 146463DEST_PATH_IMAGE079
和第二个向量
Figure 666306DEST_PATH_IMAGE077
的计算可以通过使用Jakobi矢量积来实施。同样,这在计算上又会比现有技术的一些方法更高效。
如已经提及的那样,在一个示例中,预给定的神经网络可以是经训练的神经网络。在该情况下,训练数据集(X)可以由多对
Figure DEST_PATH_IMAGE080
组成,其中每对由技术设备的输入集和相应的输出集形成,并且其中预给定的神经网络可以为每对的输入集生成相应的输出集。此外,损失函数根据权重的一阶导数的在使用经训练的权重
Figure 635005DEST_PATH_IMAGE081
后计算的向量可以具有值
Figure DEST_PATH_IMAGE082
,所述值对应于损失函数的局部(或全局)最小值(在预定的精度的范围内)。在该示例中,矩阵
Figure 723047DEST_PATH_IMAGE083
的所有分量的计算可以通过针对经训练的神经网络的神经网络子结构的多对(例如每对)计算来自多个第二向量的所获得的第二向量
Figure DEST_PATH_IMAGE084
Figure 114714DEST_PATH_IMAGE085
的标量积来执行(
Figure 674134DEST_PATH_IMAGE086
Figure DEST_PATH_IMAGE087
)。
在其他示例中,预给定的神经网络可以是不完全训练的神经网络(其中术语“不完全训练”在上面介绍的意义上予以理解),其方式是:损失函数的一阶导数的在使用当前权重
Figure 77433DEST_PATH_IMAGE088
后计算的向量根据其权重可以具有如下值(例如明显不等于零的值,其中
Figure DEST_PATH_IMAGE089
Figure 336376DEST_PATH_IMAGE090
),所述值不对应于对于当前权重的损失函数的局部最小值。在这种情况下,损失函数对于当前权重将没有局部最小值。在一个示例中,神经网络的常见训练可以在几个优化步骤(时期)之后终止,并且得到的神经网络可以用作本公开的方法的预给定的神经网络。在另一示例中,神经网络可以通过确定的权重值初始化。然后,可以在根据本发明的方法中立即实施经初始化的神经网络并且将其视为预给定的神经网络。如果对神经网络的常见训练在计算上耗费或由于硬件资源有限而根本不可能,使用未完全训练的神经网络可能特别合适的。
通过使用未完全训练的神经网络计算矩阵
Figure 90706DEST_PATH_IMAGE083
可以包括三个步骤。首先,与在经训练的神经网络的第一示例中一样,针对未完全训练的神经网络的神经网络子结构的多对(例如每对)可以计算来自多个第二向量的所获得的第二向量
Figure DEST_PATH_IMAGE091
Figure 749089DEST_PATH_IMAGE092
的标量积。以这种方式,可以计算主对角线分量和次对角线分量的(第一)贡献。此外,考虑矩阵
Figure 272474DEST_PATH_IMAGE083
的主对角线分量的第二量值,其通过计算损失函数对接着使用当前权重的多个剪枝向量
Figure 702319DEST_PATH_IMAGE093
的一阶导数的向量和多个第一向量
Figure 678365DEST_PATH_IMAGE093
的标量积来执行。最后,将两个贡献相加。例如,这可能发生在以下式子
Figure DEST_PATH_IMAGE094
,其中
Figure 156751DEST_PATH_IMAGE095
是克罗内克(Kronecker)函数。
与在该方法中是使用经训练的神经网络还是使用未完全训练的神经网络作为预给定的神经网络无关,矩阵
Figure DEST_PATH_IMAGE096
的计算成本在一些情况下可以以
Figure 800222DEST_PATH_IMAGE097
缩放。总之,根据本发明的方法的总计算成本可以用
Figure DEST_PATH_IMAGE098
缩放,以便计算矩阵
Figure 135388DEST_PATH_IMAGE096
的所有分量。本发明的方法因此可以具有计算成本的获益,特别是在其中
Figure 221899DEST_PATH_IMAGE099
的较大结构的情况下,因为矩阵
Figure 300714DEST_PATH_IMAGE096
的直接计算可能需要明显更多的计算步骤
Figure DEST_PATH_IMAGE100
在该方法的下一步中和与上面的讨论相一致,使用矩阵
Figure 798691DEST_PATH_IMAGE101
中的信息来估计可以剪枝哪些子结构。
在第一种方法中,在此可以首先将矩阵
Figure 304759DEST_PATH_IMAGE096
的每一列中的所有分量相加以获得多个和。然后在考虑计算出的和的情况下,迭代地去除多个神经网络子结构。例如,这可以从计算多个和中的和的最小量值的神经网络子结构开始来实现。可以首先去除这些神经网络子结构。针对图2a中的神经网络示例性地示出这种所谓的“Lin Sum OBD”(“optimal braindamage(最佳脑损伤)”)剪枝方法的结果,该神经网络是为波士顿住房数据集(即标准数据集)创建的。在该图中示出了四个示例性的列7a-d,其中和的量值通过打孔的密度来说明。右列7d具有最小的和。因此,可以首先剪枝相关的神经网络子结构。
在替选方法中,首先去除对应于矩阵
Figure DEST_PATH_IMAGE102
的主对角线分量的最小量值的神经网络子结构。此后,迭代去除多个神经网络子结构,其中每个后续要去除的神经网络子结构对应于矩阵的与之前去除的神经网络子结构有关的多个主对角线分量和非对角线分量之和的最小量值。在图2b中示出了对与图2a中相同的神经网络应用这种“迭代完全OBD(IterativeFull OBD)”剪枝方法的示例。示例性的对角线和非对角线分量由圆圈表示,其中圆圈的大小与主对角线分量的大小/主对角线分量和非对角线分量之和成反比。
在另一替选方法中,可以首先去除对应于具有预定义的值的矩阵(
Figure 334026DEST_PATH_IMAGE103
)的主对角线分量、可选地矩阵(
Figure DEST_PATH_IMAGE104
)的最小主对角线分量的神经网络子结构。在一个示例中,首先可以将矩阵
Figure 216531DEST_PATH_IMAGE104
的计算出的主对角线分量按升序排列。然后去除对应于最小主对角线分量的神经网络子结构。接下来,根据本发明的方法包括:迭代去除多个神经网络子结构,其中每个要去除的后续神经网络子结构对应于排列的主对角线分量的下一个较大的值。用于与图2a和图2b中相同的神经网络的这种“结构化OBD”(“结构化最优脑损伤(structuredoptimal brain damage)”)剪枝方法的结果在图2c中作为示例示出。示例性对角线分量由圆圈表示,其中圆圈的大小与主对角线分量的大小成反比。
在图3中比较与剪枝比的不同值相关的在图2a-2c中使用的剪枝方法的测试损失。为零的剪枝比对应于预给定的神经网络未被剪枝的情况。在该示例中,经训练的神经网络选择为预给定的神经网络。对于“迭代完全OBD (Iterative Full OBD)”方法或“结构化OBD”方法的经剪枝的网络的整体性能对于小于0.7或0.4的剪枝比的值实际上不受影响,如该图所示。
通常,上述的所有三个剪枝过程都被执行直至简化的神经网络的大小低于所需的大小。在一个示例中,所期望的大小可以通过简化的神经网络中或简化的神经网络的一层内的最小神经元数量给定。在其他示例中,可以通过简化的神经网络中的神经元之间的连接的最小数量或通过简化的神经网络的一层内的神经元之间的连接的最小数量来定义期望的大小。期望的大小例如也可以作为简化的神经网络的未剪枝的层或结构的最小数量给定。在其他示例中,执行剪枝方法直到简化的神经网络的整体性能低于预定义的阈值。例如,可以借助测试损失来估计整体性能(参见例如图3),而这又可以根据损失函数来计算。在一个示例中,预定义的阈值可以定义为简化的神经网络和预给定的神经网络的整体性能之比。在另一示例中,预定义的阈值可以对应于选定的数量。
如前所述,本公开的简化的计算机实施的神经网络可用于各种技术应用中。大体而言,本公开还涉及方法,一方面剪枝计算机实施的神经网络,然后在技术设备中使用计算机实施的神经网络的方法。该使用例如可以包括,通过简化的神经网络控制(或调节)技术设备,通过简化的神经网络识别技术设备的运行状态(例如故障)或技术设备的环境的状态,或通过简化的神经网络评估技术设备的运行状态或技术设备的环境状态。在这种情况下,输入数据可以包含与设备的内部状态相关的状态数据(例如至少部分传感器数据)。附加地或替选地,输入数据可以包含与设备的环境有关的状态数据(例如,至少部分地传感器数据)。简化的神经网络的输出数据可以表征设备的运行状态或其他内部状态(例如,是否存在错误或临界运行状态)。输出数据可用于响应表征的运行状态或另一内部状态来控制所述设备。替选地或附加地,输出数据可以包含所述设备的控制数据。
在一些情况下,该设备可以是电器(例如工具、家用电器或园艺设备)。在其他示例中,该设备可以是物联网设备(“Internet of Things”)。替代地或附加地,该设备可以是电池驱动的设备。如上所述,简化的计算机实施的神经网络在这些环境中可能是有利的,因为它们可以被设计为相对资源高效。
简化的计算机实施的神经网络可用于对时间序列进行分类,尤其是对图像数据进行分类(即设备是图像分类器)。图像数据可以是例如相机图像数据、激光雷达图像数据、雷达图像数据、超声图像数据或热图像数据(例如由相应的传感器生成)。图像数据可以包括单独图像或视频数据。在一些示例中,计算机实施的神经网络可以设计用于监控设备(例如制造过程和/或用于质量保证)或用于医学成像系统(例如用于查找诊断数据)或可以使用于这样的设备中。图像分类器可以设计为接收图像数据并将其分类为若干类别。在一些示例中,这可以包括将包含图像数据的一维(
Figure 569015DEST_PATH_IMAGE105
)的输入向量形式的输入数据映射到第二维(
Figure DEST_PATH_IMAGE106
)输出向量形式的输出数据上,所述输出向量表示分类结果。例如,输入向量的分量可以表示多个接收到的图像数据。输出向量的每个分量都可以表示使用简化的计算机实施的神经网络计算的图像分类结果。在一些示例中,图像分类可以包括图像的语义分割(例如,图像的逐像素分类)。例如,图像分类可以是对象分类。例如,可以检测图像数据中的一个或多个物体的存在(例如在驾驶员辅助系统中自动识别交通标志或车道)。
在其他示例中(或附加地),计算机实施的神经网络可以被设计或使用来监控至少半自主机器人的运行状态和/或环境。至少半自主机器人可以是自主车辆(或另一种至少半自主移动或运输工具)。在其他示例中,至少半自主机器人可以是工业机器人。在其他示例中,该设备可以是一台机器或一组机器(例如,工业现场)。例如,可以监控机床的运行状态。在这些示例中,输出数据y可以包含与相应技术设备的运行状态和/或环境有关的信息。
在其他示例中,要监控的系统可以是通信网络。在一些示例中,网络可以是电信网络(例如5G网络)。在这些示例中,输入数据x可以包含网络节点中的利用率数据,并且输出数据y可以包含与资源分配相关的信息(例如信道、网络信道中的带宽或其他资源)。在其他示例中,可以识别网络故障。
在其他示例中(或附加地),计算机实施的神经网络可以被设计或用于控制(或调节)技术设备。该设备又可以是上面(或下面)讨论的设备之一(例如,至少半自主机器人或机器)。在这些示例中,输出数据y可以包含相应技术系统的控制变量。
在其他示例中(或附加地),可以设计或使用计算机实施的神经网络来对信号滤波。在某些情况下,信号可以是音频信号或视频信号。在这些示例中,输出数据y可以包含经滤波的信号。
可以在计算机实施的系统上执行本公开的用于生成和应用简化的计算机实施的神经网络的方法。计算机实施的系统可以包括至少一个处理器、至少一个存储器(其可以包含程序,所述程序在被执行时执行本公开的方法)以及至少用于输入和输出的接口。计算机实施的系统可以是“独立”系统或经由网络(例如互联网)通信的分布式系统。
本公开还涉及利用本公开的方法生成的(简化的)计算机实施的神经网络。本公开还涉及构建为执行本公开的方法的所有步骤的计算机程序。此外,本公开涉及机器可读存储介质(例如光存储介质或固态存储器例如闪存),在所述机器可读存储介质上存储计算机程序,所述计算机程序构成为执行本公开内的方法的所有步骤。

Claims (17)

1.一种为设备生成简化的计算机实施的神经网络的方法,所述方法包括以下步骤:
接收预给定的神经网络,所述神经网络在两层或更多层中包含多个神经网络子结构;
针对预给定的神经网络计算近似神经网络;
计算与近似神经网络相关的矩阵(
Figure 23419DEST_PATH_IMAGE001
),所述矩阵(
Figure 940559DEST_PATH_IMAGE001
)描述了通过从多个神经网络子结构中剪枝一个或多个神经网络子结构造成的损失函数的变化,
其中所述矩阵(
Figure 720296DEST_PATH_IMAGE001
)描述了通过同时从位于预给定的神经网络的两层或更多层的不同层内的多个神经网络子结构中剪枝至少两个网络子结构造成的损失函数的变化;
基于所述矩阵(
Figure 115505DEST_PATH_IMAGE001
)中描述的损失函数的变化,从多个神经网络子结构中剪枝至少一个神经网络子结构以便生成简化的神经网络。
2.根据权利要求1所述的方法,
其中近似神经网络的计算包括围绕预给定的神经网络的当前权重进行线性化。
3.根据权利要求1或2所述的方法,
其中计算矩阵(
Figure 929878DEST_PATH_IMAGE001
)包括:将梯度(
Figure 752340DEST_PATH_IMAGE002
))乘以多个剪枝向量(
Figure 711985DEST_PATH_IMAGE003
)以确定多个第二向量(
Figure 910885DEST_PATH_IMAGE004
),其中所述梯度(
Figure 579764DEST_PATH_IMAGE002
))通过预给定的神经网络的当前权重给定,其中多个剪枝向量(
Figure 573128DEST_PATH_IMAGE005
)中的每个剪枝向量(
Figure 327457DEST_PATH_IMAGE005
)被分配给要剪枝的网络子结构,其中多个剪枝向量(
Figure 126786DEST_PATH_IMAGE005
)中的每个剪枝向量描述了当前权重通过相应的神经网络子结构的剪枝引起的变化,并且其中通过相乘为每个第二向量(
Figure 650171DEST_PATH_IMAGE004
)分配相应的剪枝向量(
Figure 80016DEST_PATH_IMAGE005
)。
4.根据权利要求3所述的方法,
其中预给定的神经网络是经训练的神经网络,其中训练数据集(X)描述了设备的特性,其中所述训练数据集(X)由多对(X=
Figure 321641DEST_PATH_IMAGE006
)组成,其中每对由所述设备的输入集和相应的输出集形成,并且其中预给定的神经网络为每对的输入集生成相应的输出集。
5.根据权利要求4所述的方法,
其中针对经训练神经网络的多对、可选地针对每对来自多个神经网络子结构中的多个神经网络子结构,通过计算多个第二向量中的第二向量
Figure 596765DEST_PATH_IMAGE007
的标量积来执行矩阵
Figure 240236DEST_PATH_IMAGE008
的计算。
6.根据权利要求3所述的方法,
其中所述预给定的神经网络是不完全训练的神经网络,其方式是:损失函数对其在使用当前权重后计算的权重的一阶导数的向量假定如下值,所述值不对应于损失函数对于当前权重的局部最小值。
7.根据权利要求6所述的方法,
其中矩阵
Figure 575402DEST_PATH_IMAGE009
的计算包括以下步骤:
针对多对、可选地针对每对来自多个神经网络子结构中的神经网络子结构,通过计算来自多个第二向量的第二向量
Figure 304323DEST_PATH_IMAGE010
的标量积来计算第一贡献;
通过计算所述损失函数对多个接着使用当前权重的剪枝向量
Figure 383138DEST_PATH_IMAGE011
的一阶导数的向量与多个剪枝向量
Figure 694165DEST_PATH_IMAGE011
的标量积来计算对矩阵
Figure 465812DEST_PATH_IMAGE012
的主对角线分量的第二贡献;
将第一贡献与第二贡献相加。
8.根据上述权利要求5或7中任一项所述的方法,
其中所述剪枝包括:
对矩阵
Figure 416450DEST_PATH_IMAGE013
的每列中的所有分量求和,以获得多个和;
从对应于多个和中的和的最小量值的神经网络子结构开始,迭代去除多个神经网络子结构。
9.根据上述权利要求5或7中任一项所述的方法,
其中所述剪枝包括:
去除对应于所述矩阵
Figure 298955DEST_PATH_IMAGE014
的主对角线分量的最小量值的神经网络子结构;
迭代去除多个神经网络子结构,其中每个后续要去除的神经网络子结构对应于所述矩阵
Figure 651439DEST_PATH_IMAGE014
的与之前去除的神经网络子结构有关的多个由主对角线分量和非对角线分量构成的和的最小和量值。
10.根据上述权利要求5或7中任一项所述的方法,
其中所述剪枝包括:
去除对应于具有预定义的值的矩阵
Figure 593988DEST_PATH_IMAGE014
的主对角线分量、可选地是矩阵
Figure 828660DEST_PATH_IMAGE014
的最小主对角线分量的神经网络子结构,;
迭代去除多个神经网络子结构,其中每个后续要去除的神经网络子结构对应于矩阵
Figure 249277DEST_PATH_IMAGE014
的主对角线分量的下一个较大值。
11.根据上述权利要求8至10中任一项所述的方法,
其中执行迭代去除,直到简化的神经网络的大小低于期望的大小。
12.根据上述权利要求8至10中任一项所述的方法,
其中执行迭代去除,直到简化的神经网络的整体性能低于预定义的阈值。
13.根据上述权利要求1至12中任一项所述的方法,
其中通过使用预给定的神经网络围绕其当前权重的二阶泰勒级数近似损失函数的变化,可选地其中泰勒级数还包含一阶的项。
14.根据上述权利要求1至13之一所述的方法,
其中所述神经网络是图像分类器,其中图像分类器被设计为接收图像数据形式的输入数据并且可选地基于图像数据的语义分割将图像数据分类成一个或多个类别。
15.根据上述权利要求1至14中任一项所述的方法,还包括:
通过简化的神经网络控制所述设备;或者
通过简化的神经网络识别所述设备的运行状态或所述设备的环境的状态;或者
通过简化的神经网络评估所述设备的运行状态或环境的状态。
16.一种计算机程序,所述计算机程序被设立为,执行根据权利要求1至14中任一项所述的方法的所有步骤。
17.一种机器可读的存储介质,在所述机器可读的存储介质上存储有根据权利要求16所述的计算机程序。
CN202111215634.5A 2020-10-20 2021-10-19 生成简化的计算机实施的神经网络 Pending CN114386558A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020213238.0A DE102020213238A1 (de) 2020-10-20 2020-10-20 Erzeugung von vereinfachten computer-implementierten neuronalen netzwerken
DE102020213238.0 2020-10-20

Publications (1)

Publication Number Publication Date
CN114386558A true CN114386558A (zh) 2022-04-22

Family

ID=80929041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111215634.5A Pending CN114386558A (zh) 2020-10-20 2021-10-19 生成简化的计算机实施的神经网络

Country Status (4)

Country Link
US (1) US20220121960A1 (zh)
JP (1) JP2022067651A (zh)
CN (1) CN114386558A (zh)
DE (1) DE102020213238A1 (zh)

Also Published As

Publication number Publication date
US20220121960A1 (en) 2022-04-21
DE102020213238A1 (de) 2022-04-21
JP2022067651A (ja) 2022-05-06

Similar Documents

Publication Publication Date Title
Uribe et al. Optimal algorithms for distributed optimization
Rao et al. Machine learning for solar array monitoring, optimization, and control
Dimitrov Surrogate models for parameterized representation of wake‐induced loads in wind farms
Mikaelian et al. A logical approach to real options identification with application to UAV systems
CN108563863B (zh) 城市轨道交通系统的能耗计算与调度方法
Guo et al. Fixed-time consensus of nonlinear multi-agent system with uncertain disturbances based on event-triggered strategy
CN110929844A (zh) 芯片成品率预测方法、装置、设备及存储介质
Eslami et al. Consensus of multi-agent systems with heterogeneous unknown nonlinear switching dynamics: A dwelling time approach
Tan et al. Targeted adversarial attacks against neural network trajectory predictors
CN114626510A (zh) 一种无人机检测用轻量卷积神经网络搭建的方法及设备
Rodríguez et al. Updating digital twins: Methodology for data accuracy quality control using machine learning techniques
Shakeri et al. Optimal measurement scheduling for state estimation
WO2020185207A1 (en) Computerized system and method for generative circuit design with machine-learned networks
CN114386558A (zh) 生成简化的计算机实施的神经网络
Zhang et al. Finite time controller design of nonlinear quantized systems with nonstrict feedback form
Barton Issues in development of simultaneous forward-inverse metamodels
CN115906990A (zh) 对计算机实现的神经网络的高效的二阶剪枝
Huang et al. Finite-time multi-surrounding control of networked marine surface vehicles: A three-layer-hierarchical approach
Chen et al. An integrated hybrid algorithm based on nature inspired evolutionary for radial basis function neural network learning
Chen et al. Guaranteed cost consensus for a class of fractional-order uncertain multi-agent systems with state time delay
de Paula et al. Zonotopic and Gaussian state estimator: the predictor and filter algorithms
JPH0535710A (ja) ニユーラルネツトワークの学習方法および学習装置
Booker et al. Learning to actively reduce memory requirements for robot control tasks
Kostiuk et al. Information and Intelligent Forecasting Systems Based on the Methods of Neural Network Theory
CN111353587B (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