CN112541568A - 用于运行人工神经网络的方法、设备和计算机程序 - Google Patents
用于运行人工神经网络的方法、设备和计算机程序 Download PDFInfo
- Publication number
- CN112541568A CN112541568A CN202011001002.4A CN202011001002A CN112541568A CN 112541568 A CN112541568 A CN 112541568A CN 202011001002 A CN202011001002 A CN 202011001002A CN 112541568 A CN112541568 A CN 112541568A
- Authority
- CN
- China
- Prior art keywords
- neural network
- artificial neural
- memory
- layer
- input variables
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004590 computer program Methods 0.000 title claims abstract description 13
- 230000015654 memory Effects 0.000 claims abstract description 190
- 238000003860 storage Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 description 10
- 230000006978 adaptation Effects 0.000 description 7
- 230000000644 propagated effect Effects 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 4
- 230000001902 propagating effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 240000002627 Cordeauxia edulis Species 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种用于运行人工神经网络的方法(20)。该方法包括以下步骤:根据所述人工神经网络的层的序列对提供的输入变量进行逐步处理,其中交替地从数据存储器的至少两个存储模块之一中读取层的输入变量,并将所述层的直接跟随的层的所确定的输入变量存放在另一个存储模块中。随后基于局部学习规则适配至少一个参数。本发明还涉及用于执行该方法(20)的一种计算机程序和一种设备以及一种存储有所述计算机程序的机器可读的存储元件。
Description
技术领域
本发明涉及一种使用局部学习规则来运行人工神经网络的方法。本发明还涉及一种设备和一种计算机程序,它们分别被设计为执行所述方法。
背景技术
完全并行地执行人工神经网络的各个层是已知的,如作者Fischer,V.,Köhler,J.和Pfeil,T.在公开物“The streaming rollout of deep networks-towards fullymodel-parallel execution”,Advances in Neural Information Processing Systems(4043-4054页),https://arxiv.org/pdf/1806.04965.pdf中所示以及在DE 20 2018 104373 U1中所示。
未在先公开的文献DE 10 2019 214 010公开了一种数据存储器,该数据存储器具有两个存储模块,所述两个存储模块彼此连接,使得交替地在所述两个存储模块中读出并存储人工神经网络的中间变量。
本发明的优点
人工神经网络的学习是耗费且昂贵的,因为一方面需要经过标记的数据,并且另一方面必须进行耗费的计算,以便确定近似最佳的参数化。因此,只能以足够多的计算功率进行所述学习。这导致所述参数化在所述人工神经网络的运行期间是固定的并且后续不改变。
但是,期望能够后续重新调整所述参数化,以便能够例如对新状况做出反应。
所提出的方法有利地利用所述人工神经网络的参数化的局部学习规则来执行“微调”。由此可以后续针对特殊应用或针对用户专门调整所述人工神经网络。甚至可以在所述人工神经网络的运行期间执行所述“微调”。
发明内容
在第一方面,提出了一种根据独立权利要求1的用于运行人工神经网络、特别是用于后续适配所述人工神经网络的参数的方法,特别是计算机实现的或纯硬件实现的方法。
所述人工神经网络具有层的序列,向每个层分配至少一个参数。所述参数可以是权重或过滤器。所述方法包括以下步骤:根据所述人工神经网络的层的序列或根据所述人工神经网络的层的计算序列,逐步处理所述人工神经网络的提供的输入变量。逐步处理可以理解为通过所述人工神经网络来传播所述输入变量。在逐步处理的情况下,从数据存储器的至少两个存储模块之一中读取层的输入变量,然后依据分配给根据所述序列相应直接跟随的层的参数以及依据所读取的输入变量之一来确定相应层的输入变量并且随后将其存放在另一个存储模块中。读取和存放交替地在所述两个存储模块之间进行。交替可以理解为在所述存储模块中交替地读取并存放输入变量。也就是说,在每个计算步骤之后,在所述存储模块的一个存储模块中存在当前确定的输入变量,而在另一个存储模块中存在先前确定的输入变量。也就是说,从第一存储模块读取,然后存储在第二存储模块中,然后从所述第二存储模块读取,然后存储在所述第一存储模块中。随后至少取决于存放在所述存储模块之一中的可预定层的输入变量和存放在所述另一个存储模块中的用于所述可预定层的直接跟随连接的层的输入变量,基于局部学习规则来适配所述可预定层的至少一个参数。
这些层的输入变量可以是人工神经网络的中间变量,特别是中间结果。应当注意,可以基于所述局部学习规则,依据最后一层的输入变量并且依据所述人工神经网络的输出变量,或者依据最后一层的确定的输出变量,来适配该最后一层的至少一个参数。所述人工神经网络的输出变量可以存放在存储模块之一中或其他存储器中。所述人工神经网络的输入变量是层的序列中第一层的输入变量。
应当注意,所述数据存储器也可以具有多于两个的存储模块,其中层的所确定的输入变量分别交替地存放在存储模块之一中。此处的优点在于,可以根据多个先前确定的输入变量来适配所述参数,所述先前确定的输入变量分别存放在存储模块之一中,也就是可以回望过去。这些存储模块可以分别针对每一层具有一个存储区域,在所述存储区域中存放该层的输入变量。
应当注意,在通过所述人工神经网络传播所述输入变量时可以一次性执行适配所述参数的步骤。替代地,在传播所述输入变量时可以多次,优选针对不同的参数执行所述适配的步骤。
在所述适配之后,可以依据所适配的参数重新确定所述可预定层的下一层的输入变量,然后可将所述下一层的所述输入变量存放在另一个存储模块中。
可以在存放了所述输出变量之后或在依据所提供的输入变量确定了所述人工神经网络的输出变量之后,在逐步处理时的处理步骤之一之间执行所述适配的步骤。也就是说,在所述适配的步骤之后可以继续所述传播,或者可以通过所述人工神经网络传播新的输入变量。
局部学习规则可以理解为在适配参数时仅使用层的局部输入变量。所述局部输入变量可以是用于使用所述参数处理的输入变量和依据所述参数确定的输入变量。所述局部输入变量优选仅是人工神经网络的在所述人工神经网络中直接彼此连接、特别是根据层的序列直接跟随和/或直接相隔一个计算时间步长的的那些层的输入变量。还可以想到的是,所述局部输入变量是所述人工神经网络的彼此间接相邻(即例如相隔两层或更多层)的那些层的输入变量。所述局部学习规则优选地独立于所述参数的当前值。局部学习规则也可以视为一种启发式方法,根据该启发式方法可以对所述参数进行适配,以便获得对于合适适配的估计。
所述方法的优点在于,由于所述局部学习规则,即使在移动终端上和甚至在所述人工神经网络运行期间也可以对所述参数进行后续的适配。在所述数据存储器的两个存储模块中交替读取和写入输入变量的优点是,对于所述局部学习规则,当前确定的输入变量和先前确定的输入变量始终在存储器中可用。此外,交替读取和存储是有利的,因为在这里特别好地利用了所述存储器,并且因为这使得各层能够任意表现地并行地运行。
所述人工神经网络优选地是已经学习或先前学习的人工神经网络,也就是说,在所提出的方法开始之前已经通过多个学习步骤适配了参数。可以通过优化成本函数(英语:loss function,损失函数),优选通过借助于梯度下降法进行优化来预先学习/学习所述人工神经网络的参数。可以将经过预先学习的人工神经网络理解为所述优化未完全执行并且在中间被中断,即未实现所述成本函数的最优值。该措施的优点在于,由此可以更快地基于所述局部学习规则设置特定于用户或特定于应用的参数化。也就是说,在将所述人工神经网络交付给用户时,例如不必对所述人工神经网络的参数进行特定于应用/特定于国家和/或特定于用户的适配,因为这些适配可以在运行所述人工神经网络时基于所述局部学习规则进行。
提出:如下文中所提出的那样构造所述数据存储器。所述数据存储器包括两个存储模块,每个存储模块具有多个存储区域。提出:将所述两个存储模块的存储区域分别按照由所述人工神经网络执行的计算的可预给定序列来布置。所述两个存储模块的存储区域可以分别与另一个存储模块的按序列直接跟随的至少一个存储区域互连。因此,第一存储模块的存储区域分别与第二存储模块的按序列直接跟随的至少一个存储区域互连,而第二存储模块的存储区域分别与第一存储模块的按照序列直接跟随的至少一个存储区域互连。
可以说,所述第一存储模块的存储区域在第一存储模块的存储区域的序列中以其位置与第二存储模块的以下存储区域互连,所述存储区域在第二存储模块的存储区域的序列中具有直接跟随所述位置的位置。相同情况适用于第二存储模块的存储区域。应当注意,由此在存储模块之间形成了存储区域的“交叉”互连。
这些存储区域的可预定序列可以对应于所述人工神经网络的层的序列。
这些存储区域可以彼此互连成,使得可以将存储模块之一的存储区域之一的存放的输入变量存放在另一个存储模块的按照所述序列后面的至少一个存储区域中。也就是说,所述第一存储模块的存储区域可以与所述第二存储模块的存储区域互连,使得从第一存储模块的至少一个存储区域加载存放的输入变量,并且随后可以将其存放在第二存储模块的按照序列后面的存储区域中。相同情况也适用于第二存储模块的存储区域。因此可以说,第一存储模块的所述存储区域没有按照序列与第一存储模块的所述存储区域后续的存储区域互连,并且因此在第一存储模块的所述存储区域内不能传输数据。相同情况也适用于第二存储模块的存储区域。也就是说,这些存储区域与另一个存储模块的存储区域相互连接,使得输入变量从第一存储模块交替加载、处理并随后写入第二存储模块。
所述数据存储器的优点在于,通过这种类型的存储区域的互连,特别是通过存储区域的“交叉”互连,所述输入变量在两个存储模块中交替地读取和存储。因此,所述数据存储器允许使用流控制模式(英语:stream rollout,流推出)来特别有效地执行所述人工神经网络。
优选地,所述两个存储模块是相同的。
这些存储模块优选是至少一个计算单元(例如CPU/GPU)的寄存器或缓冲存储器(英语,Cache,高速缓冲存储器)和/或是工作存储器(RAM)。替代地,所述存储模块可以是大容量存储器,如硬盘。
所述两个存储模块,特别是存储区域,优选地彼此对称地布置。这种特殊结构的优点是通过较短的数据路径获得更好的整体性能。因此,在使用所提出的数据存储器执行所述人工神经网络的计算时实现了高吞吐量(英语:throughput)和短延迟(英语:latency),因为所述输入变量可以特别快速地交替加载和存储。
还提出给每个存储区域分别分配所述人工神经网络的一个层或至少一个神经元,并且将这些存储区域分别设计为存放相应分配的层的输入变量。所述存储区域优选地具有至少与存放相应的输入变量所需的存储空间一样大的存储空间。例如,对于卷积层(英语:convolutional layer)的输入变量,与靠近所述人工神经网络输出端的弱网格层的存储区域相比,所属的存储区域具有更多的存储空间。
还提出所述存储区域的互连经由连接进行,每个连接被设计为执行数学运算。所述连接的数学运算优选地对应于由分别分配的存储区域的层执行的那些数学运算。可以想到,所述连接是用硬件实现的数学运算。所述数学运算可以是加法运算(例如输入变量的各个元素相加)和/或乘法运算(例如输入变量的各个元素相乘或与被乘数相乘)。附加地或替代地,所述数学运算也可以是具有可预定的滤波器和/或池化的卷积。
还提出,所述存储区域的连接通过至少一个计算单元互连,并且所述计算单元被设计为对可以存放在相应存储区域中的输入变量执行所述数学运算。也就是说,所述连接将所述计算单元与所属的存储区域相连接,从该所属的存储区域中加载输入变量并且通过所述计算单元处理的输入变量应当存放在该所属的存储区域中。也就是说,所述连接被设计为加载和存储所述输入变量。该连接优选是数据总线。
优选地,所述计算单元被设计为并行执行层、特别是神经元的计算。特别优选地,所述计算单元被设计为依据控制模式(英语:rollout pattern,展开模式)来同时/并行地执行层的计算,该控制模式被分配给所述人工神经网络。替代地,可以将所述计算单元设计为为每个存储区域分别提供计算核心。优选地,向所述两个存储模块的按序列处于相同位置的存储区域分配相同的计算单元。在此有利的是,通过所提出的数据存储器使得能够实现所述人工神经网络的任意表现的并行的执行。优选地,所述计算单元依据分配给所述神经网络的控制模式来执行所述计算。所述控制模式至少表征特别是顺序的计算的序列,根据所述序列,所述深度神经网络的层或神经元确定其输入变量。所述控制模式还可以表征多个序列,然后在根据所述控制模式运行深度神经网络时可以并行执行多个序列。
附加地,所述计算单元可以与其他存储器互连,在所述其他存储器中存放了所述人工神经网络的参数。
还提出,两个存储模块的至少各一个存储区域与在另一个存储模块的所述序列中的相同位置处的存储区域互连。因此,第一存储模块的存储区域与第二存储模块的存储区域双向互连,这两个存储区域都位于所述序列的相同位置。由此,映射了将层引用到自身的层的人工神经网络的连接。还提出,所述两个存储模块中的存储区域之一分别附加地与另一个存储模块的其他存储区域互连,在该序列中所述其他存储区域不是直接跟随的。也就是说,两个存储模块的分别位于该序列中相同位置的存储区域分别附加地与另一个存储模块的至少一个其他存储区域互连。由此,映射了所述人工神经网络的桥接连接。所述数据存储器由此允许特别有效地处理时间序列。
还提出,所述存储模块的序列中的最后一个存储区域提供其存储的输入变量作为所述人工神经网络的输出变量,其中所述人工神经网络的输入变量能够存放在所述序列的第一存储区域中。
还提出,根据控制模式(英语:rollout pattern,展开模式)对提供的输入变量进行处理。优选使用流式控制模式(英语:streaming rollout)。由此可以特别有效地处理所提供的输入变量。该优点特别是在诸如递归神经网络的人工神经网络中特别有用。
在逐步处理所述输入变量时,在流式控制模式中在每个处理步骤分别确定各层的所有输入变量,而在顺序运行中仅按照输入变量在层序列中的位置来依次确定所述输入变量。
还提出,当适配所述参数时,基于所述局部学习规则确定的值(Δw)被相加到该参数的值。还提出,依据至少两个用可预给定因子(η)加权的输入变量来确定所述局部学习规则的确定值(Δw)。
优选地,所述局部学习规则是以下之一:
Hebb学习规则:
Δw=η*x*y (1)
其中,x是可预给定层的输入变量,y是可预给定层的输出变量,即可预给定层的直接跟随的层的输入变量,以及η是可预给定因子。
Oja学习规则:
Δw=η*(x*y-y2*w) (2)
其中w是可预给定层的被观察参数的值。
非线性Hebb学习规则:
Δw=η*(x*y3-w) (3)
对于可预给定层附加地经由桥接连接(英语:skip connection)获得其他输入变量并且将权重ws分配给该桥接连接的情况,同样可以根据列出的等式之一来适配该权重ws。
所述学习规则特别优选地还取决于各层的先前确定的输入变量(t-1)。所述学习规则可以是以下之一:
Δw=η*(x(t)*(y(t)-y(t-1))3-w(t)) (4)
或者:
Δw=η*(x(t)-x(t-1))*(y(t)-y(t-1)) (5)
也就是说,所述参数可以基于局部学习规则依据分配了所述参数的层的存放在两个存储模块中的输入变量x(t),x(t-1)和后续层的存放在两个存储模块中的确定的输入变量y(t),y(t-1)来加以适配。应当注意,输入变量x(t)存放在存储模块之一中,而输入变量x(t-1)存放在另一个存储模块中,也就是彼此分开地存放在不同的存储模块中。由此,还使用直接连接的层的当前确定的以及在先前的时刻确定的输入变量。
这样做的优点是,这些局部学习规则可以用于在运行时在执行所述人工神经网络期间以实用的方式细化模型参数,因为可以非常快速地计算出所计算的值Δw。
应当注意,可以使用其他局部学习规则。从而例如可以通过加法代替乘法。应该注意的是也可以想到其他数学运算。
还提出,在传播之后将所述人工神经网络的确定的输出变量与参考数据进行比较,其中如果确定的输出变量与所述参考数据的偏差大于可预给定的最大偏差,则执行适配步骤。所述参考数据可以从另外检测的传感器数据中确定,并且例如以“基本事实”参考数据的形式提供或由评估所述确定的输出变量的用户提供。
还提出,由所述人工神经网络处理多个不同的输入变量,并且经由所有变化Δw的平均值来适配参数。也就是说,在多次运行之后才执行所述适配。
还提出对以下参数进行适配,所述参数的值大于可预给定的阈值。
所述阈值优选为参数最大值的5%或10%或20%。替代地,可以适配所述参数的5%或10%或20%。可以想到可以适配任何可预给定的参数。也可以想到适配随机选择的参数。有利的是,总是适配相同的参数。如果这没有达到目的,则可以替代地适配不同的参数。
依据所述人工神经网络应当针对其进行适配的变化,例如当传感器数据变化时,即例如如果在冬季主导的是不同于夏季的曝光统计并且所述人工神经网络应当适配于所述曝光统计,则优选适配在网络输入端附近的层的参数。如果更多地要适配更抽象的概念,例如如果正确识别狗比猫更重要,则优选适配网络输出端附近的层的参数。网络输入端附近的层或网络输出端附近的层可以理解为直接与输入层或输出层连接的那些层。
可以想到的是,如果在适配参数的步骤中将所述参数的值跨多个步骤地减小,则可以随后从所述人工神经网络中删除所述参数。附加地或替代地,当经过适配的参数的值低于可预给定的下阈值时,将经过适配的参数从所述人工神经网络中删除。
还提出在适配了所述参数之后对所述参数执行正则化。
正则化可以理解为经过适配的参数的值相对于其他参数的值的归一化或缩放。这样做的优点是保证稳定的数值行为。正则化可以是Lp范数:w(t)=w(t)/||w(t)||p。
优选地,所述人工神经网络用在智能移动设备中,例如电动自行车或智能手表(英语:smart watches)或自主割草机。
所提出的方法可以用在物理/技术系统中,例如用在具有执行器的机器人或至少部分自主的车辆中。人工神经网络的所确定的输出变量可以由控制单元使用,使得所述控制单元依据所述输出变量来控制所述执行器。为此,所述控制单元可以依据所确定的输出变量来确定控制变量,并将所述控制变量用于控制所述执行器。
替代地,依据所确定的所述人工神经网络的输出变量,可以确定可以用于控制技术系统的执行器的控制变量。可以根据所述控制变量进行所述控制。所述技术系统可以是例如至少部分自主的机器、至少部分自主的车辆、机器人、工具、机床或诸如无人机的飞行物体。例如,因此可以控制机器人或车辆的运动或可以控制执行器。
例如,可以依据所检测的传感器数据确定提供的所述人工神经网络的输入变量,并将其提供给所述人工神经网络。所述传感器数据可以由技术系统的传感器(例如相机)检测或者替代地可以从外部接收。
在另一方面,提出了一种计算机程序。所述计算机程序被设计为执行前述方法之一。该计算机程序包括指令,当所述计算机程序在计算机上运行时,所述指令促使所述计算机执行具有其所有步骤的所述方法之一。此外,提出了一种机器可读的存储模块,在该存储模块上存储了所述计算机程序。此外,提出了一种设备,所述设备被设计为执行所述方法之一。
附图说明
在附图中示出了上述方面的实施例,并且在下面的描述中对这些实施例进行了更详细的解释。在此:
图1示意性地示出了数据存储器;
图2示意性地示出了用于运行人工神经网络的方法的流程图。
具体实施方式
图1示出了具有两个存储模块(11a,11b)的数据存储器的示意图。存储模块(11a,11b)分别包括多个存储区域(13a,13b)。存储区域(13a,13b)被设计为存储来自人工神经网络各层的输入变量。在下文中,层的输入变量应当被称为中间变量。优选地,两个存储模块(11a,11b)的存储区域分别被分配给所述人工神经网络的一层。替代地,可以将每个存储区域分配给所述人工神经网络的神经元。在图1的实施例中,两个存储模块(11a,11b)的存储区域按照所述人工神经网络的层的序列来布置。将第一和第二存储模块的根据所述序列布置在相同位置的存储区域分配给同一层。也就是说,每层都分配给第一存储模块的存储区域和第二存储模块的存储区域。
第一存储模块(11a)的存储区域分别经由连接(12)与第二存储模块(11b)的按照所述序列分别后续的存储区域互连,所述存储区域被分配给跟随以下层的层,该层被分配给第一存储模块(11a)的相应存储区域。应当注意,这些连接未在图1中示出。同样,第二存储模块(11b)的存储区域(13b)借助于连接(12)与后续区域(13a)互连。
优选地,存储模块的存储区域通过连接(12)经由至少一个计算单元(141)互连。计算单元(141)被设计为处理存放在相应存储区域(13b)中的中间变量,并将其存放在另一个存储模块的后续存储区域中。计算单元(141)可以被设计为执行以下层的算术运算或计算,所述层在人工神经网络的层序列中跟随被分配给所述后续存储区域的层。
在存储模块的存储区域的序列的相同位置的存储区域(13a,13b)可以分别与同一个计算单元(141)连接。
可以想到的是,所述计算单元访问其他存储器(P),在所述其他存储器中存放了所述人工神经网络的层的参数。所述计算单元还可以被设计为依据所述参数和所提供的中间变量,根据所述人工神经网络的相应层对其进行处理。所述参数可以例如参数化由所述计算单元执行的数学函数。
例如,如果输入变量通过顺序运行的人工神经网络传播,则所述输入变量可以存放在第二存储模块(11b)的第一存储区域(13b)中。然后经由连接(12)将所述输入变量提供给计算单元(141),该计算单元根据由所述人工神经网络的第一层执行的计算来处理所述输入变量。随后将经过处理的输入变量(可以称为中间变量)存放在第一存储模块(11a)的第二存储区域中。随后将所述中间变量从第二存储区域中加载并借助于计算单元(141)或借助于其他计算单元(142)进行处理,并存放在第二存储模块(11b)的第三存储区域中。然后一直执行在第一和第二存储模块(11a,11b)之间这种交替的加载和存储,直到所述中间变量存放在两个存储模块(11a,11b)之一的最后一个存储区域中并且可以作为所述人工神经网络的输出变量输出。
在另一个实施方式中,可以使用控制模式来运行所述人工神经网络。也就是说,向所述人工神经网络的各层分配控制变量,该控制变量表征计算序列,根据该计算序列,该层依据该序列或独立于该序列来执行其计算。有关控制模式的其他细节,请参阅开头所述的作者Fischer等人的文献。在该实施方式中,所述计算单元(141、142)可以根据所述控制模式并行地执行其计算,特别是当所述控制模式表征了独立于该序列来运行这些层时。
对于根据流式控制模式来控制所述人工神经网络的情况,即,当所述人工神经网络的所有层独立于所述序列运行时,所有计算单元(141,142)同时运行。然后,计算单元(141,142)针对每个处理步骤处理存储模块之一(11a)的存储区域的所有中间变量,并将经过处理的中间变量存放在另一个存储模块(11b)的分别后续的存储区域中。
图2示意性地示出了用于使用根据图1的数据存储器来运行人工神经网络的方法(20)的流程图。
方法(20)从步骤21开始。这里,向图1中的数据存储器提供所提供的所述人工神经网络的输入变量。所述输入变量存放在两个存储模块(11a,11b)之一的第一存储区域(13a,13b)中。
随后,通过所述人工神经网络逐步传播所提供的输入变量。在此,所述层确定所述输入变量的中间变量,特别是依据控制模式确定所述输入变量的中间变量。为此,所述中间变量在存储模块(11a,11b)中被交替读取并存放。
在传播时,可以依据分配给所述人工神经网络的控制模式来运行计算单元(141、142)。在这种情况下,当所述计算单元根据所述控制模式必须处理所述中间变量时,所述计算单元从相应的存储区域加载所述中间变量,处理所述中间变量并将所述中间变量存放在另一个存储模块的后续存储区域中。
可以在步骤21之后的传播时在存放和加载所述中间变量之间执行步骤22。附加地或替代地,当提供的输入变量通过所述人工神经网络传播时,也就是说,所述人工神经网络已经确定了输出变量时,可以执行步骤22。在步骤22中,按照局部学习规则,依据步骤21之后至少两个确定的中间变量来适配参数之一,所述中间变量是其参数将被适配的层的输入变量和确定的输出变量。层的输出变量是该层的直接跟随的层的输入变量或所述人工神经网络的输出变量。
在步骤22完成之后,可以确定步骤21后还剩余有待确定的中间变量,直到所述人工神经网络的输出变量存在为止。
在步骤23中,在步骤22结束之后,新的、提供的输入变量可以通过具有所适配的参数的人工神经网络传播。
可选地,然后可以依据所述输出变量来操控技术系统的执行器,或者可以依据所述输出变量来确定控制变量。
Claims (10)
1.用于运行人工神经网络的方法(20),包括以下步骤:
根据所述人工神经网络的层的序列,逐步处理提供的输入变量,
其中在所述逐步处理时分别依据相应层的输入变量并且依据分配给所述相应层的至少一个参数来确定输出变量,然后将所述输出变量作为根据所述序列分别直接跟随的层的输入变量或作为所述人工神经网络的输出变量提供,
其中在所述逐步处理时交替地从数据存储器的至少两个存储模块(11a,11b)之一中读取各层的输入变量,并将确定的输出变量作为所提供的所述直接跟随的层的输入变量或作为所述人工神经网络的输出变量存放在另一个存储模块(11a)中,以及
基于局部学习规则依据可预给定层的在所述存储模块之一(11b)中存放的至少一个输入变量并且依据所述可预给定层的所确定的输出变量来适配所述可预给定层的至少一个参数,所述输出变量作为直接跟随的层的所提供的输入变量或作为所述人工神经网络的输出变量存放在所述另一个存储模块(11a)中。
2. 根据权利要求1所述的方法,其中,所提供的输入变量的逐步处理依据控制模式(英语:rollout pattern)来执行。
3.根据前述权利要求中任一项所述的方法,其中,在适配所述参数之后,对所述参数执行正则化。
4.根据前述权利要求中任一项所述的方法,其中,在适配所述参数时给所述至少一个参数的值加上基于所述局部学习规则确定的值(Δw)。
5.根据权利要求4所述的方法,其特征在于,所确定的所述局部学习规则的值(Δw)是依据用可预给定因子(η)加权的至少两个输入变量来确定的。
6.根据前述权利要求中任一项所述的方法,其中,在对所提供的输入变量进行逐步处理之后,将所述人工神经网络的确定的输出变量与参考数据进行比较,其中,如果确定的输出变量与所述参考数据的偏差大于可预给定的最大偏差,则执行所述适配的步骤。
7.根据前述权利要求中任一项所述的方法,其中,适配具有大于可预给定阈值的值的参数。
8.计算机程序,包括指令,所述指令在由计算机执行计算机程序时促使所述计算机执行根据前述权利要求中任一项所述的方法。
9.机器可读的存储元件,其上存储有根据权利要求8所述的计算机程序。
10.被设计为执行根据权利要求1至7中任一项所述的方法的设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019214436.5A DE102019214436A1 (de) | 2019-09-23 | 2019-09-23 | Verfahren, Vorrichtung und Computerprogramm zum Betreiben eines künstlichen neuronalen Netzes |
DE102019214436.5 | 2019-09-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112541568A true CN112541568A (zh) | 2021-03-23 |
Family
ID=74845986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011001002.4A Pending CN112541568A (zh) | 2019-09-23 | 2020-09-22 | 用于运行人工神经网络的方法、设备和计算机程序 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112541568A (zh) |
DE (1) | DE102019214436A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022209457A1 (de) | 2022-09-09 | 2024-03-14 | Volkswagen Aktiengesellschaft | Verfahren zum Steuern eines künstlichen neuronalen Netzes beim Bereitstellen einer Fahrzeugfunktion |
-
2019
- 2019-09-23 DE DE102019214436.5A patent/DE102019214436A1/de active Pending
-
2020
- 2020-09-22 CN CN202011001002.4A patent/CN112541568A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102019214436A1 (de) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915816B2 (en) | System and method of executing neural networks | |
EP3685319B1 (en) | Direct access, hardware acceleration in neural network | |
JP7366274B2 (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
CN111919226A (zh) | 执行机器学习的装置和方法 | |
CN113841159A (zh) | 由电子装置在神经网络中的特定层执行卷积运算的方法及其电子装置 | |
CN110659069A (zh) | 用于执行神经网络计算的指令调度方法及相应计算系统 | |
EP3836030A1 (en) | Method and apparatus with model optimization, and accelerator system | |
CN111830822A (zh) | 配置与环境交互的系统 | |
CN115204355A (zh) | 能够重新使用数据的神经处理单元及其方法 | |
CN111967583A (zh) | 压缩神经网络的方法、装置、设备和介质 | |
CN112541568A (zh) | 用于运行人工神经网络的方法、设备和计算机程序 | |
EP4009239A1 (en) | Method and apparatus with neural architecture search based on hardware performance | |
CN112132255A (zh) | 人工智能神经网络引擎中模型推断的批量归一化层融合和量化方法 | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
JP2022102966A (ja) | 情報処理装置、情報処理方法 | |
CN108376283B (zh) | 用于神经网络的池化装置和池化方法 | |
CN113554157A (zh) | 数据处理方法及相关产品 | |
CN114187466A (zh) | 人工神经网络的更灵活的迭代运行 | |
CN114626284A (zh) | 一种模型处理方法及相关装置 | |
EP4052188A1 (en) | Neural network instruction streaming | |
CN113272831A (zh) | 神经网络的缩简装置 | |
WO2021061172A1 (en) | System and method of executing neural networks | |
US20220121922A1 (en) | System and method for automated optimazation of a neural network model |
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 |