一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于修正神经网络中的有错误的神经元函数的方法和设备与流程

2021-12-17 21:07:00 来源:中国专利 TAG:


1.本发明涉及神经网络,并且尤其是涉及用于检查和修正神经网络中的神经元的功能的措施。


背景技术:

2.显而易见地,采用机器学习方法,以便应对在不同领域中的复杂任务提出。尤其是,有学习能力的系统适合于如例如图像分类、对象识别、语音处理以及其他等等之类的任务提出。通过将高度并行的计算单元设置在单个部件上的可能性,可以实施具有高并行性的深度神经网络。
3.尤其是在高度集成地实施深度神经网络的情况下,涉及一个或者多个单个神经元的硬件错误变得更有可能。因而,必要性原则上是识别功能错误。
4.针对错误识别,并且必要时针对错误校正,必需一种形式的冗余。在一般情况下,如何充分利用冗余以便识别出错误和必要时修正错误的方式和方法是问题特定的(problemspezifisch)。不同冗余形式的组合也经常被应用于整个系统的多个层面。冗余原则上可以包括空间冗余(结构的倍增)、时间冗余(时间上错移地进行的检查)和编码(呈相同信息内容的多重信息形式的冗余)。
5.也可以在深度神经网络的领域中采用传统的用于设置冗余的方案。这例如包含对神经网络的部分的复制诸如此类。可是,可以查明,针对深度神经网络只能不令人满意地可采用已知方案中的许多方案。尤其是,针对深度神经网络设置冗余的传统方案介入深度神经网络的架构,或改变深度神经网络的训练方法,或者需要专用硬件或者修改在标准部件中未设置的硬件。


技术实现要素:

6.根据本发明,设置了根据权利要求1所述的一种用于修正神经网络的神经元函数的方法,以及设置了根据并列权利要求所述的一种神经网络。
7.其他构建方案在从属权利要求中予以说明。
8.根据第一方面,设置了一种用于计算具有多个神经元的神经网络的输出值的方法,所述方法具有下列步骤:
‑ꢀ
检查神经元组的一个或者多个神经元的神经元函数;
‑ꢀ
在查明神经元组中的错误时,确定该错误的致命性;
‑ꢀ
根据所查明的错误的致命性,修正神经元组的一个或者多个神经元中的至少一个神经元的神经元输出值。
9.从现有技术中已知的校验和方法设置了,通过校验和比较,测定有错误的神经元计算。这样,可以相对应地借助比较计算来修正神经元组的被辨识出的有错误的神经元。对此,在一般情况下,计算神经元组的多个神经元的神经元输出的和,并且将该和与校验和进行比较。如果这两个值的差不等于零,则存在错误。在此,可以从如下神经元输入值的和中
测定校验和:所述神经元输入值利用加权因子来加权,所述加权因子分别从神经元组的属于输入值的权重的和中得出。在存在偏置值的情况下,附加地必须将神经元组的偏置值的和添加到校验和。
10.对神经元中的错误的定位在最简单情况下仅限于多个神经元的神经元组,所述神经元组是所有神经元的子集。但是通过多重校验和计算,可以实现更精确的定位,直至定位各个有错误的神经元。然而,更精确的定位随着校验和的开销更高的计算而出现,使得神经网络的推断的时间必要时上升。
11.针对识别出的计算错误,可以设置如下校正:所述校正以合适的方式替代有错误的神经元输出值。
12.视校验和方法的实施和在神经网络的推断期间出现的和识别出的计算错误的数目而定,在以前所描述的方法中的校正计算可能明显地延迟神经网络的最终输出。这例如可能原因在于,校验和方法的实施使大数目的计算步骤或存储访问对于错误校正是必要的。尤其是当可能对神经网络中的一个或多个错误没有精确定位时,这是这种情况。再者,在有较大数目的同时或相继出现的错误的情况下,必需许多或者多重校正计算。
13.可是,在神经网络之内的可能的错误情况中的许多错误情况中,如果涉及非致命错误,则错误校正是多余的。不改变或者只非显著地改变最终输出值的错误被称为非致命错误。例如,在将神经网络用于处理嵌入式系统中的传感器信号时,对于给定的输入信号而言,大多仅仅神经网络的最终输出是有意义的,其可能强烈地或者微弱地与神经元计算的结果有关。
14.针对传感器数据中的模式识别的典型神经网络(尤其是也为深度神经网络)的固有错误复原能力也导致,计算路径的可能的错误内容中的许多错误内容是非致命的。一方面,通过激活函数或者池化函数,可以阻止错误传播到神经网络的较深层中;另一方面,通过由神经网络的各个层中的多个神经元进行并行信息处理,给予一定的信息冗余。尤其是在神经元的数目非常高的层中,单个神经元的神经元函数的失效几乎不起决定作用。
15.上述方法因而设置了,根据错误的致命性,实施神经元计算的错误的校正。尤其是,在致命性高的情况下,可以执行准确的错误校正,所述准确的错误校正要求高的计算开销;而在致命性低的情况下,可以执行近似的错误校正,所述近似的错误校正可以利用较低的计算开销来实现。经此,可以改进错误校正的效率和功能安全性,因为可以节约用于执行错误校正的许多校正计算和相对应的延迟时间。尤其是在关键的实时应用中,通过神经网络推断的被减小的延迟可能有助于改进功能上的安全性。
16.此外,通过如下方式可以在错误评估(fehlerbewertung)中识别出错误的致命性:借助校验和比较,确定错误;其中借助错误评估函数,在神经元输出值的和与校验和之间的校验和偏差被分配给错误的致命性。
17.尤其是,如果校验和偏差大于预先给定的阈值,则错误可以被评估为致命的。
18.此外,可以针对一层神经元的所有神经元组各个单独地或者同样地规定预先给定的阈值,或者可以针对所有神经元组同样地规定预先给定的阈值。
19.可以设置的是,通过如下方式在错误评估中识别出错误的致命性:借助校验和比较,确定错误;其中借助错误评估函数,根据在神经元输出值的和与校验和之间的校验和偏差,确定所查明的错误的致命性,其中尤其是当神经元输出值小于校验和偏差时,该错误被
识别为非致命的。
20.替选地或者附加地,在错误评估中,根据神经网络的一层或者一区域的所找到的错误的数目,可以确定错误的致命性。
21.替选地或者附加地,在错误评估中,根据被检查的神经元组的位置,可以确定错误的致命性,在所述被检查的神经元组中,查明错误。
22.替选地或者附加地,借助基于数据的可训练的错误相关性模型(fehlerrelevanzmodell),可以确定错误的致命性,对所述错误相关性模型进行训练,以便根据(尤其是针对神经元的不同的神经元组的)错误表现(fehlerauspraegungen)、校验和偏差和/或被检查的神经元组在神经网络之内的位置来说明错误的致命性,在所述位置中,出现了有错误的计算。
23.此外,在查明致命错误的情况下,可以执行如下错误校正:在所述错误校正的情况下,通过错误校正值替代被检查的神经元组的神经元的神经元输出值。尤其是,在查明非致命错误的情况下,可以执行被简化的错误校正,其中通过近似的、更容易计算的错误校正值替代被检查的神经元组的神经元的神经元输出值。
24.尤其是,在查明非致命错误的情况下,可以执行如下错误校正:在所述错误校正的情况下,已查明错误的被检查的神经元组的神经元的神经元输出值被设到零,或者根据属于一个神经元组的查明没有错误的相邻神经元的神经元输出值,尤其是通过内插,确定所述神经元输出值。
25.此外,在查明非致命错误的情况下,可以执行如下错误校正:在所述错误校正的情况下,借助可训练的基于数据的错误校正模型,预测识别为有错误的神经元组的神经元的错误校正值,或者预测一个或者多个确定为有错误的神经元的错误校正值,对所述错误校正模型进行训练,以便根据相邻神经元的神经元输出值来提供合适的错误校正值。
26.可以设置的是,在查明非致命错误的情况下,不执行错误校正。
27.根据其他方面,设置了一种用于计算多个神经元的神经网络的输出值的设备,其中所述设备构造为,以便实施下列步骤:
‑ꢀ
检查神经元组的一个或者多个神经元的神经元函数;
‑ꢀ
在查明神经元组中的错误时,确定该错误的致命性;
‑ꢀ
根据所查明的错误的致命性,修正神经元组的一个或者多个神经元中的至少一个神经元的神经元输出值。
附图说明
28.随后,依据附上的附图,更详细地阐述了本发明的实施形式。在附图中:图1示出了神经元的示意图;图2示出了用于阐明控制神经元的功能性的功能图的示意图;和图3示出了用于阐明用于对神经网络中的神经元函数进行选择性错误校正的方法的流程图。
具体实施方式
29.神经网络的核心过程在于神经元函数。在图1中,示意性地示出了用于建立神经网
络的神经元1。神经元1实施神经元函数,所述神经元函数包括将用权重来加权的输入值x
i
的和与偏置值b
n
相加,以便生成神经元输出值:z对应于神经元输入的数目。加载有偏置值b
n
必要时可以是可选的。权重和偏置值b
n
是神经元函数的参数。
30.神经元输出值必要时被加载有激活函数,以便获得神经元输出。激活函数在硬件实施方案中分开地被处理,并且在这方面不进一步被观察。
31.因此,通过一数目的分配给神经元1和相应的神经元输入的权重值和所分配的偏置值来定义每个神经元1。在一般情况下,通过多个乘法累加元件(mac,multiply

accumulate

elementen),以经过集成的方式来实施具有这样的神经元函数的神经元。
32.为了检查神经元的功能能力,在下文描述了如下实施形式:所述实施形式使用数学结合律,据此所观察的神经元的神经元输出值的和对应于每个神经元输入与分配给该神经元的权重的和的乘积的和加上偏置值的和。适用:其中m>1、即要检查的神经元的数目。该方程的右侧部分可以通过控制神经元2来实现。
33.在图2中,示意性地描绘了用于针对一个神经元组的两个要检查的神经元1实现这种控制神经元2的功能图。在此,两个神经元输入x1、x2分别被输送给要检查的神经元1,在那里与分别所分配的权重w
1,1
、w
1,2
、w
2,1
、w
2,2
相乘,并且相加地加载有偏置值b1、b2。相应的神经元输出值o1、o2被输送给求和元件3,以便获得第一比较值o
n

34.此外,给控制神经元2输送分配给相应的神经元输入的权重的和、,相应的神经元输入x1、x2加载有所述分配给相应的神经元输入的权重的和,所述分配给相应的神经元输入的权重的和在第二求和元件4中被计算并且作为控制神经元权重w
c,1
、w
c,2
。替选地,因为所述权重在训练之后定下来,所以可以事先计算权重的和,并且相对应地从合适的存储器中提供所述权重的和。
35.此外,给控制神经元2输送分配给相应的神经元输入的偏置值b1、b2的和,相应的神经元输入x1、x2加载有所述分配给相应的神经元输入的偏置值b1、b2的和,所述分配给相应的神经元输入的偏置值b1、b2的和在第三求和元件5中被计算并且作为控制神经元偏置值b
c
。替选地,因为所述偏置值 b1、b2在训练之后定下来,所以可以事先计算权重的和并且相对应地从合适的存储器中提供所述权重的和。
36.在控制神经元2中,计算控制权重w
c,1
、w
c,2
与分别分配的神经元输入构成的乘积的和,并且相加地加载有控制神经元偏置值b
c
,以便获得第二比较值o
c

37.在比较块6中,输送第一比较值o
n
和第二比较值o
c
,以便获得比较结果v。在比较值
同样的情况下,查明没有错误;而在比较结果v不相等时,查明错误。以这种方式,可以找到神经元输出值的计算的错误,其中错误原因可能存在于神经元的计算硬件中,或者可能存在于用于存储神经元参数(如权重和偏置值)的存储器中。以这种方式,可以使用控制神经元2,以便识别出神经元1的计算中的一个计算的错误。
38.结合图3,更详细地阐述了用于阐明选择性错误校正的方法。该方法可以通过实施为软件或者实施为硬件的算法来提供,并且可以在控制单元中被实施。
39.在步骤s1中,根据如结合图2已描述的行为方式,执行错误探测方法、如例如校验和比较。错误探测方法识别出多个神经元的神经元组中的神经元的一个或者多个神经元输出值的计算中的错误。
40.在步骤s2中检查,是否已识别出错误。如果情况如此(替选地:是),则该方法以步骤s3继续;要不然(替选地:否),该方法以步骤s1继续。如果在神经元输出值与要期望的神经元输出值之间存在偏差,则识别出错误。例如,利用上面所描述的校验和比较的方法来执行功能检查,其中神经元组的神经元的神经元输出值的和与校验和进行比较。从所有神经元输入值的和中,得出校验和,所述神经元输入值用所述神经元输入值的每个神经元输入值的所有所分配的输入权重来加权。
41.在步骤s3中,实施错误评估。错误评估依据不同的标准来评估错误的致命性。
42.在步骤s4中,那么检查致命性,并且如果错误是致命的(替选地:是),则该方法以步骤s5继续;要不然(替选地:否),该方法以步骤s6继续。
43.这样,借助基于阈值的方法,可以评价校验和偏差δ。校验和偏差δ对应于o
n - o
c
。在此假设的是,在由相应的校验和监控的神经元组中,仅单个神经元是有错误的,并且给予比较值o
c
的有错误的计算。那么,δ对应于有错误的神经元输出值o
n
与对的、也就是说第二比较值o
c
的偏差。
44.已通过实验表明,在典型的神经网络中的神经元函数的结果的高的正偏差、也就是说有错误的神经元输出值比正确的神经元输出值高得多,在修正线性单元(relu,rectified linear unit)激活函数的情况下,所述高的正偏差比小的或者负的偏差更致命。由此,得出基于阈值的错误评估函数其中错误的致命性例如对于致命错误可以被假设为1,而对于非致命错误可以被假设为0。
45.分别各个单独地针对每个神经元组,可以规定针对要检查的神经元的所选出的神经元组的阈值θ。可是,也分别对于神经网络的每层,可以规定统一的阈值。例如借助错误注入或者通过观察神经元函数的标准偏差,针对神经网络的给定的输入数据集合,可以确定合适的阈值θ。
46.在错误注入时,一层的神经元输出值人为地(例如通过仿真)被加载有错误。在此,在对该层的随机选择的神经元的多次迭代中,分别将带有数额“e”的错误加到神经元输出值上。错误数额“e”经过迭代变化,并且针对每个所选择的错误数额,针对合适的一组实例数据来确定神经网络的最后的层中的输出值的平均变化率,所述实例数据被施加到神经网
络的输入层上。
47.在分类网络中,例如具有不同预测的对象类的数据与无错误的情况相比的比率可以被定义为变化率。规定最大可容忍的变化率。紧接着,可以从实验的集合中确定最大错误数额“e_max”,针对所述最大错误数额,不曾超过可容忍的变化率的边界,并且阈值被设为等于“e_max”。
48.在观察标准偏差的情况下:多个合适的实例数据(训练数据记录)被施加到神经网络的输入上,并且针对训练数据记录的每个训练数据记录,计算通过网络的前向传播。因此,针对每个数据,获得相对应的神经元输出值。如果针对实例数据集合观察一层的神经元输出值,则从这些神经元输出值中,利用通用的统计方法可以计算经验标准偏差。该经验标准偏差例如可以利用合适的因子来加权,以便针对所述层规定统一的阈值:在基于符号的方法中,如果要检验的神经元组的神经元函数的结果不仅在有偏差的情况下而且在没有偏差的情况下都是负的,则神经元函数的错误被认为是非致命的,因为该错误接着通过通常使用的relu激活函数来遮掩。因而,作为错误评估函数可以使用:其中o
n
对应于神经元函数的在应用激活函数之前的有错误的值。因此,借助上述的错误评估函数,可以测定错误的致命性。该方法计算不大密集,因为这两个比较和逻辑“与”运算可以利用小开销来计算。
49.在基于计数器的方法中,所找到的错误的数目被考虑作为用于评估错误的致命性的判定标准。这基于如下假设:神经网络的输出由于中间层的神经元中的错误而改变的概率随着错误的数目而上升。为此,针对当前计算,可以对神经网络的每层的错误进行计数。如果神经网络的一层中的错误的数目在规定的值之上,则该错误被认为是致命的,要不然被认为是非致命的。例如按百分比计算可以相对于神经网络的相应的层的神经元的数目来规定阈值。如果通过功能测试测试了针对神经网络的一层的多个神经元组,则所找到的有错误的神经元组的数目可以被假设为关于错误的致命性的说明。如果错误的数目超过预先给定的阈数目,则可以假设存在致命错误。
50.用于应用该方法的其他可能性可以在视频摄像机的顺序的输入数据(如例如图像序列)的情况下得出。此后,有错误的计算在时间窗之内的数目可以被用作判定标准。如果例如针对当前视频帧已识别出错误并且在一数目的在前的视频帧之内的至少一个其他错误已包含错误,那么当前错误可以被识别为致命的。
51.在替选的基于位置的评估方法中,依据错误在神经网络之内的位置,可以判定相应的错误是致命的还是非致命的。对此,神经网络的神经元被划分成多个区域,对于所述区域说明,其中出现的错误是致命的还是非致命的,或说明所述区域的关键性。针对神经元组中的神经元计算在非关键区域中查明的错误因而被归入为非致命的,而针对神经元组中的神经元计算在关键区域中查明的错误被归入为致命的。通过如下方式事先规定这些区域:首先针对每个区域,确定错误对神经网络的输出的期望的影响。神经元的如下神经元组被定义为非致命的:在所述神经元组中,错误对输出值的平均影响低于所规定的阈值;反之亦然。
52.通过错误注入实验,或者通过分析神经元相关性评估方法,可以预测错误对网络的输出的影响。分析的结果例如可以是,具有许多神经元的神经元层中的错误是非致命的,而在具有少量神经元的层中的神经元中的错误是致命的。那么,如果在神经网络运行中出现错误,则首先测定,该错误是否在神经网络的关键区域中。如果情况如此,则该错误被评估为致命的,在其他情况下则被评估为非致命的。
53.借助机器学习方法,利用基于数据的可训练的错误相关性模型,可以计算(尤其是针对神经元的不同神经元组的)相对应的错误表现、校验和偏差和被检验的神经元组在神经网络之内的定位、错误的致命性,在所述被检验的神经元组中,出现了有错误的计算。必要时,通过到错误相关性模型中的其他输入(例如神经元的神经元组的神经元的神经元输出值),可以改进预测。借助在要检查的神经网络的计算中的所仿真的错误,在代表性数据记录上进行错误相关性模型的训练。在此,针对每个所仿真的错误测定,该错误是致命的还是非致命的。该信息接着用于将输出值预给定为用于训练错误相关性模型的训练数据。错误相关性模型可以呈高斯过程模型、深度神经网络诸如此类的形式来构造。
54.上面所描述的用于进行错误评估的方法可以单个地或者以任意组合共同地被应用。也就是说,可以并行地实施错误评估方法,并且在预先给定数目的认为是致命的错误的情况下,可以执行相对应的错误校正。
55.如果错误被识别为致命的,也就是说错误的致命性超过预先给定的致命性阈值,则在步骤s5中执行错误校正。在错误校正的情况下,通过经过修正的值来替代有错误的神经元输出值。
56.在步骤s6中,利用无错误的、有错误的和/或经过修正的神经元输出值,进一步计算神经网络的神经元输出值。
57.因此,可以设置的是,在查明神经元组中的错误的情况下,被检查的神经元组的神经元未受人注意,也就是说该神经元组的所有神经元的神经元输出值都被设到零。如果在神经元的神经元组中查明有错误,则因此禁用所有包含于其中的神经元。在此,出发点是,相对于关断各个神经元,神经网络通常具有高的稳健性。
58.其他可能性在于,通过观察分别相邻的神经元输出值,修正针对神经元的神经元组中的有错误的神经元的经过修正的神经元输出值。该可能性尤其是在基于卷积的神经网络中是有意义的,因为这里相邻神经元的值沿着实施卷积运算的轴线具有一定的相互关系。
59.在非致命错误的情况下,为了校正可以例如分别采纳确定的相邻神经元的值,或者可以从多个相邻神经元中计算内插。为了处理致命错误,例如通过完全重新计算有错误的神经元组的所有神经元输出值,或者通过计算一个或者多个用于按照“容斥原理”来测定准确的校正值的其他校验和,测定准确的校正值。而用于处理非致命错误的用于测定近似校正值的内插方法明显开销较少。
60.再者,借助可训练的基于数据的错误校正模型,可以预测检验为有错误的神经元组的神经元的错误校正值,或者可以预测一个或者多个确定为有错误的神经元的错误校正值。错误校正模型例如可以构造为如下高斯过程模型或者其他神经网络:所述高斯过程模型或者其他神经网络为神经元的被检查的神经元组的神经元提供校正值。通过错误仿真在被监控的神经网络中进行错误校正模型的训练,其中针对每个所仿真的错误测定实际的校
正值,并且所述实际的校正值被用作针对所述一个或多个有错误的神经元的经过修正的神经元输出值。
61.特别的组合是具有对非致命错误的不修正的基于位置的错误评估方法。由于关键的和非关键的区域分别在校验和的计算之前定下来,所以在该情况下可以忽略针对神经网络的非关键区域的错误检验。例如,在计算神经网络的非关键层期间,可以禁用针对校验和计算的计算单元,以便节约能量和计算时间。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献