技术领域
[0001] 本发明涉及一种用于在使用桥接连接的情况下压缩深度神经网络的方法。本发明还涉及分别被设立为实施该方法的一种计算机程序和一种设备。
相关背景技术
[0002] 未在先公开的专利申请DE 10 1218 216 471.1公开了一种机器学习系统,该机器学习系统包括多个层。与一个其它层连接的那些层的参数分别比与多个其它层连接的那些层的参数具有更高的分辨率。
具体实施方式
[0035] 图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)。
[0036] 表格(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)的输入层地使用桥接连接。
[0037] 图2示出了至少部分自主机器人的示意图,该至少部分自主机器人在第一实施例中通过至少部分自主车辆(10)来给出。在另一实施例中,该至少部分自主机器人可以是服务机器人、装配机器人或固定式生产机器人,替选地可以是自主飞行器、如无人驾驶飞机。
[0038] 至少部分自主车辆(10)可包括检测单元(11)。检测单元(11)例如可以是摄像机,该摄像机检测车辆(10)的周围环境。检测单元(11)与深度神经网络(12)、尤其是在实施按照图4的方法之后可得到的深度神经网络(12)连接。深度神经网络(12)根据所提供的输入参量、例如由检测单元(11)所提供的输入参量并且根据深度神经网络(12)的多个参数来确定输出参量。输出参量可以被转发给控制单元(13)。
[0039] 控制单元(13)根据深度神经网络(12)的输出参量来控制执行器,优选地将该执行器控制为使得车辆(10)实施无碰撞的机动动作(Manöver)。在第一实施例中,执行器可以是车辆(10)的马达或制动系统。
[0040] 在另一实施例中,部分自主机器人可以是工具、工厂机器或制造机器人。工件的材料可以借助于机器学习系统(12)来分类。在这种情况下,执行器例如可以是驱动磨削头的马达。
[0041] 车辆(10)、尤其是部分自主机器人还包括计算单元(14)和机器可读存储元件(15)。在存储元件(15)上可以存储计算机程序,该计算机程序包括如下指令,在计算单元(14)上实施所述指令时,所述指令导致:借助于计算单元(14)来运行深度神经网络(12)。
[0042] 在另一实施例中,深度神经网络(12)可以集成在传感器中或集成在检测单元(11)中,以便借助于深度神经网络(12)来处理所检测到的传感器值。借助于深度神经网络(12)来处理的传感器值优选地是被压缩或已经被分析的传感器值,使得这些传感器值接着可以高效地被传输给例如控制单元(13)。优选地,在这种情况下,至少参数存储在传感器的芯片上或者深度神经网络以硬件形式集成在该芯片上。
[0043] 图3示出了图2中的深度神经网络(12)的示意图,该深度神经网络在该实施方式中通过具有四个层的深度神经网络来给出。在其它实施方式中,深度神经网络(12)可以通过卷积神经网络(英文Convolutional Neural Network)来给出。
[0044] 深度神经网络(12)包括多个层,所述多个层分别借助于连接(23)来彼此连接并且所述多个层分别包括多个神经元(22)。深度神经网络(12)还具有桥接连接(24)。图3中的桥接连接(24)具有如下效果:深度神经网络(12)的第一层的输出参量直接被转发给第三层并且这里作为输入参量被提供。因此,第二层被桥接。应注意:桥接连接(24)也可以朝着相反的方向被设计。例如,第三层的输出参量可以借助于反复发生的桥接连接作为输入参量被输送给先前的层。
[0045] 深度神经网络(12)根据深度神经网络(12)的输入参量(21)来逐层地确定输出参量(25)。为此,每个层都根据被提供给该层的输入参量并且根据该层的参数来确定输出参量。于是,输出参量通过连接(23)被转发给其它层。
[0046] 在该实施例中,相应的层的参数可以示例性地分别具有至少第一参量和/或第二参量以及第三参量。这些层可以分别借助于第一参量来对输入参量进行加权和/或借助于第二参量来对输入参量进行过滤。这些层可以针对被加权/被过滤的输入参量来将第三参量加到被加权/被过滤的输入参量。可选地,该经处理的输入参量根据参数借助于激活函数(例如ReLu)来被进一步处理。
[0047] 深度神经网络(12)的参数、尤其是这些层的参数可以保存在存储器(200)中。
[0048] 图4示出了用于压缩所提供的深度神经网络的方法(30)的示意图。
[0049] 该方法开始于步骤300。在该步骤中,提供深度神经网络。深度神经网络可以是仅仅前馈神经网络,该前馈神经网络不包含桥接连接。替选地,所提供的深度神经网络也可以是包含至少一个桥接连接的前馈神经网络。所提供的深度神经网络可以是已经(预先)训练的深度神经网络或者新初始化的深度神经网络。深度神经网络的层的参数可具有高分辨率、例如32位。
[0050] 可选地,在步骤300之后可以实施随后的步骤310。在该步骤310中,将训练数据提供给深度神经网络、尤其是新初始化的深度神经网络。所述训练数据优选地包括训练输入参量和分别被分配的训练输出参量(英文label(标签))。训练输入参量例如可以是摄像机的图像,并且训练输出参量例如可以是对摄像机图像的分类或分割。附加地或替选地,所述训练数据可包括多个被加标签的声音序列、文本片段、雷达信号、激光雷达信号或者超声信号。于是,在步骤310中,基于所提供的训练数据来使深度神经网络进行学习。在使深度神经网络进行学习时,相应的层的参数被适配为使得深度神经网络根据所提供的训练输入参量来确定分别被分配的输出参量。
[0051] 优选地,根据成本函数来执行该学习,该成本函数例如表征所确定的输出参量与训练输出参量之差。该成本函数可以借助于梯度下降法关于这些参数来被优化。在梯度下降法的情况下,该成本函数迭代地被优化,其中通常使用具有32位的分辨率的梯度。这些参数可以根据梯度被适配,由此该成本函数被改变,使得该成本函数理想地被最小化或最大化。因为梯度通常具有32位的分辨率,所以根据该梯度来适配的参数以优选32位的分辨率被保存在存储器(200)中。
[0052] 在步骤300或可选的步骤310结束了之后,实施步骤320。在步骤320中,给所提供的深度神经网络添加桥接连接。优选地,将该桥接连接添加到深度神经网络,使得该桥接连接开始于靠近深度神经网络的输入层的层处和/或将尽可能多的层桥接。
[0053] 在步骤320中添加了桥接连接之后,接着是随后的步骤330。在该步骤330中,降低深度神经网络的参数的分辨率。优选地,通过对参数的量化来降低这些参数的分辨率。如果深度神经网络是按照可选的步骤310来进行学习,则这些参数分别具有32位的分辨率。例如,接着可以在步骤330中将分辨率从32位降低到16、8、4或3位。附加地,关于对这些参数的量化,可以降低激活的分辨率,优选地相对于对相应层的参数的量化来降低激活的分辨率。
[0054] 对这些参数的量化可以借助于线性量化来执行,但是也可以利用非线性量化、例如对数量化来执行。除了所提到的确定性量化之外,也可设想随机量化。
[0055] 例如,对参数和/或激活的量化可以被执行为使得所有层都具有相同的量化、例如利用8位的量化。替选地,可以有针对性地使这些层的与多个其它层相关联的那些参数更强烈地量化,例如利用5位来量化。
[0056] 在降低了这些参数的分辨率之后,这些参数可以在步骤330之后以被降低的分辨率来被保存在存储器(200)中。可设想的是:在步骤320之后并且在实施步骤330之前使深度神经网络进行学习。
[0057] 因此,该方法(30)结束。应注意:步骤310至330可以周期性地多次相继被重复,直至满足可预先给定的中断标准。可选地,在步骤330结束之后可以在使用多个批次(英文batches)的训练数据的情况下使深度神经网络利用例如针对另一批次的新保存的参数来重新进行学习,例如开始于步骤310地重新进行学习。
[0058] 图5示出了用于使深度神经网络(12)进行学习、尤其是为了实施用于压缩深度神经网络(12)的步骤310而使深度神经网络(12)进行学习的设备(40)的示意图。设备(40)包括训练模块(41)和所要训练的模块(42)。该所要训练的模块(42)包含深度神经网络(12)。用于使深度神经网络(12)学习的设备(40)根据深度神经网络(12)的输出参量并且优选地利用可预先给定的训练数据来使深度神经网络(12)学习。在进行学习期间,使深度神经网络(12)的保存在存储器(200)中的参数适配。