CN112446467A - 对深度神经网络的压缩 - Google Patents

对深度神经网络的压缩 Download PDF

Info

Publication number
CN112446467A
CN112446467A CN202010877214.2A CN202010877214A CN112446467A CN 112446467 A CN112446467 A CN 112446467A CN 202010877214 A CN202010877214 A CN 202010877214A CN 112446467 A CN112446467 A CN 112446467A
Authority
CN
China
Prior art keywords
deep neural
neural network
layers
layer
parameters
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
CN202010877214.2A
Other languages
English (en)
Inventor
T·普法伊尔
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 CN112446467A publication Critical patent/CN112446467A/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • 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/048Activation functions

Landscapes

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

Abstract

对深度神经网络的压缩。本发明涉及一种用于压缩深度神经网络(12)的方法。该深度神经网络包括多个层,所述多个层按照可预先给定的顺序分别在输入侧与所述多个层的该顺序的紧前面的层连接。该方法包括如下步骤:添加桥接连接(英文skip connection)(24)。接着降低这些层的参数的分辨率。本发明还涉及用于实施该方法的一种计算机程序以及一种设备。

Description

对深度神经网络的压缩
技术领域
本发明涉及一种用于在使用桥接连接的情况下压缩深度神经网络的方法。本发明还涉及分别被设立为实施该方法的一种计算机程序和一种设备。
背景技术
未在先公开的专利申请DE 10 1218 216 471.1公开了一种机器学习系统,该机器学习系统包括多个层。与一个其它层连接的那些层的参数分别比与多个其它层连接的那些层的参数具有更高的分辨率。
发明内容
在第一方面中,提出了一种用于压缩深度神经网络的方法、尤其是计算机实现的方法。深度神经网络可以是已经创建的深度神经网络并且包括多个层,这些层按照可预先给定的顺序分别在输入侧与这些层的该顺序的紧前面的层连接。所创建的深度神经网络被理解为具有固定架构或预先给定的结构的深度神经网络。参数分别被分配给这些层,诸如权重或过滤器。这些层可以分别被设立为:根据相应的层的至少一个输入参量并且根据被分配给相应的层的参数来确定激活。
该方法包括如下步骤。添加桥接连接(英文skip connection)。于是,所添加的桥接连接是在深度神经网络中的新的、附加的连接,该新的、附加的连接在所创建的深度神经网络中不曾被设置。该桥接连接将这些层中的一层在输入侧附加地与另一层连接,该另一层是按该顺序间接地前面的层。前面的层是按这些层的顺序布置在在输入侧具有该桥接连接的层前面的层。该桥接连接结束于在输入侧与该桥接连接相连接的层并且开始于前面的层,该前面的层通过该桥接连接与在输入侧所连接的层连接。接着降低这些层的参数的分辨率、尤其是使这些层的参数量化。
接着,现在可以将通过降低分辨率而被压缩的深度神经网络保存在存储器中。应注意:至少这些参数被保存在存储器中,由此借助于降低这些参数的分辨率而需要更少的存储空间来保存这些参数。附加地或替选地,然后该深度神经网络可以被投入运行。“投入运行”可以被理解为:深度神经网络根据所提供的输入参量来分别确定输出参量。
已经看出:由于该桥接连接,有更多信息(部分地有冗余)通过具有该桥接连接的深度神经网络来传送,由此相对于没有桥接连接的神经网络而言可以实现对分辨率的更强烈的降低。通过添加该桥接连接,深度神经网络随后可以更强烈地被量化。因而,该方法的优点在于:通过这两个所提出的方法步骤,可以生成存储和计算特别高效的深度神经网络。
第一方面的方法还具有如下优点:由于参数的分辨率降低,这些参数可以在存储空间需求小的情况下特别高效地被存储在存储器中,而神经神经网络的性能意外地并没有受损。此外,由于参数和/或激活的分辨率降低,可以降低该深度神经网络的计算需求。例如,通过熟练使用计算架构和参数的更低的分辨率,可以对这些参数进行并行处理,例如通过实施一个32位计算运算或者四个8位计算运算来对这些参数进行并行处理。另一优点是:由于结果得到的节省资源的处理,深度神经网络不仅可以被用于静态应用(例如在计算中心中)而且可以被用于移动应用(例如移动数据连接设施或者嵌入式系统)。这样被压缩的深度神经网络特别适合于在传感器附近或者在传感器本身中处理所测量的数据,借此所测量的数据可以经压缩地并且带宽更高效地被传输。
参数和/或激活的更低的分辨率、尤其是更强烈的量化不使深度神经网络的性能、尤其是结果的精度变差源自于:通过与其它的、不同的层的附加连接来提供不一样地被处理的输出参量。由此,在输入侧与多个层连接的那个层得到更多信息,而且输入参量由此可以在更好的或更完整的所描述的状态空间中被表示。由此实现了相对于干扰更高的稳健性,由此参数和激活例如可以更强烈地被量化,而不损害深度神经网络的性能。
在该方法开始时初始创建的深度神经网络可以是已经(部分地)经学习的深度神经网络。替选地,初始创建的深度神经网络可以是新初始化的深度神经网络。初始创建的深度神经网络可以只具有前馈连接(英文:feed-forward network(前馈网络))、即没有桥接连接。但是也可设想的是:深度神经网络在实施该方法之前已经具有一个或多个桥接连接。接着,这些层可以与一个或多个前面的和/或随后的层连接。前面的层被理解为这样的层,该层在时间上在相应的所连接的层之前确定该层的输出参量并且将该层的输出参量作为输入参量提供给相应的所连接的层。随后的层被理解为这样的层,该层得到相应的所连接的层的输出参量作为输入参量。在将其它桥接连接添加到已经具有至少一个桥接连接的深度神经网络方面的优点是:可以实现分辨率的还更强烈的降低。因为存在由深度神经网络、即不同的桥接连接所引起的路径越多,分辨率就可以被降低得越强烈。
在输入侧连接可以被理解为:这些层之一、尤其是前面的层和/或随后的层的输出参量被用作为与该层连接的层的输入参量。
应注意:桥接连接可以前馈以及反馈。也就是说,信息可以沿着桥接连接朝着深度神经网络的信息处理方向以及朝着与信息处理方向相反的方向流动。信息处理方向可以被理解为输入参量通过深度神经网络传播的方向、即从深度神经网络的输入端到输出端的方向。
还应注意:除了这些参数之外,也可以降低这些层的激活的分辨率。
提出:这些参数的分辨率的降低取决于:这些层之一是否与多个层直接在输入侧连接。因为已经看出:在输入侧具有桥接连接的那些层可以更强烈地被量化。依据更强烈的量化,可以节省存储空间和计算能力。因而,还提出:与多个层、尤其是前面的层直接在输入侧连接的那个层的参数或激活的分辨率低于与正好一个层直接在输入侧连接的那些层的参数或激活的分辨率。
分辨率可表征:借助于多少个不同的可能的、尤其是离散的参量来分别表示参数和/或激活。附加地或替选地,分辨率可表征例如被保存在存储器中的参量相对于参数的最初被确定的参量的偏差或例如被保存在存储器中的参量的精度,例如借助于多少位来表示这些参量。附加地或替选地,分辨率可以表征参数和/或激活的两个最小参量之差或者参数和/或激活的两个最接近的、尤其是离散的参量之差。
提出:位数目表征分辨率,借助于所述位数目保存参数、尤其是将参数保存在存储器中或者表示激活。还提出:与多个层直接在输入侧连接的那个层的参数或激活的分辨率分别比与正好一个层直接在输入侧连接的那些层的参数或激活的分辨率低至少超过一位。
在这方面有利的是:通过使用更少的位来存储参数,需要更小的存储器,该更小的存储器允许深度神经网络的更紧凑的结构类型。因为用于存储和读取参数和激活的能耗与位的数目成比例,并且用于乘法的能耗与参数和激活的分辨率(以位为单位)成平方关系,所以降低位的数目、尤其是通过量化来降低位的数目是特别计算机资源高效的。
还提出:所提供的深度神经网络的参数已经被量化,尤其是依据可预先给定数目的位来被量化。接着,通过减小字宽来降低这些层的参数的分辨率。字宽可以表征用于表示被量化的参数的位的数目。也可设想的是:通过减少量化等级的数目或者通过减少用于表示参数的位的数目来降低分辨率。
优选地,被压缩的深度神经网络与所提供的深度神经网络结构相同,因此参数或激活的相对应的分辨率可以被理解为:能重新找到在分别另一深度神经网络的同一位置处具有相对应的分辨率的参数或激活。
还提出:该桥接连接将可预先给定数目的层桥接。该可预先给定的数目对应于:来自从包括值一在内直至包括所述深度神经网络的层的总数的值减去值二或者减去值一在内的值域中的尽可能大的值。根据深度神经网络的输入和输出层是否被考虑,相对应地减去值一或二。
被桥接的层的尽可能大的数目的优点是:由此尽可能将这些层之一的信息在输入端处就尽可能深地转发到深度神经网络中。由此,较深的层被提供较少地被预处理的信息。提供较少地被预处理的信息特别积极地反映在深度神经网络的所确定的输出结果的质量中。
尽可能大的值可以被理解为:优选地从该值域的最大的值的20%或最大10%中选择值。已经被证明的是:由被桥接的层的尽可能大的数目而结果得到的优点也已经在将两个或多于两个层桥接时得出。因而,尽可能大的值也可以被理解为:该值被选择得大于等于值二(≥2)。
还提出:桥接连接尽可能靠近深度神经网络的输入端地开始,尤其是开始于这些层的该顺序的最前面的层之一处。还提出:桥接连接尽可能靠近输出端地、尤其是在该顺序的最后的层之一处结束。最前面的层可以是按这些层的顺序布置于开始处的那些层。
原则上适用:丢失过一次的信息不能恢复。因为在靠近输入端的层中通常进行基础变换,所以在那里的信息丢失导致深度神经网络的性能强烈降低。相反,最后的层大多只还能取得最后几个性能百分点。因而,在更深层中的量化中的错误具有更小的影响,因为更少已经被提取的信息丢失。
尽可能靠近深度神经网络的输入端可以被理解为:所添加的桥接连接开始于深度神经网络的布置在该顺序的前二分之一内的层之一处。该顺序的前二分之一是包括得到深度神经网络的输入参量的输入层的二分之一。相对应地,该顺序的后二分之一包括输出深度神经网络的最终结果的输出层。优选地,所添加的桥接连接将前二分之一的层与前二分之一或后二分之一的层连接。也可设想的是:所添加的桥接连接开始于该顺序的层的前5%或10%或20%之一处。特别优选地,所添加的桥接连接开始于所述多个层的该顺序的第一或第二或第三层处。
还提出:或者在添加桥接连接的步骤之前和/或在添加桥接连接的步骤之后和/或在降低分辨率的步骤之后实施随后的步骤:提供训练数据,所述训练数据分别包括输入参量和被分配给这些输入参量的输出参量。于是使深度神经网络进行学习。在进行学习时,参数被适配为使得深度神经网络分别根据训练数据的输入参量来分别确定这些输入参量的所分配的输出参量。
可设想的是:进行学习和降低分辨率的序列多次相继被实施。也可设想的是:添加其它桥接连接的步骤同样在多次相继实施时一并被实施至少一次。
还提出:深度神经网络的每个层都包括多个神经元,其中每个层的所有神经元都被分成多个组。这些组中的每个组都在被分配给该组的计算单元上被实施。这些计算单元分别处理一层的至少一组或者不同的层的多个组。在进行学习时,可以选择经过包含至少一个桥接连接的深度神经网络的多个路径。接着,各个路径根据在使用如下那些计算单元的情况下的分別一个成本函数来被学习,所述计算单元实施该路径延伸经过的那些层的组中的至少一组。这些路径可以彼此分开地被学习或者重叠地被学习。优选地,这些路径需要不一样多的计算资源(例如FLOPs),即例如包括深度神经网络的不一样多的层。接着,在运行该深度神经网络、尤其是被压缩的深度神经网络时,可以有针对性地根据这些路径之一来激活计算单元。例如,在运行时,在理想情况下首先将尽可能多的计算单元停用,所述计算单元对于在计算资源方面最没什么花费的路径来说不被需要。接着,可以激活对于在计算资源方面花费最高的路径、例如整个网络来说被需要的其它计算单元(根据其它所使用的路径),直至激活所有计算单元。替选地,在进行学习时,可以将可预先给定数目的可预先给定的、尤其是随机被选择的计算单元停用。在该做法的情况下,深度神经网络相对于神经元的失灵而言特别灵活并且节省能量,因为在该深度神经网络运行时可以将任意的计算单元停用。
还提出:按照将神经元划分到不同的计算单元来运行被压缩的深度神经网络,其中各个计算单元都可以被停用。在运行被压缩的深度神经网络时对计算单元的停用可取决于被提供给深度神经网络的能量预算。
将深度神经网络的层的功能性(所有神经元)以部分功能性(神经元组)分配到多个计算单元上导致:在将各个计算单元停用时可以节省能量。现在,尤其是当对计算单元(神经元)的停用已经在进行学习时被考虑时,可以将各个计算单元、如CPU停用,由此在网络中的各个神经元有效地被停用,以便节省能量,而结果的精度不会剧烈降低。通过该做法,也可以实现更好的能量-精度折衷。
还提出:被压缩的深度神经网络(该深度神经网络是按照第一方面被压缩的)根据传感器的所检测到的传感器参量来确定输出参量,该输出参量于是可以被用于借助于控制单元来确定控制参量。
控制参量可以被用于控制技术系统的执行器。该技术系统例如可以是至少部分自主机器、至少部分自主车辆、机器人、工具、工厂机器或者如无人驾驶飞机那样的飞行器。输入参量例如可以根据所检测到的传感器数据来确定并且被提供给机器学习系统。传感器数据可以由技术系统的传感器、诸如摄像机来检测或者替选地从外部被接收。
在另一实施例中,深度神经网络被设立为对传感器数据进行分类。
在另一方面中,提出了一种计算机程序。该计算机程序被设立为:实施本发明的第一方面的所提到的方法之一。该计算机程序包括指令,当该计算机程序在计算机上运行时,这些指令促使该计算机以这些所提到的方法之一的所有步骤来实施该方法。还提出了一种机器可读存储模块,在其上存储有该计算机程序。还提出了一种设备,该设备被设立为实施第一方面的方法之一。
附图说明
上述方面的实施例在随附的附图中示出并且在随后的描述中进一步予以阐述。在此:
图1示出了深度神经网络的示意图和表格;
图2示出了车辆的示意图;
图3示出了具有桥接连接和存储器的深度神经网络的示意图;
图4示出了用于压缩深度神经网络的方法的实施方式的示意图;
图5示出了可被用于使深度神经网络进行学习的设备的实施方式的示意图。
具体实施方式
图1示出了深度神经网络(01)的示意图。深度神经网络(01)通过四个不同的块来呈现。第一块(in)示意性地是深度神经网络(01)的输入层。第一块与第二块(B1)连接。该第二块(B1)又与第三块(B2)连接,该第三块又与第四块(out)连接。第四块(out)示意性地是深度神经网络(01)的输出层。第二和第三块(B1、B2)分别是深度神经网络(01)的隐藏层(英文hidden layer)的一部分。在第二块(B1)的第一实施方式中,该块可以是具有桥接连接(英文skip-connection)的密集网格层(英文Dense Net,简称DN)。在第二块(B1)的第二实施方式中,该块可以仅具有前馈层(VGG),即没有桥接连接。相同的情况也适用于第三块(B2)。
表格(02)示出了深度神经网络(01)的精度结果,其中桥接连接在深度神经网络(01)之内不一样地被定位而且其中深度神经网络(01)的参数不一样强烈地被量化(32位或3位)。在图1的所绘出的表格(02)中,在第一行中录入两个块B1和B2以及第一精度(acc 32位)和第二精度(acc 3位)。第一精度(acc 32位)说明:与参考数据、诸如被加标签的训练数据相比,具有超过32位的参数分辨率的深度神经网络(01)的所确定的结果达到怎样的精度。在块B1和B2的下方的列中,列出了具有不一样地被配置的层(DN、VGG)的深度神经网络(01)的全部四个可能的实施方式。在深度神经网络(01)的可能的实施方式右侧,列出针对深度神经网络(01)的参数的不同分辨率所确定的精度(acc)。该表格显著表明:第二块(B1)包含具有桥接连接(DN)的密集网格层是有利的,因为在这种情况下在用例如3位来量化参数时的精度总是还用一个加号(+)来予以评价,而在针对第二块(B1)仅仅使用没有桥接连接(VGG)的前馈层时的精度在相同的量化(3位)的情况下用两个减号(--)来予以评价。这一点明确表明:在具有强烈量化的参数(例如具有3位)的深度神经网络(01)的精度方面决定性的是:靠近深度神经网络(01)的输入层地使用桥接连接。
图2示出了至少部分自主机器人的示意图,该至少部分自主机器人在第一实施例中通过至少部分自主车辆(10)来给出。在另一实施例中,该至少部分自主机器人可以是服务机器人、装配机器人或固定式生产机器人,替选地可以是自主飞行器、如无人驾驶飞机。
至少部分自主车辆(10)可包括检测单元(11)。检测单元(11)例如可以是摄像机,该摄像机检测车辆(10)的周围环境。检测单元(11)与深度神经网络(12)、尤其是在实施按照图4的方法之后可得到的深度神经网络(12)连接。深度神经网络(12)根据所提供的输入参量、例如由检测单元(11)所提供的输入参量并且根据深度神经网络(12)的多个参数来确定输出参量。输出参量可以被转发给控制单元(13)。
控制单元(13)根据深度神经网络(12)的输出参量来控制执行器,优选地将该执行器控制为使得车辆(10)实施无碰撞的机动动作(Manöver)。在第一实施例中,执行器可以是车辆(10)的马达或制动系统。
在另一实施例中,部分自主机器人可以是工具、工厂机器或制造机器人。工件的材料可以借助于机器学习系统(12)来分类。在这种情况下,执行器例如可以是驱动磨削头的马达。
车辆(10)、尤其是部分自主机器人还包括计算单元(14)和机器可读存储元件(15)。在存储元件(15)上可以存储计算机程序,该计算机程序包括如下指令,在计算单元(14)上实施所述指令时,所述指令导致:借助于计算单元(14)来运行深度神经网络(12)。
在另一实施例中,深度神经网络(12)可以集成在传感器中或集成在检测单元(11)中,以便借助于深度神经网络(12)来处理所检测到的传感器值。借助于深度神经网络(12)来处理的传感器值优选地是被压缩或已经被分析的传感器值,使得这些传感器值接着可以高效地被传输给例如控制单元(13)。优选地,在这种情况下,至少参数存储在传感器的芯片上或者深度神经网络以硬件形式集成在该芯片上。
图3示出了图2中的深度神经网络(12)的示意图,该深度神经网络在该实施方式中通过具有四个层的深度神经网络来给出。在其它实施方式中,深度神经网络(12)可以通过卷积神经网络(英文Convolutional Neural Network)来给出。
深度神经网络(12)包括多个层,所述多个层分别借助于连接(23)来彼此连接并且所述多个层分别包括多个神经元(22)。深度神经网络(12)还具有桥接连接(24)。图3中的桥接连接(24)具有如下效果:深度神经网络(12)的第一层的输出参量直接被转发给第三层并且这里作为输入参量被提供。因此,第二层被桥接。应注意:桥接连接(24)也可以朝着相反的方向被设计。例如,第三层的输出参量可以借助于反复发生的桥接连接作为输入参量被输送给先前的层。
深度神经网络(12)根据深度神经网络(12)的输入参量(21)来逐层地确定输出参量(25)。为此,每个层都根据被提供给该层的输入参量并且根据该层的参数来确定输出参量。于是,输出参量通过连接(23)被转发给其它层。
在该实施例中,相应的层的参数可以示例性地分别具有至少第一参量和/或第二参量以及第三参量。这些层可以分别借助于第一参量来对输入参量进行加权和/或借助于第二参量来对输入参量进行过滤。这些层可以针对被加权/被过滤的输入参量来将第三参量加到被加权/被过滤的输入参量。可选地,该经处理的输入参量根据参数借助于激活函数(例如ReLu)来被进一步处理。
深度神经网络(12)的参数、尤其是这些层的参数可以保存在存储器(200)中。
图4示出了用于压缩所提供的深度神经网络的方法(30)的示意图。
该方法开始于步骤300。在该步骤中,提供深度神经网络。深度神经网络可以是仅仅前馈神经网络,该前馈神经网络不包含桥接连接。替选地,所提供的深度神经网络也可以是包含至少一个桥接连接的前馈神经网络。所提供的深度神经网络可以是已经(预先)训练的深度神经网络或者新初始化的深度神经网络。深度神经网络的层的参数可具有高分辨率、例如32位。
可选地,在步骤300之后可以实施随后的步骤310。在该步骤310中,将训练数据提供给深度神经网络、尤其是新初始化的深度神经网络。所述训练数据优选地包括训练输入参量和分别被分配的训练输出参量(英文label(标签))。训练输入参量例如可以是摄像机的图像,并且训练输出参量例如可以是对摄像机图像的分类或分割。附加地或替选地,所述训练数据可包括多个被加标签的声音序列、文本片段、雷达信号、激光雷达信号或者超声信号。于是,在步骤310中,基于所提供的训练数据来使深度神经网络进行学习。在使深度神经网络进行学习时,相应的层的参数被适配为使得深度神经网络根据所提供的训练输入参量来确定分别被分配的输出参量。
优选地,根据成本函数来执行该学习,该成本函数例如表征所确定的输出参量与训练输出参量之差。该成本函数可以借助于梯度下降法关于这些参数来被优化。在梯度下降法的情况下,该成本函数迭代地被优化,其中通常使用具有32位的分辨率的梯度。这些参数可以根据梯度被适配,由此该成本函数被改变,使得该成本函数理想地被最小化或最大化。因为梯度通常具有32位的分辨率,所以根据该梯度来适配的参数以优选32位的分辨率被保存在存储器(200)中。
在步骤300或可选的步骤310结束了之后,实施步骤320。在步骤320中,给所提供的深度神经网络添加桥接连接。优选地,将该桥接连接添加到深度神经网络,使得该桥接连接开始于靠近深度神经网络的输入层的层处和/或将尽可能多的层桥接。
在步骤320中添加了桥接连接之后,接着是随后的步骤330。在该步骤330中,降低深度神经网络的参数的分辨率。优选地,通过对参数的量化来降低这些参数的分辨率。如果深度神经网络是按照可选的步骤310来进行学习,则这些参数分别具有32位的分辨率。例如,接着可以在步骤330中将分辨率从32位降低到16、8、4或3位。附加地,关于对这些参数的量化,可以降低激活的分辨率,优选地相对于对相应层的参数的量化来降低激活的分辨率。
对这些参数的量化可以借助于线性量化来执行,但是也可以利用非线性量化、例如对数量化来执行。除了所提到的确定性量化之外,也可设想随机量化。
例如,对参数和/或激活的量化可以被执行为使得所有层都具有相同的量化、例如利用8位的量化。替选地,可以有针对性地使这些层的与多个其它层相关联的那些参数更强烈地量化,例如利用5位来量化。
在降低了这些参数的分辨率之后,这些参数可以在步骤330之后以被降低的分辨率来被保存在存储器(200)中。可设想的是:在步骤320之后并且在实施步骤330之前使深度神经网络进行学习。
因此,该方法(30)结束。应注意:步骤310至330可以周期性地多次相继被重复,直至满足可预先给定的中断标准。可选地,在步骤330结束之后可以在使用多个批次(英文batches)的训练数据的情况下使深度神经网络利用例如针对另一批次的新保存的参数来重新进行学习,例如开始于步骤310地重新进行学习。
图5示出了用于使深度神经网络(12)进行学习、尤其是为了实施用于压缩深度神经网络(12)的步骤310而使深度神经网络(12)进行学习的设备(40)的示意图。设备(40)包括训练模块(41)和所要训练的模块(42)。该所要训练的模块(42)包含深度神经网络(12)。用于使深度神经网络(12)学习的设备(40)根据深度神经网络(12)的输出参量并且优选地利用可预先给定的训练数据来使深度神经网络(12)学习。在进行学习期间,使深度神经网络(12)的保存在存储器(200)中的参数适配。

Claims (10)

1.用于压缩深度神经网络(12)的方法,
其中所述深度神经网络(12)包括多个层,所述多个层按照可预先给定的顺序分别在输入侧与所述多个层的所述可预先给定的顺序的紧前面的层连接,并且
其中每个层分配有参数,
所述方法包括如下步骤:
将桥接连接(英文skip connection)(24)添加到所述深度神经网络(12),
其中所述桥接连接(24)将所述多个层中的一层在输入侧附加地与另一层连接,所述另一层是按所述顺序间接地前面的层;并且
降低所述层的参数的分辨率。
2.根据权利要求1所述的方法,其中所述参数被量化,并且其中所述层的参数的分辨率通过减小字宽、尤其是用于表示被量化的参数的位的数目来被降低,
其中与多个层、尤其是前面的层直接在输入侧连接的那个层的参数的分辨率低于与正好一个层直接在输入侧连接的那些层的参数或激活的分辨率。
3.根据上述权利要求之一所述的方法,其中所述桥接连接(24)将可预先给定数目的层桥接,
其中所述可预先给定数目对应于:来自从包括值一在内直至包括所述深度神经网络(12)的层的总数的值减去值一在内的值域中的值、尤其是尽可能大的值。
4.根据上述权利要求之一所述的方法,其中所述桥接连接(24)开始于所述层的所述顺序的多个前面的层中的一层处,尤其是靠近所述深度神经网络的输入端地开始,
其中所述多个前面的层包括开始于所述深度神经网络的输入层处的可预先给定数目的相继连接的层。
5.根据上述权利要求之一所述的方法,其中所述深度神经网络的每个层包括多个神经元,
其中每个层的所有神经元都被划分成多个组,并且所述组中的每个组都在被分配给该组的计算单元上被实施,并且所述计算单元分别实施所述层中的一层的至少一组或者不同层的多个组,并且
其中在运行所述深度神经网络时、尤其是在传播输入参量时,将所述计算单元中的至少一个计算单元停用。
6.根据上述权利要求之一所述的方法,所述方法包括如下其它步骤,所述如下其它步骤或者在添加所述桥接连接的步骤之前和/或在添加所述桥接连接的步骤之后和/或在降低所述分辨率的步骤之后被实施:
提供训练数据,所述训练数据分别包括输入参量和被分配给所述输入参量的输出参量;
使所述深度神经网络进行学习,
其中在进行学习时,所述参数被适配为使得所述深度神经网络(12)分别根据所述训练数据的输入参量来分别确定所述训练数据的所分配的输出参量。
7.根据权利要求5和6所述的方法,其中在进行学习时将可预先给定的计算单元停用。
8.计算机程序,所述计算机程序包括如下指令,在借助于计算机来实施所述指令时,所述指令促使所述计算机来实施根据权利要求1至7之一所述的方法。
9.机器可读存储介质(15),在其上保存有根据权利要求8所述的计算机程序。
10.设备(14),所述设备被设立为实施根据权利要求1至7之一所述的方法。
CN202010877214.2A 2019-08-28 2020-08-27 对深度神经网络的压缩 Pending CN112446467A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019212912.9A DE102019212912A1 (de) 2019-08-28 2019-08-28 Komprimieren eines tiefen neuronalen Netzes
DE102019212912.9 2019-08-28

Publications (1)

Publication Number Publication Date
CN112446467A true CN112446467A (zh) 2021-03-05

Family

ID=71452111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010877214.2A Pending CN112446467A (zh) 2019-08-28 2020-08-27 对深度神经网络的压缩

Country Status (4)

Country Link
US (1) US20210065010A1 (zh)
EP (1) EP3786853A1 (zh)
CN (1) CN112446467A (zh)
DE (1) DE102019212912A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4275351A4 (en) 2021-03-24 2024-04-03 Samsung Electronics Co Ltd METHOD AND DEVICE FOR EXECUTING DEEP NEURAL NETWORK IN IoT EDGE NETWORK
WO2022203400A1 (en) * 2021-03-24 2022-09-29 Samsung Electronics Co., Ltd. Method and device for execution of deep neural network in iot edge network

Also Published As

Publication number Publication date
US20210065010A1 (en) 2021-03-04
DE102019212912A1 (de) 2021-03-04
EP3786853A1 (de) 2021-03-03

Similar Documents

Publication Publication Date Title
CN112446467A (zh) 对深度神经网络的压缩
Schorn et al. Efficient on-line error detection and mitigation for deep neural network accelerators
CN108510063B (zh) 一种应用于卷积神经网络的加速方法和加速器
CN105447498A (zh) 配置有神经网络的客户端设备、系统和服务器系统
US11861467B2 (en) Adaptive quantization for execution of machine learning models
US11908142B2 (en) Method, artificial neural network, device, computer program, and machine-readable memory medium for the semantic segmentation of image data
US20200110961A1 (en) Method, artificial neural netrowk, device, computer-program and machine-readable storage medium for the semantic segmentation of image data
US11301749B2 (en) Method for calculating an output of a neural network
CN110928576A (zh) 一种卷积神经网络的卷积处理方法、装置及存储介质
CN111105030A (zh) 用于车辆感知系统的神经网络中的激活零旁路和权重剪枝
CN113962371B (zh) 一种基于类脑计算平台的图像识别方法及系统
US11790218B2 (en) Machine learning system, as well as a method, a computer program, and a device for creating the machine learning system
US20200401884A1 (en) Batch normalization layer fusion and quantization method for model inference in ai neural network engine
CN114091597A (zh) 基于自适应组样本扰动约束的对抗训练方法、装置及设备
CN114359554A (zh) 一种基于多感受野上下文语义信息的图像语义分割方法
US20210279580A1 (en) Machine learning system and a method, a computer program and a device for creating the machine learning system
US20220067517A1 (en) Artificial neural network
CN113614747A (zh) 用于运行深度神经网络的方法、设备和计算机程序
Zhou et al. Progressive learning of low-precision networks
CN111936942B (zh) 用于控制执行器的方法、计算机系统和计算机程序
US20220327390A1 (en) Method for training a neural network
CN113554179B (zh) 信息处理系统
EP3798915A1 (en) Method and system for automatically improving neural network architecture
KR102662335B1 (ko) 비교 신경망 학습을 이용한 소프트웨어의 오동작 검출시스템 및 소프트웨어의 오동작 검출방법
CN113052301B (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