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

记忆网络的初始化的制作方法

2022-06-22 20:50:47 来源:中国专利 TAG:


1.本技术一般涉及记忆网络的初始化,并且更具体地涉及与记忆组件耦合的机器学习和机器学习系统。


背景技术:

2.诸如神经turing机(ntm)、记忆增强神经网络(mann)、可区分神经计算机(dnc)等的记忆网络可以将人工神经网络耦合到外部记忆(memory)。该耦合可以允许记忆网络在需要在长时间段内学习复杂数据变换的任务(例如,复制、分类、关联回忆和少触发学习)中优于诸如长期短期记忆(lstm)之类的递归神经网络(rnn)。然而,这些记忆网络的训练不是直接的,并且现有的方法不可靠。例如,训练可能经常使对单个记忆卡槽(memory slot)的读取和写入崩溃。用现有方法训练记忆网络可能非常慢才能收敛。


技术实现要素:

3.根据本发明的一个方面,一种计算机实现的方法包括至少利用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。记忆写入加权参数化神经网络对所述记忆网络的外部记忆组件的记忆写入操作。记忆读取加权参数化所述神经网络从所述记忆网络的所述外部记忆组件的记忆读取操作。所述方法还包括初始化从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的元素的组中选择的至少一个以具有稀疏性。所述方法还包括利用被初始化为具有稀疏特性的、从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的元素的组中选择的一个来训练所述记忆网络。所述训练更新所述写入加权、所述读取加权和所述至少一个读取向量。
4.在另一方面,一种训练记忆网络的计算机实现的方法包括至少利用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。所述记忆写入加权参数化神经网络对所述记忆网络的外部记忆组件的记忆写入操作。所述记忆读取加权参数化所述神经网络从所述记忆网络的所述外部记忆组件的记忆读取操作。所述方法还可以包括将从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的元素的组中选择的至少一个初始化为遵循低差异序列的配置值。所述方法还可以包括利用具有遵循低差异序列的初始配置值的、从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的元素的组中选择的一个来训练所述记忆网络。所述训练更新所述写入加权、所述读取加权和所述至少一个读取向量。
5.在一个方面,一种用于训练记忆网络的系统包括硬件处理器和与所述硬件处理器耦合的存储器设备。所述存储器设备存储记忆矩阵。所述硬件处理器被配置为至少利用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。所述记忆写入加权参数化神经网络对所述记忆矩阵的记忆写入操作。所述记忆读取加权参数化所述神经网络从所述记忆矩阵的记忆读取操作。所述硬件处理器还可以被配置为将从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的元素的组中选择的至少一个初始化为具有稀
疏性。所述硬件处理器还可以被配置为用被初始化为具有稀疏特性的、从至少具有所述写入加权、所述读取加权和所述至少一个读取向量的组中选择的一个来训练所述记忆网络。所述训练更新所述写入加权、所述读取加权和所述至少一个读取向量。
6.还可以提供一种计算机可读存储介质,其存储可由机器执行以执行本文描述的一个或多个方法的指令程序。
7.下面参考附图详细描述各种实施例的进一步特征以及结构和操作。在附图中,相同的附图标记表示相同或功能相似的元件。
附图说明
8.图1是示出一个实施例中的系统的组件的示图。
9.图2是根据一个实施例的训练记忆网络的方法。
10.图3是示出另一实施例中的方法的流程图。
11.图4示出了在一个实施例中使用计算机程序生成sobol序列的示例,作为生成低差异序列的示例方法。
12.图5是示出训练记忆网络的一个实施例中的系统的组件的示图。
13.图6示出了在一个实施例中可以实现系统的示例计算机或处理系统的示意图。
14.图7示出了一个实施例中的云计算环境。
15.图8示出了本公开的一个实施例中的由云计算环境提供的一组功能抽象层。
具体实施方式
16.可以提供允许快速且可靠地初始化记忆网络的系统、方法和技术。例如,系统可以包括计算机系统。例如,方法可以包括计算机实现的方法。记忆网路将机器学习模型(例如人工神经网路)与可被读取及写入的记忆组件结合。在记忆网络中,机器学习模型可被训练成与记忆组件一起操作。权重是机器学习模型中的参数。在机器学习中训练模型涉及例如通过梯度下降反向传播或另一技术来学习或估计权重(例如,除其他参数之外)。
17.在一个实施例中,系统利用稀疏值,例如一个或仅几个非零元素,而不是例如用于许多或所有元素的小的伪随机值,来初始化这样的记忆网络的记忆写入权重、读取权重和/或读取向量。在一个实施例中,系统还使用低差异序列来生成这种稀疏初始化(例如,代替伪随机序列)。低差异序列的示例包括但不限于sobol、halton、hammersley和van der corput序列。
18.人工神经网络(ann)在此也被称为神经网络。人工神经网络的一种实现方式的实施例可以包括一连串的神经元层,其被互连以使得一层中的神经元的输出信号被加权并被传输到下一层中的神经元。给定层中的神经元ni可以连接到下一层中的一个或多个神经元nj,并且不同的权重wij可以与每个神经元-神经元连接ni-nj相关联,以用于对从ni传输到nj的信号进行加权。神经元nj根据其累加的输入产生输出信号,并且经加权的信号可以在网络的连续层上从输入传播到输出神经元层。人工神经网络机器学习模型可以经历训练阶段,在该训练阶段中,确定与相应神经元层相关联的权重集合。在迭代训练方案中,网络暴露于一组训练数据,其中随着网络从训练数据“学习”,权重被反复地更新。具有经由训练操作定义的权重的所得经训练模型可被应用来基于新数据执行任务。
19.一种记忆网络包括控制器和记忆组件。控制器可以是神经网络,例如,具有诸如但不限于长期短期记忆(lstm)的状态。控制器还可以是诸如前馈网络的另一网络。控制器可以利用读操作和写操作来访问记忆,该读操作和写操作可以利用权重被参数化。用权重参数化读操作和写操作的网络输出被称为头(head)。例如,写入加权定义写入头写入记忆位置的程度;读取加权定义读取头从记忆位置读取的程度。由读取头返回的读取向量是记忆矩阵和读取加权向量(例如,记忆向量的加权和)的组合。例如,可以基于记忆网络的架构,利用至少一个读取头和一个写入头来配置读取头和写入头的数量。训练记忆网络包括学习记忆网络的记忆写入权重、读取权重和读取向量。记忆网络的记忆状态可以被定义为读取权重、写入权重、读取向量和记忆矩阵的组合(例如,级联)。根据记忆网络的架构,可以定义附加参数并将其包括在记忆状态中,所述附加参数包括但不限于例如使用向量、优先权重和链路矩阵。
20.对外部记忆的存取机制可包括基于内容的寻址和基于位置的寻址,其可提供记忆地址或单元以存储或检索信息。控制器的状态(例如读取和写入权重)和与记忆存取相关联的其它系统参数是可训练的。权重的训练可以考虑诸如当前输入(例如,通过相似性的内容寻址)、先前焦点(插值)、可能的焦点移位(卷积移位)和模糊(锐化)之类的因素。训练记忆网络的过程初始化那些权重和向量,这些权重和向量通过学习过程更新,直到误差收敛到例如最小接受值或另一标准。
21.实施例中的系统、方法和技术提供了权重和/或向量初始化技术,其可以允许高效和更快的收敛,从而允许更高效和更快的记忆网络模型学习。
22.在此描述的系统的实施例在训练记忆网络时,用稀疏值初始化写入权重、读取权重和/或读取向量。写入加权或权重参数化存储信息的记忆单元。读取加权或权重参数化从其读取信息的记忆单元。
23.作为示例,系统初始化写入加权,其中每个写入头的单个随机选择的权重被初始化为1,并且所有其他权重被初始化为0。系统初始化所有读取加权、读取向量、以及记忆矩阵为0。用仿真参数(例如,100lstm单位、128
×
20记忆矩阵、训练序列长度1-20、批量大小1(epoch号=序列号)、1个读取头、以及1个写入头)执行的实验示出了大约80%的训练尝试非常快速地收敛(例如,在avx2(simd)支持tensorflow软件的情况下,在2.6ghz下,在核i7-5600u中央处理单元(cpu)上为12-30分钟)。
24.在一个实施例中,系统使用低差异序列来产生这种稀疏初始化。低差异序列是具有以下属性的序列:对于所有n值,其子序列x1、...、xn具有低差异。低差异序列也被称为准随机或子随机序列。对于有限数量的点,低差异序列比伪随机序列更均匀地覆盖空间。例如,低差异序列具有比伪随机序列更均匀的分布或更高的等分分布程度。示例包括但不限于sobol、halton、hammersley和van der corput序列。
25.例如,在实施例中,系统从低差异序列选择或挑选稀疏初始值。执行的仿真实验示出了使用100lstm单元、127
×
20记忆矩阵、训练序列长度1-20、批量大小=1(因此,因此epoch号=序列号)、1个读取头和1个写入头的示例仿真参数,所有训练尝试(例如,15个运行)更快地收敛,例如,在12-30分钟内,在该仿真实验中,单个写入权重从初始化为1的(40,127)sobol序列中被拉出,其它写入权重初始化为0,读取权重、读取向量和记忆矩阵全部初始化为0。从实验中观察到,在1和20之间的序列长度上训练的记忆网络很好地推及以前看
不到的长度为40、80和120的序列。
26.下面的例子说明了在一个实施例中实现该方法的可能方式。该示例不意味着限制。相反,其仅以举例的方式提供并且用于说明目的。示例代码以python编写,但也可以任何其它编程语言编写。线号与编码中的实际线号不对应;并且仅为了在以下描述中易于参考而提供。
[0027][0028]
在第2行中,“seq_wrap”是表示所生成的sobol序列被重复(回绕)以生成更长序列的次数的变量。由于所生成的sobol序列的数量和长度是有限的,并且所级联的序列的总长度远小于在神经网络的训练中使用的迭代次数,因此提供更大序列的一种可能方式是重复所生成的序列。“iterations”表示用于训练的迭代次数。“batch_size”表示用于训练的批次大小。“write_head”表示写入头的数量。“mem_words”表示记忆字的数目(例如,在n
×
m记忆矩阵中,n的大小,其中n表示记忆位置的数目)。“sobol_len”表示所生成的sobol序列的数目。参数、batch_size、write_head和mem_words是记忆网络架构中的可配置参数。
[0029]
在第3行中,产生数目“sobol_len”和长度“mem_words”的sobol序列,并将其存储在“mem_seed”中作为具有“mem_words”行和“sobol_len”列的数组。例如,mem_words=127,sobol_len=40,并且mem_seed=[[64,96,32,48,

,65,1],[64,32,96,48,

,21,85],

,[64,32,96,80,

,43,107]]是127
×
40数组,表示各自长度为127的40个sobol序列(即,总共具有127
×
40=5080个元素)。
[0030]
在第4行中,将存储在“mem_seed”中的数组重新整形为具有1行和“mem_words*sobol_len”列(相当于长度为“mem_words*sobol_len”的行向量)的数组,并且将结果存储在“mem_seed”中。例如,如果在执行第4行之前,mem_seed=[[64,96,32,48,

,65,1],[64,
32,96,48,

,21,85],

,[64,32,96,80,

,43,107]],则在执行第4行之后,mem_seed=[64,96,32,48,

,65,1,64,32,96,48,

,21,85,

,64,32,96,80,

,43,107]。
[0031]
在第5行中,存储在“mem_seed”中的数组沿着其第一轴(例如,行)重复“seq_wrap”次,从而得到具有1行和“mem_words*sobol_len*seq_wrap”列的数组,该数组存储在“mem_seed”中。作为说明性示例,如果在执行第5行之前seq_wrap=2(注意“seq_wrap”可以远大于2)并且mem_seed=[64,96,32,48,

,43,107],则在执行第5行之后,mem_seed=[64,96,32,48,

,43,107,64,96,32,48,

,43,107]。
[0032]
在第7行中,开始在训练迭代上循环。“count”表示当前迭代(例如,从1开始的当前循环水平)。
[0033]
在第9行中,“write_weightings”是具有分别用于第一、第二和第三维的大小“batch_size”、“mem_words”、“write_heads”的3维数组,并且表示写入加权。“write_weighting”的所有元素都被设置为零。“float32”表示32位浮点(也称为单精度)数值格式。也可以使用其它数值格式(包括但不限于16位浮点)。
[0034]
在第10-12行中,如由存储在“mem_seeds”中的序列所确定的,“write_weighting”的一些元素被设置为1,而其余的保持为0,例如,如果对于第一次训练迭代(例如,count=1),mem_seeds=[64,96,32,48,112,80,16,24,88,120,56,40,104,72,

,43,107],batch_size=3并且write_heads=2:
[0035]
write_weightings[0][63][0]=1
[0036]
write_weightings[0][95][1]=1
[0037]
write_weightings[1][31][0]=1
[0038]
write_weightings[1][47][1]=1
[0039]
write_weightings[2][111][0]=1
[0040]
write_weightings[2][79][1]=1
[0041]
而write_weightings的其它元素保持为零。类似地,对于第二训练迭代(例如,计数=2):
[0042]
write_weightings[0][15][0]=1
[0043]
write_weightings[0][23][1]=1
[0044]
write_weightings[1][87][0]=1
[0045]
write_weightings[1][119][1]=1
[0046]
write_weightings[2][55][0]=1
[0047]
write_weightings[2][39][1]=1
[0048]
等等。
[0049]
在第13行中,“read_weightings”是分别具有用于第一、第二和第三维的大小“batch_size”、“mem_words”、“read_heads”的3维数组,并且表示读取加权。“read_weightings”的所有元素都被设置为零。“read_heads”表示读取头的数量。
[0050]
在第14行中,“memory_matrix”是分别具有用于第一、第二和第三维的大小“batch_size”、“mem_words”、“mem_width”的3维数组,并且表示记忆矩阵。“memory_matrix”的所有元素都被设置为零。“mem_width”表示记忆宽度(例如,在n
×
m记忆矩阵中,m的大小,记忆位置处的向量大小)。
[0051]
在第15行中:“read_vectors”是具有分别用于第一、第二和第三维的大小“batch_size”、“mem_width”、“read_heads”的3维数组,并且表示读取向量。“read_vector”的所有元素都被设置为零。
[0052]
第16行表示代码的以下部分(未示出),其中使用如上所述的为每个迭代初始化的写入加权、读取加权、记忆矩阵和读取向量来执行针对该迭代的训练。
[0053]
在以上示例中,写入加权被初始化为遵循所述低差异序列(在本例中为sobol序列)的模式的稀疏数组。在实施例中,稀疏性和低差异两者都可以被利用。在另一实施例中,稀疏性和低差异可以被实现为两个单独的特征。例如,如果在第9行,写入加权被初始化为小的随机数而不是零,并且写入加权的一些元素被设置为1,如第10-12行中所述,则所得到的写入加权可能不是稀疏的,但是仍然具有低差异特性,因为被设置为1的写入加权遵循低差异序列的模式。
[0054]
在另一个示例中,如在上面的第9行中,写入加权被初始化为零,但是代替如在行第10-12行中基于低差异序列将写入加权的一些元素设置为1,写入加权被随机地设置为1,所得到的写入加权可能不具有低差异特性,但是仍然是稀疏的。
[0055]
在上述例子中,在第12行中,给定的一组写入加权的正好一个元素被设置为1,在其它例子中,更大数目的元素,例如给定组的2个或更多元素可以被设置为1。
[0056]
在上述例子中,在第12行中,写入加权的一些元素被设置为1。在其它例子中,这些元素可以被设置为不同的非零值,例如0.5、2或5,或另一值。
[0057]
在上述示例中,将写入加权初始化为稀疏和低差异数组,而将读取加权和读取向量初始化为零。在另一示例中,读取加权可以被初始化为稀疏和低差异数组,而写入加权和读取向量被初始化为零。例如,在一个实施例中,写入权重、读取权重和读取向量中的至少一个可以被初始化为稀疏和/或低差异数组。
[0058]
在上述例子中,在第2-5行中,产生的低差异序列被平坦化(即,从2维数组转换为1维数组,即,向量)并被包装(即,重复期望的次数)。随后,将所得到的序列用作模板,用于如上所述将写入权重的元素设置为1。在各种实施例中,可以使用各种其他布置。例如,也可以使用低差异序列的级联,其中给定的低差异序列在期望长度的级联的低差异序列内的随机位置出现随机次数。在另一个例子中,可以提供低差异序列的1维数组(即,向量),诸如在第4行中生成的数组。然后,在每次训练迭代的训练迭代开始时,可以选择向量的随机元素,并假设其为向量的起始点。可以从该起始点读取该向量,并将其用作如上所述将写入加权设置为1的模板。如果在该训练迭代中到达向量的末尾,则可以从向量的开头读取下一元素。在又一个例子中,可以提供低差异序列的2维数组,诸如在第3行中生成的数组。然后,在训练迭代开始时(例如,对于每个训练迭代),可以从数组中选择随机序列,并将其用作模板,以便如上所述将写入加权设置为1。如果到达该序列的末尾,则可以从数组中选择另一随机序列。
[0059]
图1是示出一个实施例中的系统的组件的示图。所示的组件包括例如在一个或多个硬件处理器上实现和/或运行的或者与一个或多个硬件处理器耦合的计算机实现的组件。一个或多个硬件处理器例如可以包括诸如可编程逻辑器件、微控制器、存储器设备和/或其他硬件部件的部件,其可以被配置为执行本公开中描述的相应任务。耦合的存储器设备可以被配置为选择性地存储可由一个或多个硬件处理器执行的指令。例如,处理器可以
是中央处理单元(cpu)、图形处理单元(gpu)、现场可编程门阵列(fpga)、专用集成电路(asic)、另一合适的处理组件或设备、或其一个或多个组合。处理器可以与存储器设备耦合。存储器设备可以包括随机存取存储器(ram)、只读存储器(rom)或另一存储器设备,并且可以存储用于实现与本文描述的方法和/或系统相关联的各种功能的数据和/或处理器指令。处理器可以执行存储在存储器中或从另一计算机设备或介质接收的计算机指令。
[0060]
记忆网络可以包括诸如人工神经网络的控制器102和例如神经网络外部的记忆组件104。记忆组件也称为记忆矩阵。控制器102可以利用读和写操作来访问记忆104,该读和写操作可以利用权重(例如,用于写入操作的写入加权和用于读取操作的读取加权)来参数化。训练记忆网络可以包括使记忆网络学习用于写入记忆104的选选择位置的记忆写入权重、用于从记忆104的选择位置读取的读取权重。读取向量作为基于读取权重确定的记忆中行向量的组合被返回。也就是说,对于每个数据实例(例如训练示例),每个读取头生成m个读取向量,其中m是记忆矩阵的宽度。
[0061]
例如,在106处所示的计算机处理器可以至少利用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。计算机处理器106也可以初始化记忆矩阵104。记忆写入加权将神经网络(例如102)对记忆矩阵104的记忆写入操作参数化。记忆读取加权参数化神经网络(例如102)从记忆矩阵104的记忆读取操作。计算机处理器106可以将写入加权、读取加权或读取向量中的至少一个初始化为稀疏的或具有稀疏性。计算机处理器106可以用写入加权、读取加权或读取向量中的被初始化为具有稀疏特性的至少一个来训练记忆网络108。训练更新写入加权、读取加权和读取向量。
[0062]
在一个实施例中,计算机处理器106可以使用低差异序列来生成稀疏集合以应用于写入加权、读取加权或至少一个读取向量的元素中的至少一个。低差异序列的例子包括但不限于sobol、halton、hammersley和van der corput序列。
[0063]
例如,在实施例中,计算机处理器106可以将稀疏数目的写入加权设置为非零值,并且将其余的写入加权、读取加权和至少读取向量的元素设置为零值,以将写入加权、读取加权或读取向量中的至少一个初始化为稀疏。在一个实施例中,被设置为具有非零值的稀疏数目的写入加权遵循低差异序列的模式。
[0064]
作为另一示例,在实施例中,计算机处理器106可以将稀疏数目的读取加权设置为非零值,并且将其余的读取加权、写入加权和至少一个读取向量的元素设置为具有零值,以将写入加权、读取加权或读取向量中的至少一个初始化为具有稀疏性。在一个实施例中,被设置为非零的稀疏数目的读取加权遵循低差异序列的模式。
[0065]
图2是根据一个实施例的训练记忆网络的方法。该方法可以在硬件处理器上执行或运行,例如计算机处理器。在202,该方法包括至少利用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。在一方面,所述记忆写入加权将神经网络对所述记忆网络的外部记忆组件的记忆写入操作参数化;记忆读取加权参数化神经网络从记忆网络的外部记忆组件的记忆读取操作。
[0066]
在204,该方法包括初始化写入加权、读取加权或读取向量中的至少一个以具有稀疏性。例如,该方法可以选择写入加权、读取加权或读取向量。然后,将该选择初始化为具有稀疏特性。例如,在一个实施例中,写入加权、读取加权和读取向量的元素可以被设置为第一值,诸如“0”。则可以将所选择的一个(例如,写入加权、读取加权或读取向量)设置为使其
元素的稀疏(少量)数目为第二值,诸如“1”。除了“0”和“1”之外的值可以用于表示稀疏特性。在一个实施例中,该方法可以使用低差异序列来生成稀疏的值集合。
[0067]
作为示例,该方法可以将稀疏数目的写入加权设置为非零值,并且将其余的写入加权、读取加权和至少一个读取向量的元素设置为零值。在一个实施例中,被设置为非零值的稀疏数目的写入加权遵循低差异序列的模式。
[0068]
作为另一示例,该方法可以将稀疏数目的读取加权设置为非零值,并且将其余读取加权、写入加权和至少一个读取向量的元素设置为具有零值。在一个实施例中,被设置为非零的稀疏数目的读取加权遵循低差异序列的模式。
[0069]
作为又一示例,该方法可以将读取向量的稀疏数目的元素设置为非零值,并且将读取向量的其余元素、读取加权和写入加权设置为具有零值。在一个实施例中,被设置为非零的读取向量的稀疏数目的元素遵循低差异序列的模式。
[0070]
在一个实施例中,稀疏数目是1,在另一个实施例中,稀疏数目大于1,并且可以小于可配置的数目。
[0071]
在206,该方法包括用写入加权、读取加权或读取向量中的被初始化为具有稀疏特性的至少一个来训练记忆网络。训练更新写入加权、读取加权和至少一个读取向量。写入加权和读取加权可以被认为是神经网络和外部记忆之间的连接权重。在一方面,可以通过梯度下降来训练记忆网络。
[0072]
图3是示出另一实施例中的方法的流程图。该方法可以在硬件处理器,例如计算机处理器上,执行或运行。在302,该方法可包括至少用记忆写入加权、记忆读取加权和至少一个读取向量来构建记忆网络。记忆写入加权参数化神经网络对记忆网络的外部记忆组件的记忆写入操作。记忆读取加权参数化神经网络从记忆网络的外部记忆组件的记忆读取操作。
[0073]
在304,该方法包括将从至少写入加权、读取加权和至少一个读取向量的组中选择的至少一个初始化为遵循低差异序列(例如,通过低差异采样模式初始化)的配置值。例如,该方法包括选择写入加权、读取加权或读取向量。该方法可以将选择的元素设置为诸如“1”的配置值,这些元素遵循低差异序列。初始化还可以包括将未被选择用于低差异序列的写入加权、读取加权和读取向量的元素设置为具有不同于配置值的值。作为示例,初始化可以包括将未被选择为遵循低差异序列的写入加权、读取加权和读取向量的元素设置为具有零值。作为又一示例,初始化可包括将未被选择为遵循低差异序列的写入加权、读取加权和读取向量的元素设置为具有不同于配置值的随机数。
[0074]
在306,该方法包括用初始化的写入加权、读取加权和读取向量训练记忆网络,其中写入加权、读取加权或读取向量中的至少一个被设置为包括遵循低差异序列的配置值。训练更新写入加权、读取加权和至少一个读取向量。写入加权和读取加权可以被认为是神经网络和外部记忆之间的连接权重。在一方面,可以通过梯度下降来训练记忆网络。
[0075]
图4示出了使用python(计算机编程语言)解释器产生sobol序列的例子,作为产生低差异序列的示例方法。该语言的命令被显示为前面有“》》》”,后面是从所执行的命令产生的输出。第一命令“import sobol_seq”导入可用sobol序列包。第二命令输出长度为2
7-1=127的40个sobol序列的矩阵,即sobol(40,127)。第三命令输出由第二命令输出的矩阵的第一列。
[0076]
图5是示出一个实施例中的训练记忆网络的系统的组件的示图。一个或多个硬件处理器502,例如中央处理单元(cpu)、图形处理单元(gpu)和/或现场可编程门阵列(fpga)、专用集成电路(asic)和/或另一处理器,可以与存储器设备504耦合,并且设计和训练记忆网络。存储器设备504可以包括随机存取存储器(ram)、只读存储器(rom)或另一存储器设备,并且可以存储用于实现与本文描述的方法和/或系统相关联的各种功能的数据和/或处理器指令。一个或多个处理器502可以执行存储在存储器604中的或从另一计算机设备或介质接收的计算机指令。存储器装置504可例如存储用于一个或多个硬件处理器502的功能的指令和/或数据,并且可包括操作系统以及指令和/或数据的其它程序。一个或多个硬件处理器502可以构建记忆网络并且初始化记忆网络的参数。例如,一个或多个硬件处理器502可以初始化写入加权、读取加权或读取向量中的至少一个以具有稀疏性。在另一方面,一个或多个硬件处理器可以将写入加权、读取加权或读取向量中的至少一个初始化为遵循低差异序列的配置值。在又一方面,一个或多个硬件处理器可以初始化写入加权、读取加权或读取向量中的至少一个以具有稀疏性,并且在设置稀疏值时也遵循低差异序列。输入或训练数据可以存储在存储器设备504中,或者经由网络接口508从远程设备接收,并且可以临时加载到存储器设备504中,以用于构建或生成经训练的记忆网络。在一个方面,所生成或训练的记忆网络可以存储在存储器设备504上,例如,以供一个或多个硬件处理器502执行来执行任务。一个或多个硬件处理器502可以与接口设备耦合,所述接口设备诸如用于例如经由网络与远程系统通信的网络接口508,以及用于与诸如键盘、鼠标、显示器和/或其他设备之类的输入和/或输出设备通信的输入/输出接口510。
[0077]
图6示出了在一个实施例中可以实现系统的示例计算机或处理系统的示意图。计算机系统仅是合适的处理系统的一个示例,并且不旨在对本文描述的方法的实施例的使用范围或功能提出任何限制。所示的处理系统可以与许多其它通用或专用计算系统环境或配置一起操作。适合与图6所示的处理系统一起使用的公知的计算系统、环境和/或配置的示例可包括但不限于,个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型机系统、大型机系统、以及包括上述系统或设备中的任一个的分布式云计算环境等。
[0078]
计算机系统可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
[0079]
计算机系统的组件可以包括但不限于一个或多个处理器或处理单元12、系统存储器16和将包括系统存储器16的各种系统组件耦合到处理器12的总线14。处理器12可以包括执行本文所述方法的模块30。模块30可被编程到处理器12的集成电路中,或从存储器16、存储装置18或网络24或其组合加载。
[0080]
总线14可以表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总
线和外围部件互连(pci)总线。
[0081]
计算机系统可以包括各种计算机系统可读介质。这样的介质可以是计算机系统可访问的任何可用介质,并且它可以包括易失性和非易失性介质、可移除和不可移除介质。
[0082]
系统存储器16可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)和/或高速缓冲存储器或其它。计算机系统还可以包括其它可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统18可被提供用于从不可移除、非易失性磁介质(例如,“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移除、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移除、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线14。
[0083]
计算机系统还可以与一个或多个外部设备26通信,诸如键盘、定点设备、显示器28等;一个或多个设备,其使得用户能够与计算机系统交互;和/或使计算机系统能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口20发生。
[0084]
此外,计算机系统可以经由网络适配器22与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)之类的一个或多个网络24通信。如图所示,网络适配器22通过总线14与计算机系统的其它组件通信,应该理解,尽管未示出,其它硬件和/或软件组件也可以与计算机系统结合使用。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
[0085]
预先理解,尽管本公开可以包括关于云计算的描述,但是本文中记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0086]
特征如下:
[0087]
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
[0088]
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和pda)使用的标准机制来访问。
[0089]
资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关感,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
[0090]
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
[0091]
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资
源使用,从而为所利用服务的提供者和消费者两者提供透明度。
[0092]
服务模型如下:
[0093]
软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
[0094]
平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
[0095]
基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
[0096]
部署模型如下:
[0097]
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
[0098]
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0099]
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
[0100]
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
[0101]
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
[0102]
现在参考图7,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备例如是个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图7中所示的计算设备54a-54n的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算设备通信。
[0103]
现在参考图8,示出了由云计算环境50(图7)提供的一组功能抽象层。应当预先理解,图8中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
[0104]
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
[0105]
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
[0106]
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)规划和履行85提供对云计算资源的预安排和采购,其中根据sla预期未来需求。
[0107]
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及记忆网络训练处理96。
[0108]
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
[0109]
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
[0110]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0111]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读
程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0112]
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
[0113]
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
[0114]
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0115]
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
[0116]
本文所用的术语仅是为了描述特定实施例的目的,而不是要限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。如本文所使用的,术语“或”是包含性运算符,并且可以表示“和/或”,除非上下文明确地或清楚地另外指示。还将理解,术语“包括”、“包含”和/或“具有”在本文中使用时可指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。如本文所使用的,短语“在实施例中”不一定是指相同的实施例,尽管它可以指相同的实施例。如本文所使用的,短语“在一个实施例中”不一定是指同一实施例,尽管它可以指同一实施例。如本文所使用的,短语“在另一实施例中”不一定是指不同的实施例,尽管它可以指不同的实施例。此外,实施例和/或实施例的部件可以彼此自由地组合,除非它们是相互排斥的。
[0117]
在以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等效
物(如果有的话)旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本发明的描述,但是该描述不是穷举的或者将本发明限制为所公开的形式。在不背离本发明范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有各种修改的各种实施例,这些修改适合于所设想的特定用途。
再多了解一些

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

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

相关文献