分布式模型学习的制作方法

文档序号:11935289阅读:175来源:国知局
分布式模型学习的制作方法与工艺

本申请要求于2014年5月12日提交且题为“DISTRIBUTED MODEL LEARNING(分布式模型学习)”的美国临时专利申请No.61/992,166的权益,其公开内容通过援引全部明确纳入于此。

背景

领域

本公开的某些方面一般涉及神经系统工程,并且尤其涉及用于分布式模型学习的系统和方法。



背景技术:

可包括一群互连的人工神经元(即,神经元模型)的人工神经网络是一种计算设备或者表示将由计算设备执行的方法。人工神经网络可具有生物学神经网络中的对应的结构和/或功能。然而,人工神经网络可为其中传统计算技术是麻烦的、不切实际的、或不胜任的某些应用提供创新且有用的计算技术。由于人工神经网络能从观察中推断出功能,因此这样的网络在因任务或数据的复杂度使得通过常规技术来设计该功能较为麻烦的应用中是特别有用的。

概述

在本公开的一个方面,公开了一种学习模型的方法。该方法包括接收来自一个或多个用户的模型更新。该方法还包括基于前一模型和模型更新来计算经更新的模型。该方法进一步包括基于经更新的模型向(诸)用户传送与经更新的模型的子集相关的数据。

在本公开的另一方面,给出了一种用于学习模型的装置。该装置包括存储器以及耦合至该存储器的一个或多个处理器。(诸)处理器被配置成接收来自一个或多个用户的模型更新。该处理器还被配置成基于前一模型和模型更新来计算经更新的模型。该处理器被进一步配置成基于经更新的模型向(诸)用户传送与经更新的模型的子集相关的数据。

在本公开的又一方面,给出了一种用于学习模型的装备。该装备包括用于接收来自一个或多个用户的模型更新的装置。该装备还包括用于基于前一模型和模型更新来计算经更新的模型的装置。该装备进一步包括用于基于经更新的模型向(诸)用户传送与经更新的模型的子集相关的数据的装置。

在本公开的又一方面,给出了一种用于学习模型的计算机程序产品。该计算机程序产品包括其上编码有程序代码的非瞬态计算机可读介质。该程序代码包括用于接收来自一个或多个用户的模型更新的程序代码。该程序代码还包括用于基于前一模型和模型更新来计算经更新的模型的程序代码。该程序代码进一步包括用于基于经更新的模型向(诸)用户传送与经更新的模型的子集相关的数据的程序代码。

在本公开的一个方面,给出了一种学习模型的方法。该方法包括基于共享的推断模型接收来自服务器的数据。该方法还包括基于该模型计算推断。该方法进一步包括基于该推断计算一个或多个模型参数更新。此外,该方法包括基于模型参数更新向服务器传送数据。

在本公开的另一方面,公开了一种用于学习模型的装置。该装置包括存储器以及耦合至该存储器的一个或多个处理器。该处理器被配置成基于共享的推断模型接收来自服务器的数据。该处理器还被配置成基于该模型计算推断。该处理器被进一步配置成基于该推断计算一个或多个模型参数更新。此外,该处理器被配置成基于模型参数更新向服务器传送数据。

在本公开的又一方面,公开了一种用于学习模型的装备。该装备包括用于基于共享的推断模型接收来自服务器的数据的装置。该装备还包括用于基于该模型计算推断的装置。该装备进一步包括用于基于该推断计算一个或多个模型参数更新的装置。此外,该装备包括用于基于模型参数更新向服务器传送数据的装置。

在本公开的又一方面,给出了一种用于学习模型的计算机程序产品。该计算机程序产品包括其上编码有程序代码的非瞬态计算机可读介质。该程序代码包括用于基于共享的推断模型接收来自服务器的数据的程序代码。该程序代码还包括用于基于该模型计算推断的程序代码。该程序代码进一步包括用于基于该推断计算一个或多个模型参数更新的程序代码。此外,该程序代码包括用于基于模型参数更新向服务器传送数据的程序代码。

这已较宽泛地勾勒出本公开的特征和技术优势以便下面的详细描述可以被更好地理解。本公开的附加特征和优点将在下文描述。本领域技术人员应该领会,本公开可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。本领域技术人员还应认识到,这样的等效构造并不脱离所附权利要求中所阐述的本公开的教导。被认为是本公开的特性的新颖特征在其组织和操作方法两方面连同进一步的目的和优点在结合附图来考虑以下描述时将被更好地理解。然而,要清楚理解的是,提供每一幅附图均仅用于解说和描述目的,且无意作为对本公开的限定的定义。

附图简述

在结合附图理解下面阐述的详细描述时,本公开的特征、本质和优点将变得更加明显,在附图中,相同附图标记始终作相应标识。

图1解说了根据本公开的某些方面的示例神经元网络。

图2解说了根据本公开的某些方面的计算网络(神经系统或神经网络)的处理单元(神经元)的示例。

图3解说了根据本公开的某些方面的尖峰定时依赖可塑性(STDP)曲线的示例。

图4解说了根据本公开的某些方面的用于定义神经元模型的行为的正态相和负态相的示例。

图5解说了根据本公开的某些方面的使用通用处理器来设计神经网络的示例实现。

图6解说了根据本公开的某些方面的设计其中存储器可以与个体分布式处理单元对接的神经网络的示例实现。

图7解说了根据本公开的某些方面的基于分布式存储器和分布式处理单元来设计神经网络的示例实现。

图8解说了根据本公开的某些方面的神经网络的示例实现。

图9是解说根据本公开的各方面的用于学习模型的示例性数据流的框图。

图10是解说根据本公开的各方面的用于分类器的示例性架构的框图。

图11是解说根据本公开的各方面的用于学习模型的示例性数据流的框图。

图12是解说根据本公开的各方面的用于生成分类器的示例性数据流的流程图。

图13解说了根据本公开的各方面的用于学习模型的方法。

图14解说了根据本公开的各方面的用于学习模型的方法。

图15解说了根据本公开的各方面的用于生成分类器模型的方法。

图16解说了根据本公开的各方面的用于生成分类器模型的方法。

图17解说了根据本公开的各方面的用于生成分类器模型的方法。

详细描述

以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有的配置。本详细描述包括具体细节以便提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。

基于本教导,本领域技术人员应领会,本公开的范围旨在覆盖本公开的任何方面,不论其是与本公开的任何其他方面相独立地还是组合地实现的。例如,可以使用所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为所阐述的本公开的各个方面的补充或者与之不同的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。

措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。

尽管本文描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。

示例神经系统、训练及操作

图1解说了根据本公开的某些方面的具有多级神经元的示例人工神经系统100。神经系统100可具有神经元级102,该神经元级102通过突触连接网络104(即,前馈连接)来连接到另一神经元级106。为简单起见,图1中仅解说了两级神经元,尽管神经系统中可存在更少或更多级神经元。应注意,一些神经元可通过侧向连接来连接至同层中的其他神经元。此外,一些神经元可通过反馈连接来后向连接至先前层中的神经元。

如图1所解说的,级102中的每一个神经元可以接收可由前级的神经元(未在图1中示出)生成的输入信号108。信号108可表示级102的神经元的输入电流。该电流可在神经元膜上累积以对膜电位进行充电。当膜电位达到其阈值时,该神经元可激发并生成输出尖峰,该输出尖峰将被传递到下一级神经元(例如,级106)。在一些建模办法中,神经元可以连续地向下一级神经元传递信号。该信号通常是膜电位的函数。此类行为可在硬件和/或软件(包括模拟和数字实现,诸如以下所述那些实现)中进行仿真或模拟。

在生物学神经元中,在神经元激发时生成的输出尖峰被称为动作电位。该电信号是相对迅速、瞬态的神经脉冲,其具有约为100mV的振幅和约为1ms的历时。在具有一系列连通的神经元(例如,尖峰从图1中的一级神经元传递至另一级神经元)的神经系统的特定实施例中,每个动作电位都具有基本上相同的振幅和历时,并且因此该信号中的信息可仅由尖峰的频率和数目、或尖峰的时间来表示,而不由振幅来表示。动作电位所携带的信息可由尖峰、发放了尖峰的神经元、以及该尖峰相对于一个或数个其他尖峰的时间来确定。尖峰的重要性可由向各神经元之间的连接所应用的权重来确定,如以下所解释的。

尖峰从一级神经元向另一级神经元的传递可通过突触连接(或简称“突触”)网络104来达成,如图1中所解说的。相对于突触104,级102的神经元可被视为突触前神经元,而级106的神经元可被视为突触后神经元。突触104可接收来自级102的神经元的输出信号(即,尖峰),并根据可调节突触权重来按比例缩放那些信号,其中P是级102的神经元与级106的神经元之间的突触连接的总数,并且i是神经元级的指示符。在图1的示例中,i表示神经元级102并且i+1表示神经元级106。此外,经按比例缩放的信号可被组合以作为级106中每个神经元的输入信号。级106中的每个神经元可基于对应的组合输入信号来生成输出尖峰110。可使用另一突触连接网络(图1中未示出)将这些输出尖峰110传递到另一级神经元。

生物学突触可以仲裁突触后神经元中的兴奋性或抑制性(超极化)动作,并且还可用于放大神经元信号。兴奋性信号使膜电位去极化(即,相对于静息电位增大膜电位)。如果在某个时间段内接收到足够的兴奋性信号以使膜电位去极化到高于阈值,则在突触后神经元中发生动作电位。相反,抑制性信号一般使膜电位超极化(即,降低膜电位)。抑制性信号如果足够强则可抵消掉兴奋性信号之和并阻止膜电位到达阈值。除了抵消掉突触兴奋以外,突触抑制还可对自发活跃神经元施加强力的控制。自发活跃神经元是指在没有进一步输入的情况下(例如,由于其动态或反馈而)发放尖峰的神经元。通过压制这些神经元中的动作电位的自发生成,突触抑制可对神经元中的激发模式进行定形,这一般被称为雕刻。取决于期望的行为,各种突触104可充当兴奋性或抑制性突触的任何组合。

神经系统100可由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件、由处理器执行的软件模块、或其任何组合来仿真。神经系统100可用在大范围的应用中,诸如图像和模式识别、机器学习、电机控制、及类似应用等。神经系统100中的每一神经元可被实现为神经元电路。被充电至发起输出尖峰的阈值的神经元膜可被实现为例如对流经其的电流进行积分的电容器。

在一方面,电容器作为神经元电路的电流积分器件可被除去,并且可使用较小的忆阻器元件来替代它。这种办法可应用于神经元电路中,以及其中大容量电容器被用作电流积分器的各种其他应用中。另外,每个突触104可基于忆阻器元件来实现,其中突触权重变化可与忆阻器电阻的变化有关。使用纳米特征尺寸的忆阻器,可显著地减小神经元电路和突触的面积,这可使得实现大规模神经系统硬件实现更为切实可行。

对神经系统100进行仿真的神经处理器的功能性可取决于突触连接的权重,这些权重可控制神经元之间的连接的强度。突触权重可存储在非易失性存储器中以在掉电之后保留该处理器的功能性。在一方面,突触权重存储器可实现在与主神经处理器芯片分开的外部芯片上。突触权重存储器可与神经处理器芯片分开地封装成可更换的存储卡。这可向神经处理器提供多种多样的功能性,其中特定功能性可基于当前附连至神经处理器的存储卡中所存储的突触权重。

图2解说了根据本公开的某些方面的计算网络(例如,神经系统或神经网络)的处理单元(例如,神经元或神经元电路)202的示例性示图200。例如,神经元202可对应于来自图1的级102和106的任何神经元。神经元202可接收多个输入信号2041-204N,这些输入信号可以是该神经系统外部的信号、或是由同一神经系统的其他神经元所生成的信号、或这两者。输入信号可以是电流、电导、电压、实数值的和/或复数值的。输入信号可包括具有定点或浮点表示的数值。可通过突触连接将这些输入信号递送到神经元202,突触连接根据可调节突触权重2061-206N(W1-WN)对这些信号进行按比例缩放,其中N可以是神经元202的输入连接总数。

神经元202可组合这些经按比例缩放的输入信号,并且使用组合的经按比例缩放的输入来生成输出信号208(即,信号Y)。输出信号208可以是电流、电导、电压、实数值的和/或复数值的。输出信号可以是具有定点或浮点表示的数值。随后该输出信号208可作为输入信号传递至同一神经系统的其他神经元、或作为输入信号传递至同一神经元202、或作为该神经系统的输出来传递。

处理单元(神经元)202可由电路来仿真,并且其输入和输出连接可由具有突触电路的电连接来仿真。处理单元202及其输入和输出连接也可由软件代码来仿真。处理单元202还可由电路来仿真,而其输入和输出连接可由软件代码来仿真。在一方面,计算网络中的处理单元202可以是模拟电路。在另一方面,处理单元202可以是数字电路。在又一方面,处理单元202可以是具有模拟和数字组件两者的混合信号电路。计算网络可包括任何前述形式的处理单元。使用这样的处理单元的计算网络(神经系统或神经网络)可用在大范围的应用中,诸如图像和模式识别、机器学习、电机控制、及类似应用等。

在神经网络的训练过程期间,突触权重(例如,来自图1的权重和/或来自图2的权重2061-206N)可用随机值来初始化并根据学习规则而被增大或减小。本领域技术人员将领会,学习规则的示例包括但不限于尖峰定时依赖可塑性(STDP)学习规则、Hebb规则、Oja规则、Bienenstock-Copper-Munro(BCM)规则等。在一些方面,这些权重可稳定或收敛至两个值(即,权重的双峰分布)之一。该效应可被用于减少每个突触权重的位数、提高从/向存储突触权重的存储器读取和写入的速度、以及降低突触存储器的功率和/或处理器消耗。

突触类型

在神经网络的硬件和软件模型中,突触相关功能的处理可基于突触类型。突触类型可以是非可塑突触(权重和延迟没有改变)、可塑突触(权重可改变)、结构化延迟可塑突触(权重和延迟可改变)、全可塑突触(权重、延迟和连通性可改变)、以及基于此的变型(例如,延迟可改变,但在权重或连通性方面没有改变)。多种类型的优点在于处理可以被细分。例如,非可塑突触不会使用待执行的可塑性功能(或等待此类功能完成)。类似地,延迟和权重可塑性可被细分成可一起或分开地、顺序地或并行地运作的操作。不同类型的突触对于适用的每一种不同的可塑性类型可具有不同的查找表或公式以及参数。因此,这些方法将针对该突触的类型来访问相关的表、公式或参数。

还进一步牵涉到以下事实:尖峰定时依赖型结构化可塑性可独立于突触可塑性地来执行。结构化可塑性即使在权重幅值没有改变的情况下(例如,如果权重已达最小或最大值、或者其由于某种其他原因而不被改变)也可被执行,因为结构化可塑性(即,延迟改变的量)可以是pre-post(前-后)尖峰时间差的直接函数。替换地,结构化可塑性可被设为权重变化量的函数或者可基于与权重或权重变化的界限有关的条件来设置。例如,突触延迟可仅在权重变化发生时或者在权重到达0的情况下才改变,但在这些权重为最大值时则不改变。然而,具有独立函数以使得这些过程能被并行化从而减少存储器访问的次数和交叠可能是有利的。

突触可塑性的确定

神经元可塑性(或简称“可塑性”)是大脑中的神经元和神经网络响应于新的信息、感官刺激、发展、损坏、或机能障碍而改变其突触连接和行为的能力。可塑性对于生物学中的学习和记忆、以及对于计算神经元科学和神经网络是重要的。已经研究了各种形式的可塑性,诸如突触可塑性(例如,根据Hebbian理论)、尖峰定时依赖可塑性(STDP)、非突触可塑性、活跃性依赖可塑性、结构化可塑性和自稳态可塑性。

STDP是调节神经元之间的突触连接的强度的学习过程。连接强度是基于特定神经元的输出与收到输入尖峰(即,动作电位)的相对定时来调节的。在STDP过程下,如果至某个神经元的输入尖峰平均而言倾向于紧挨在该神经元的输出尖峰之前发生,则可发生长期增强(LTP)。于是使得该特定输入在一定程度上更强。另一方面,如果输入尖峰平均而言倾向于紧接在输出尖峰之后发生,则可发生长期抑压(LTD)。于是使得该特定输入在一定程度上更弱,并由此得名“尖峰定时依赖可塑性”。因此,使得可能是突触后神经元兴奋原因的输入甚至在将来作出贡献的可能性更大,而使得不是突触后尖峰的原因的输入在将来作出贡献的可能性更小。该过程继续,直至初始连接集合的子集保留,而所有其他连接的影响减小至无关紧要的水平。

由于神经元一般在其许多输入都在一短时段内发生(即,累积性足以引起输出)时产生输出尖峰,因此通常保留下来的输入子集包括倾向于在时间上相关的那些输入。另外,由于在输出尖峰之前发生的输入被加强,因此提供对相关性的最早充分累积性指示的那些输入将最终变成至该神经元的最后输入。

STDP学习规则可因变于突触前神经元的尖峰时间tpre与突触后神经元的尖峰时间tpost之间的时间差(即,t=tpost-tpre)来有效地适配将该突触前神经元连接到该突触后神经元的突触的突触权重。STDP的典型公式化是若该时间差为正(突触前神经元在突触后神经元之前激发)则增大突触权重(即,增强该突触),以及若该时间差为负(突触后神经元在突触前神经元之前激发)则减小突触权重(即,抑压该突触)。

在STDP过程中,突触权重随时间推移的改变可通常使用指数式衰退来达成,如由下式给出的:

其中k+和分别是针对正和负时间差的时间常数,a+和a-是对应的比例缩放幅值,并且μ是可应用于正时间差和/或负时间差的偏移。

图3解说了根据STDP,突触权重作为突触前(presynaptic)和突触后(postsynaptic)尖峰的相对定时的函数而改变的示例性示图300。如果突触前神经元在突触后神经元之前激发,则对应的突触权重可被增大,如曲线图300的部分302中所解说的。该权重增大可被称为该突触的LTP。从曲线图部分302可观察到,LTP的量可因变于突触前和突触后尖峰时间之差而大致呈指数式地下降。相反的激发次序可减小突触权重,如曲线图300的部分304中所解说的,从而导致该突触的LTD。

如图3中的曲线图300中所解说的,可向STDP曲线图的LTP(因果性)部分302应用负偏移μ。x轴的交越点306(y=0)可被配置成与最大时间滞后重合以考虑到来自层i-1的各因果性输入的相关性。在基于帧的输入(即,呈特定历时的包括尖峰或脉冲的帧的形式的输入)的情形中,可计算偏移值μ以反映帧边界。该帧中的第一输入尖峰(脉冲)可被视为要么如直接由突触后电位所建模地随时间衰退,要么在对神经状态的影响的意义上随时间衰退。如果该帧中的第二输入尖峰(脉冲)被视为与特定时间帧相关或有关,则该帧之前和之后的有关时间可通过使STDP曲线的一个或多个部分偏移以使得这些有关时间中的值可以不同(例如,对于大于一个帧为负,而对于小于一个帧为正)来在该时间帧边界处被分开并在可塑性意义上被不同地对待。例如,负偏移μ可被设为偏移LTP以使得曲线实际上在大于帧时间的pre-post时间处变得低于零并且它由此为LTD而非LTP的一部分。

神经元模型及操作

存在一些用于设计有用的尖峰发放神经元模型的一般原理。良好的神经元模型在以下两个计算态相(regime)方面可具有丰富的潜在行为:重合性检测和功能性计算。此外,良好的神经元模型应当具有允许时间编码的两个要素:输入的抵达时间影响输出时间,以及重合性检测能具有窄时间窗。最后,为了在计算上是有吸引力的,良好的神经元模型在连续时间上可具有闭合形式解,并且具有稳定的行为,包括在靠近吸引子和鞍点之处。换言之,有用的神经元模型是可实践且可被用于建模丰富的、现实的且生物学一致的行为并且可被用于对神经电路进行工程设计和反向工程两者的神经元模型。

神经元模型可取决于事件,诸如输入抵达、输出尖峰或其他事件,无论这些事件是内部的还是外部的。为了达成丰富的行为库,能展现复杂行为的状态机可能是期望的。如果事件本身的发生在撇开输入贡献(若有)的情况下能影响状态机并约束该事件之后的动态,则该系统的将来状态并非仅是状态和输入的函数,而是状态、事件和输入的函数。

在一方面,神经元n可被建模为尖峰带漏泄积分激发神经元,其膜电压vn(t)由以下动态来支配:

其中α和β是参数,wm,n是将突触前神经元m连接至突触后神经元n的突触的突触权重,以及ym(t)是神经元m的尖峰发放输出,其可根据Δtm,n被延迟达树突或轴突延迟才抵达神经元n的胞体。

应注意,从建立了对突触后神经元的充分输入的时间直至该突触后神经元实际上激发的时间存在延迟。在动态尖峰发放神经元模型(诸如Izhikevich简单模型)中,如果在去极化阈值vt与峰值尖峰电压vpeak之间有差量,则可引发时间延迟。例如,在该简单模型中,神经元胞体动态可由关于电压和恢复的微分方程对来支配,即:

其中v是膜电位,u是膜恢复变量,k是描述膜电位v的时间尺度的参数,a是描述恢复变量u的时间尺度的参数,b是描述恢复变量u对膜电位v的阈下波动的敏感度的参数,vr是膜静息电位,I是突触电流,以及C是膜的电容。根据该模型,神经元被定义为在v>vpeak时发放尖峰。

Hunzinger Cold模型

Hunzinger Cold神经元模型是能再现丰富多样的各种神经行为的最小双态相尖峰发放线性动态模型。该模型的一维或二维线性动态可具有两个态相,其中时间常数(以及耦合)可取决于态相。在阈下态相中,时间常数(按照惯例为负)表示漏泄通道动态,其一般作用于以生物学一致的线性方式使细胞返回到静息。阈上态相中的时间常数(按照惯例为正)反映抗漏泄通道动态,其一般驱动细胞发放尖峰,而同时在尖峰生成中引发等待时间。

如图4中所解说的,该模型400的动态可被划分成两个(或更多个)态相。这些态相可被称为负态相402(也可互换地称为带漏泄积分激发(LIF)态相,勿与LIF神经元模型混淆)以及正态相404(也可互换地称为抗漏泄积分激发(ALIF)态相,勿与ALIF神经元模型混淆)。在负态相402中,状态在将来事件的时间趋向于静息(v-)。在该负态相中,该模型一般展现出时间输入检测性质及其他阈下行为。在正态相404中,状态趋向于尖峰发放事件(vs)。在该正态相中,该模型展现出计算性质,诸如取决于后续输入事件而引发发放尖峰的等待时间。在事件方面对动态进行公式化以及将动态分成这两个态相是该模型的基础特性。

线性双态相二维动态(对于状态v和u)可按照惯例定义为:

其中qρ和r是用于耦合的线性变换变量。

符号ρ在本文中用于标示动态态相,在讨论或表达具体态相的关系时,按照惯例对于负态相和正态相分别用符号“-”或“+”来替换符号ρ。

模型状态由膜电位(电压)v和恢复电流u来定义。在基本形式中,态相在本质上是由模型状态来决定的。该精确和通用的定义存在一些细微却重要的方面,但目前考虑该模型在电压v高于阈值(v+)的情况下处于正态相404中,否则处于负态相402中。

态相相关时间常数包括负态相时间常数τ-和正态相时间常数τ+。恢复电流时间常数τu通常是与态相无关的。出于方便起见,负态相时间常数τ-通常被指定为反映衰退的负量,从而用于电压演变的相同表达式可用于正态相,在正态相中指数和τ+将一般为正,正如τu那样。

这两个状态元素的动态可在发生事件之际通过使状态偏离其零倾线(null-cline)的变换来耦合,其中变换变量为:

qρ=-τρβu-vρ (7)

r=δ(v+ε) (8)

其中δ、ε、β和v-、v+是参数。vρ的两个值是这两个态相的参考电压的基数。参数v-是负态相的基电压,并且膜电位在负态相中一般将朝向v-衰退。参数v+是正态相的基电压,并且膜电位在正态相中一般将趋向于背离v+

v和u的零倾线分别由变换变量qρ和r的负数给出。参数δ是控制u零倾线的斜率的比例缩放因子。参数ε通常被设为等于-v-。参数β是控制这两个态相中的v零倾线的斜率的电阻值。τρ时间常数参数不仅控制指数式衰退,还单独地控制每个态相中的零倾线斜率。

该模型可被定义为在电压v达到值vS时发放尖峰。随后,状态可在发生复位事件(其可以与尖峰事件完全相同)之际被复位:

u=u+Δu (10)

其中和Δu是参数。复位电压通常被设为v-

依照瞬时耦合的原理,闭合形式解不仅对于状态是可能的(且具有单个指数项),而且对于到达特定状态的时间也是可能的。闭合形式状态解为:

因此,模型状态可仅在发生事件之际被更新,诸如在输入(突触前尖峰)或输出(突触后尖峰)之际被更新。还可在任何特定时间(无论是否有输入或输出)执行操作。

而且,依照瞬时耦合原理,突触后尖峰的时间可被预计,因此到达特定状态的时间可提前被确定而无需迭代技术或数值方法(例如,欧拉数值方法)。给定了先前电压状态v0,直至到达电压状态vf之前的时间延迟由下式给出:

如果尖峰被定义为发生在电压状态v到达vS的时间,则从电压处于给定状态v的时间起测量的直至发生尖峰前的时间量或即相对延迟的闭合形式解为:

其中通常被设为参数v+,但其他变型可以是可能的。

模型动态的以上定义取决于该模型是在正态相还是负态相中。如所提及的,耦合和态相ρ可基于事件来计算。出于状态传播的目的,态相和耦合(变换)变量可基于在上一(先前)事件的时间的状态来定义。出于随后预计尖峰输出时间的目的,态相和耦合变量可基于在下一(当前)事件的时间的状态来定义。

存在对该Cold模型、以及在时间上执行模拟、仿真、或建模的若干可能实现。这包括例如事件-更新、步阶-事件更新、以及步阶-更新模式。事件更新是其中基于事件或“事件更新”(在特定时刻)来更新状态的更新。步阶更新是以间隔(例如,1ms)来更新模型的更新。这不一定利用迭代方法或数值方法。通过仅在事件发生于步阶处或步阶间的情况下才更新模型或即通过“步阶-事件更新”,基于事件的实现以有限的时间分辨率在基于步阶的模拟器中实现也是可能的。

尽管本公开已描述了尖峰发放神经元、神经元模型和网络的各个示例,但本公开并不如此受限。确切而言,非尖峰发放神经元和网络也可被用来实现本公开的某些方面。

分布式模型学习和共用特征上的定制分类器

本公开的各方面涉及用于以分布式松散协调的方式持续学习模型、同时设备也使用该模型的过程。在一个示例性方面,深度神经网络(DNN)可被用于移动设备上的图像的对象识别,其中移动设备将信息发送回中央服务器以继续完善模型。为了易于解释,示例性数据流和其它描述被应用于图像和对象识别。然而,本公开并不如此限定,而是任何传感形态都可替换或附加地被利用。

本公开的进一步方面涉及生成分类器模型。该分类器模型可在共用特征集上被定制。在一个示例性方面,中央服务器可被配置成接收来自一个或多个用户设备的标记示例全集。用户设备可包括个人计算机(PC)、电视机、视频游戏系统、移动设备(诸如膝上型设备、平板PC、智能电话或其它便携式电子设备)。

服务器可被配置有与数据集相关的统计特征集。在一些方面,该数据集可以例如对应于特定传感形态(图像、声音、取向、位置等)。服务器可以基于所接收到的标记示例全集和统计特征集来生成分类器。

图5解说了根据本公开的某些方面的使用通用处理器502的前述学习模型、生成分类器模型、和/或更新分类器集合的示例实现500。与计算网络(神经网络)相关联的变量(神经信号)、突触权重、系统参数,延迟,频率槽信息参数更新,离群者信息,模型更新,特征信息,示例和/或标记信息可被存储在存储器块504中,而在通用处理器502处执行的指令可从程序存储器506加载。在本公开的一方面,被加载到通用处理器502中的指令可包括用于以下操作的代码:接收来自一个或多个用户的模型更新,基于前一模型和模型更新来计算经更新的模型,和/或基于经更新的模型向一个或多个用户传送与经更新的模型相关的数据。

在本公开的另一方面,被加载到通用处理器502中的指令可包括用于以下操作的代码:基于共享的推断模型接收来自服务器的数据,基于接收到的数据来生成包括一个或多个模型参数的模型,基于该模型计算推断,基于该推断来计算一个或多个模型参数更新,和/或基于模型参数更新向服务器传送数据。

在本公开的又一方面,被加载到通用处理器502中的指令可包括用于以下操作的代码:向第一数据集应用第一分类器集合,和/或基于第一分类器集合的输出或者第一分类器集合的应用的性能测量中的一者或多者向远程设备请求分类器更新。

在本公开的又一方面,被加载到通用处理器502中的指令可包括用于以下操作的代码:向多个用户分发共用特征模型,在共用特征模型的顶部训练多个分类器,和/或将多个分类器中的第一分类器分发给多个用户中的第一用户并且将多个分类器中的第二分类器分发给多个用户中的第二用户。

图6解说了根据本公开的某些方面的前述学习模型和/或生成分类器模型的示例实现600,其中存储器602可以经由互连网络604与计算网络(神经网络)的个体(分布式)处理单元(神经处理器)606对接。与计算网络(神经网络)相关联的变量(神经信号)、突触权重、系统参数,延迟,频率槽信息参数更新,离群者信息,模型更新,特征信息、示例和/或标记信息可被存储在存储器602中,并且可从存储器602经由互连网络604的连接被加载到每个处理单元(神经处理器)606中。在本公开的一方面,处理单元606可被配置成接收来自一个或多个用户的模型更新,基于前一模型和模型更新来计算经更新的模型,和/或基于经更新的模型向一个或多个用户传送与经更新的模型相关的数据。

在本公开的另一方面,处理单元606可被配置成基于共享的推断模型接收来自服务器的数据,基于接收到的数据来生成包括一个或多个模型参数的模型,基于该模型计算推断,基于该推断来计算一个或多个模型参数更新,和/或基于模型参数更新向服务器传送数据。

在本公开的又一方面,处理单元606可被配置成向第一数据集应用第一分类器集合,和/或基于第一分类器集合的输出或者第一分类器集合的应用的性能测量中的一者或多者向远程设备请求分类器更新。

在本公开的又一方面,处理单元606可被配置成向多个用户分发共用特征模型,在共用特征模型的顶部训练多个分类器,和/或将多个分类器中的第一分类器分发给多个用户中的第一用户并且将多个分类器中的第二分类器分发给多个用户中的第二用户。

图7解说了前述学习模型和/或生成分类器模型的示例实现700。如图7中所解说的,一个存储器组702可与计算网络(神经网络)的一个处理单元704直接对接。每一个存储器组702可存储与对应的处理单元(神经处理器)704相关联的变量(神经信号)、突触权重、和/或系统参数,延迟,频率槽信息参数更新,离群者信息,模型更新,特征信息,示例和/或标记信息。在本公开的一方面,处理单元704可被配置成接收来自一个或多个用户的模型更新,基于前一模型和模型更新来计算经更新的模型,和/或基于经更新的模型向一个或多个用户传送与经更新的模型相关的数据。

在本公开的进一步方面,处理单元704可被配置成基于共享的推断模型接收来自服务器的数据,基于接收到的数据来生成包括一个或多个模型参数的模型,基于该模型计算推断,基于该推断来计算一个或多个模型参数更新,和/或基于模型参数更新向服务器传送数据。

在本公开的又一方面,处理单元704可被配置成向第一数据集应用第一分类器集合,和/或基于第一分类器集合的输出或者第一分类器集合的应用的性能测量中的一者或多者向远程设备请求分类器更新。

在本公开的又一方面,处理单元704可被配置成向多个用户分发共用特征模型,在共用特征模型的顶部训练多个分类器,和/或将多个分类器中的第一分类器分发给多个用户中的第一用户并且将多个分类器中的第二分类器分发给多个用户中的第二用户。

图8解说了根据本公开的某些方面的神经网络800的示例实现。如图8中所解说的,神经网络800可具有多个局部处理单元802,它们可执行本文所描述的方法的各种操作。每个局部处理单元802可包括存储该神经网络的参数的局部状态存储器804和局部参数存储器806。另外,局部处理单元802可具有用于存储局部模型程序的局部(神经元)模型程序(LMP)存储器808、用于存储局部学习程序的局部学习程序(LLP)存储器810、以及局部连接存储器812。此外,如图8中所解说的,每个局部处理单元802可与用于提供针对该局部处理单元的各局部存储器的配置的配置处理器单元814对接,并且与提供各局部处理单元802之间的路由的路由连接处理单元816对接。

在一种配置中,神经元模型被配置成用于接收来自一个或多个用户的模型更新,基于前一模型和模型更新来计算经更新的模型,和/或基于经更新的模型向一个或多个用户传送与经更新的模型相关的数据。神经元模型包括接收装置、计算装置、和传送装置。在一个方面,接收装置、计算装置、和/或传送装置可以是被配置成执行所叙述的功能的通用处理器502、程序存储器506、存储器块504、存储器602、互连网络604、处理单元606、处理单元704、局部处理单元802、和/或路由连接处理单元816。

在另一配置中,神经元模型被配置成用于基于共享的推断模型接收来自服务器的数据,基于该模型计算推断,基于该推断来计算一个或多个模型参数更新,和/或基于模型参数更新向服务器传送数据。神经元模型包括接收装置、计算装置、和传送装置。在一个方面,接收装置、用于计算推断的装置、用于计算模型参数更新的装置、和/或传送装置可以是被配置成执行所叙述的功能的通用处理器502、程序存储器506、存储器块504、存储器602、互连网络604、处理单元606、处理单元704、局部处理单元802、和/或路由连接处理单元816。

在又一配置中,神经元模型被配置成用于向第一数据集应用第一分类器集合,和/或基于第一分类器集合的输出或者第一分类器集合的应用的性能测量中的一者或多者向远程设备请求分类器更新。神经元模型包括应用装置和请求装置。在一个方面,应用装置和/或请求装置可以是被配置成执行所叙述的功能的通用处理器502、程序存储器506、存储器块504、存储器602、互连网络604、处理单元606、处理单元704、局部处理单元802、和/或路由连接处理单元816。

在又一配置中,神经元模型被配置成用于向各用户分发共用特征模型,在共用特征模型的顶部训练各分类器,和/或将这些分类器中的第一分类器分发给第一用户并且将第二分类器分发给第二用户。该神经元模型包括:用于分发共用特征模型的装置,训练装置,以及用于将多个分类器中的第一分类器分发给第一用户并且将第二分类器分发给多个用户中的第二用户的装置(“用于分发分类器的装置”)。在一个方面,用于分发共用特征模型的装置、训练装置和/或用于分发分类器的装置可以是被配置成执行所叙述的功能的通用处理器502、程序存储器506、存储器块504、存储器602、互连网络604、处理单元606、处理单元704、局部处理单元802、和/或路由连接处理单元816。

在进一步配置中,神经元模型被配置成用于从第一指定用户向第一标记示例全集应用共用特征图集合以学习第一分类器模型,从第二指定用户向第二标记示例全集应用该共用特征图集合以学习第二分类器模型,和/或分发分类器模型。该神经元模型包括:用于从第一指定用户向第一标记示例全集应用共用特征图集合以学习第一分类器模型的装置,用于从第二指定用户向第二标记示例全集应用该共用特征图集合以学习第二分类器模型的装置,以及分发装置。在一个方面,用于从第一指定用户向第一标记示例全集应用共用特征图集合以学习第一分类器模型的装置、用于从第二指定用户向第二标记示例全集应用共用特征图集合以学习第二分类器模型的装置、和/或分发装置可以是被配置成执行所叙述的功能的通用处理器502、程序存储器506、存储器块504、存储器602、互连网络604、处理单元606、处理单元704、局部处理单元802、和/或路由连接处理单元816。

在另一配置中,前述装置可以是被配置成执行由前述装置所叙述的功能的任何模块或任何装置。

根据本公开的某些方面,每个局部处理单元802可被配置成基于神经网络的一个或多个期望功能特征来确定神经网络的参数,以及随着所确定的参数被进一步适配、调谐和更新来使这一个或多个功能特征朝着期望的功能特征发展。

图9是解说根据本公开的各方面的用于学习模型的示例性数据流900的框图。参照图9,在框902,可训练神经网络以学习具有初始权重W0的模型。在一些方面,神经网络可被训练成学习用于训练图像集合上的对象识别的模型。神经网络例如可以包括深度神经网络(DNN)。DNN是具有多个隐藏层的神经网络。

在框904,可将初始模型权重(也被称为“模型”)W0推出或分发给用户(例如,移动设备(诸如智能电话)、或其它设备)或其它实体。在一些方面,模型可被广泛地分发(例如,亿或十亿数量级的设备)。

在框906和908,每个移动设备可使用模型W0来执行特定任务。例如,在一些示例中,模型W0可提供对移动设备上的数据的分类。例如,模型W0可以标识和/或标记用于设备用户的照片中的对象。在一些方面,该对象可以是使用模型W0来自动标识或标记的。另外,每个移动设备可以在拍摄照片时学习模型参数更新,或者在一些情形中,在预览照片时,移动设备i还可计算和累积模型参数更新ΔW0,i。在一些方面,设备i可以仅使用分布式模型W0的参数(例如,权重)来进行推断,并且可以不在本地应用其更新。

参数更新ΔW0,i可按数种方式来计算。例如,参数更新ΔW0,i可以例如通过提示用户进行标记、并且使用反向传播或以模型中的一层作为目标达一时段、并且基于自动编码器目标函数计算该层的权重梯度来计算。当然,也可使用其它类型的目标函数。例如,在一些方面,还可使用稀疏自动编码器、收缩自动编码器、降噪自动编码器目标函数以及类似目标函数。此类目标函数可用正则化惩罚来最小化重构。参数更新还可使用无监督苏醒-休眠过程或其它更新技术来计算。

在框910,移动设备(例如,智能电话)可发送它们的模型权重更新ΔW0,i以供经由中央服务器/中枢收集。在一些方面,该模型权重更新可按周期性基础(诸如,每天、每周或每月)发送给中央服务器。当然,这仅是示例性的并且不是限定性的。例如,在一些方面,移动设备可以响应于来自服务器的请求(例如,服务器可轮询更新)而发送回更新。在另一示例中,移动设备可以响应于服务器请求或者结合周期性调度的更新来发送更新。在又一示例中,这些更新可以是基于训练示例的累积(例如,自最后提供的更新以来拍摄一段时间的照片或者自最后提供的更新以来拍摄数个照片)而被发送回的。

在框912,中央服务器/中枢可进而基于从移动设备接收到的模型权重更新ΔW0,i来计算新模型W1

在一些方面,可在框914经由验证过程来验证新模型。在框916,可向移动设备用户推出或分发新模型W1。在框918和920,每个移动设备可使用模型W1来执行特定任务。随后,该过程可被重复以进一步更新模型。

计算模型更新

经更新的模型可用各种方式来计算。例如,在一些方面,经更新的模型可如下计算:

其中n是用户更新的数目,并且η是学习参数。

在一些方面,权重更新可以是预归一化的。例如,权重更新可通过在发送回权重更新之前学习的数个照片来预归一化(划分)。这可提供模型权重的直接平均。

在一些方面,这些更新也可以被加权。在一个示例中,权重更新可因变于pi被加权,pi为用来计算ΔW0,i的图像数目。由此,例如,来自拍摄数百张照片的用户的权重更新可具有比来自仅拍摄一张照片的用户的权重更新更大的影响。相应地,在该修改下,经更新的模型可被计算为:

在经加权的更新的情形中,可能期望防范用户的过加权。也就是说,可能期望防范例如拍摄不感兴趣的照片(例如,众多白墙的照片)的用户、来自个体用户的过表示、以及尝试故意使模型降级的攻击者。一种办法将是在运行权重更新之前将照片的数目pi设上限或限定到1≤pi≤pmax,或者等同地,pi←min(pi,pmax)。在该情形中,可使用来自多个用户(例如,所有用户或者其部分,诸如同等群)的权重更新的聚集或较大数目的权重更新来达到平均并且防范来自攻击者的权重更新。进一步,具有较大元素值的权重更新ΔWk,i可以被过滤掉或归一化。

模型验证

由于推出或分发给用户的模型除学习新模型更新之外还可支持活跃推断,因此验证经更新的模型会是有益的。例如,在一些方面,模型性能可被验证以确保新学习的权重不会使推断性能过度降级。另一方面,在推断性能被过度降级时,可发起纠正动作。

在一些方面,可对验证数据集测量经更新的模型性能。在一个示例中,可通过计算对象识别的准确度或F-score(F分数)来测量经更新的模型性能。在该示例中,经更新的模型可以仅在验证性能未降低达大于预定量(例如,所定义的百分比或固定差值)的情况下被分发或推出。如果性能确实降低达大于目标量,则可实现纠正测量。例如,在一些方面,模型更新可被无视达一时段(例如,达该轮),通知可被发送给用户(例如,以重置它们的△权重和/或使用当前模型或前一模型)。

在一些方面,例如,如以下所述的离群者检测器可标识用户的权重中要移除/忽略的子集。经更新的模型随后可基于剩余的权重来重新计算。经更新的模型还可遭受重新测试和验证过程。如果该模型仍不满足目标度量,则可使用附加或更多限制性离群者过滤器。

在一些方面,可使用梯度方向上的线搜索。例如,这可通过使用不同学习速率来计算若干潜在的经更新模型并且使用具有最佳验证性能的模型、具有满足目标验证性能阈值的最大学习速率的模型、或者因变于验证性能结果来选择的模型来完成。

新的或者经更新的模型还可包括使用前一模型来推断和使用新模型来计算权重更新的指示。这可允许学习以在将降低模型性能而不影响推断性能的方向上探索数个步骤。

在其它方面,用户设备可维持两个模型(例如,W0和W1)。例如,用户设备可维持一个模型(例如,W0)以及来自服务器的对应于模型更新(例如,W1)的△。由于两个模型可能在欧几里得距离上靠近,因此设备可使用比在存储两个分开的模型中使用的存储器少的存储器来维持两个模型。在该办法中,在数个步骤之后,如果模型性能改进到新的较佳性能点,则在使用该新模型的指示下该模型被推出。如果模型性能并未改进,则可采用一个或多个纠正动作(例如,上述的纠正动作)。

另外,可执行对验证数据集的完整性检查以确保验证数据集没有变旧(例如,丢失正在驱动特征学习和在恰当的情况下更新验证数据集的新对象(诸如新电话、汽车等))。

离群者检测

在一些配置中,可以可任选地包括离群者检测器过滤器以检测具有指示问题或潜在攻击的重复权重更新的个体权重更新或用户/设备。离群者过滤器可对照权重更新的集群来测试权重更新。例如,可计算给定权重值的更新的分布。如果权重更新超过标准偏差的目标数目,则其可被标识为离群者。

类似地,当使用以上所引述的线搜索时,梯度矢量方向应当指向本地最小值。如果用户梯度的内积和集群平均梯度低于阈值,则它可被标记为离群者。如果梯度的幅度或梯度的元素超过集群的标准偏差的数目,则其也可被标记为离群者。可使用其他统计测试。另外,集群和分布可以包括或不包括作为离群者的测试下梯度的情况下来计算。

如果给定梯度更新被注释为离群者,则它可对于当前一轮的权重更新不被考虑或者可被给予更新中的较小加权。如果用户被标记为重复地提供离群者权重更新,则这些更新可被标记以供进一步研究或者用户可被永久地标记为可能有意或无意地攻击模型准确度的用户。在一些方面,被标记(flagged)的用户可使它们的权重更新以比未被标记(non-flagged)的用户小的贡献被添加,例如,经更新的模型可被计算为:

其中γ<1以针对被标记的用户提供较小的贡献。替换地,这些权重可以从更新中排除(例如,γ=0)。

相反,离群者检测器可辅助基于更新颖的图像和/或包含更新颖特征的图像来确定更新。离群者检测器还可辅助标识提供此类新颖图像的用户。进一步,在标识新颖图像和/或用户时,离群者标识符可降低那些图像、用户和/或特征的权重。

架构更新

经更新的模型可包括架构更新。由于模型可被用于在学习继续时进行任务推断,因此初始模型容量基于初始训练数据和设备特性来调整大小以使得训练数据不被过拟合会是有益的。然而,随着分布式学习进行,性能可受到模型容量的限制。同时,在模型学习时,最低层可开始收敛到它们能学习的事物(例如,第一层中的Gabor型边缘检测器)。那些层中的附加训练可具有受限潜力。作为应对,模型可生长和/或收缩。

在一种办法中,可以监视计算和验证阶段期间的模型性能以确定对于当前模型容量是否存在收敛。收敛度量包括跟踪验证集上的模型性能以确定该性能是否已饱和达目标数目的历元,或者查看权重更新的特征(诸如权重更新的幅度、大于阈值的元素数目的稀疏性、和/或梯度方向的相干性)。训练历元和/或训练示例的数目也可被用来确定模型生长和/或收缩是否将是有益的。

例如,如果指示模型生长,则一个或多个现有层中的神经元数目可被增大,或者一个或多个附加层可被添加到模型。新神经元和/或级可按若干方式之一添加。

在一种办法中,所添加的架构(例如,神经元和/或层)可被添加以使得不具有即时影响。例如,对层中新节点的权重可被配置有零(0)值和/或新层可被配置有形成恒等函数的一组权重。接着,将开始后续学习历元以学习经完善的权重。

在另一办法中,可按上述办法添加新层,并且随后可在中央数据训练集上实现训练(监督和/或未监督训练)以获得更佳的初始权重集。

尽管以上办法允许生长模型,但相同的指示可被用来使模型的易塑/可学习部分收缩。例如,底层可被冻结,从而权重更新仅针对较高层来计算和传送。

分类器-特征学习器拆分

图10是解说根据本公开的各方面的用于分类器的示例性架构1000的框图。构造分类器中的一个挑战在于如何添加或减去类别标记,或者甚至构建更复杂的推断引擎而无需从最开始开启学习。一个观察在于诸如深度神经网络之类的模型可被视为较低层中的学习特征以及较高层中的那些特征上的推断引擎。进一步,特征学习可大部分获益于大量的训练示例,而推断引擎可在它正使用高质量特征的情况下使用少很多的示例来学习。使用该观察,分布式学习可学习关于特征的模型更新(诸如权重)并且使用图10中所示的中央数据集在顶层中每次从最开始重新训练分类器。

作为示例,在用于图10的分类器的示例性架构1000中,设备提供输入数据1002(例如,可拍摄照片或提供其它传感输入数据)。模型权重更新可以基于输入数据1002来计算以提供分布式学习的特征1004作为DNN的特征层。设备随后可向中央学习的推断引擎1006发送权重更新(周期性或以其它方式),并且该特征模型可以基于这些权重更新而被更新,如先前所描述的。随后,特征模型权重可以是固定的并且可使用中央标记的数据集1008在特征的顶部训练新图像分类器。结果所得的模型随后可被分发或推出给设备以用于改进的对象识别能力和进一步的特征模型学习。

作为这个的扩展,中央学习的推断引擎1006可添加、减去、组合对象标记,扩展到标记多个对象,或者利用持续学习的特征提供其它改进。添加、减去或组合对象标记可通过恰适地修改被用来在特征顶部学习推断引擎的数据集(诸如修改用于现有图像的标记和/或添加/移除图像)来完成。

类似地,由于推断引擎1006被构建在分布式学习的特征1004的顶部,因此可使用新的推断过程、架构或办法。例如,新的推断过程可包括标记修改,诸如针对每个图像提供多个标记,而非针对每个图像提供单个标记。在另一示例中,可通过从人工神经网络(ANN)办法切换到尖峰发放神经网络办法、支持矢量机器(SVM)办法或其它办法来修改推断引擎架构。

另外,通过中央地学习推断引擎,可针对不同使用情形、设备或应用通过使用不同训练数据集在相同特征集上训练不同的推断引擎来学习不同的推断引擎。

作为又一扩展,代替冻结特征权重并且仅训练推断引擎,特征权重还可从在一个或多个训练数据集上学习以计算可被分发给用户和/或设备的结果所得的模型来得到进一步完善。相反,推断引擎可按与特征相同的分布式方式来学习。

在一种配置中,在用户纠正来自推断引擎的一个或多个模型标记时,分布式学习可能很大程度上未被监督而仅有偶然监督输入。在该配置中,不止一个学习过程可被用来计算模型权重更新。同样,在该配置中,使用特征/推断学习概念拆分的分布式学习可使用用户标记来本地地更新推断引擎,从而用户更快地看到模型改进。

另外,出于隐私、选择退出和/或带宽目的,在一些方面,用户图像可以不被提供给中央服务器。在该情形中,图像可带有本地标记地被高速缓存在用户的设备中,从而当在用户设备处接收到新模型时,推断引擎可通过基于本地存储的图像和标记更新权重来自动地完善。这可允许用户具有在模型继续以分布式方式学习的同时基于标记纠正来保持更新的推断引擎。

图11是解说根据本公开的各方面的用于学习模型的示例性数据流1100的框图。参照图11,在框1102,可在中央数据集上训练初始模型W0。在框1104,可将初始模型W0推出或分发例如给用户1和用户2。当然,这仅仅是示例性的,并且模型可被分发给任何数目的用户、用户群或其它实体。

初始模型W0可被用于在每个用户设备处识别和学习模型(1106,1108)。然而,所学习的权重更新可被异步地提供给中央服务器。也就是说,每个用户可异步地向中央服务器发送权重更新(1106和1108)。当中央服务器接收到单个模型更新(例如,在框1110来自用户1或者在框1116来自用户2)时,或者可能是在一时间段上来自用户子集的模型更新集合,服务器可计算新的模型并将其分发或推出给用户(1112,1118)。

在一些方面,新模型更新可以仅被发送给提供更新的用户子集。也就是说,这些更新可以是差分分布的。例如,在框1110,中央服务器收集来自用户1的权重更新并且进而计算新模型W1。在框1112,中央服务器可仅向用户1推出或分发W1。该更新可被表达为:

其中该求和是在该子集的一个或多个用户上。在框1114,新模型W1可被用于用户1设备处的识别和学习。

在框1108,中央服务器可接收来自另一用户(例如,来自用户2)或用户子集的模型更新集合并且计算另一新模型更新(1116)。该模型更新可如下应用于正在进行的模型:

即使这些更新是在较旧的模型(诸如W0)上计算的。在框1118,可将新模型W2分发给其它用户(例如,用户2)或用户群。在框1120,新模型W2可被用于用户2设备处的识别和学习。

在一些方面,在模型更新(例如,W1或W2)被接收到时,它们可被标记或以其它方式配置有关于它们是基于哪个模型的指示。如果在自初始模型(例如,W0)的阈值数目的更新之后接收到更新,则此类更新可因陈旧而被丢弃。

在异步更新情形中,异步更新时间可以基于若干因素。在一个示例中,更新可针对不同用户子集被规划在不同时间以帮助使服务器和网络资源负载平衡。在第二示例中,更新可以在某个设备本地度量被满足(诸如,所计算的目标数目的本地模型更新(例如,目标数目的照片))、或者从设备回到中央服务器的高带宽信道的突然可用性之后发送。

在一些方面,所学习的权重更新可按在每次学习计算(例如,照片)之后应用更新的在线方式或者使用在目标数目的学习计算(例如,照片)之后应用更新的最小批量过程来本地地应用。例如,用户可发送回自最后一次从中央服务器接收到的模型以来总共累积的权重更新。该办法可允许用户本地地改进它们的模型并且以降级的中间性能为风险更快地探索更大的模型空间,因为推断是在未经验证的模型上执行的。

性能降级的风险可以通过本地地维持两个模型(例如,一个用于报告推断值,并且一个用于学习更大的模型空间)来降低。当然,所维持的模型数目仅仅是示例性的,并且可根据资源可用性来维持任何数目的模型。这可通过维持模型W和正在进行的更新ΔW、并且使用W来推断且使用W+ηΔW来进行模型学习来完成。

在这些模型探索情形中,中央服务器可如在先前描述的方法中那样应用模型更新。在一些方面,中央服务器可对照验证集来测试不同的更新以确定哪一个更新提供较佳的模型更新。

传送模型参数

与分布式模型学习相关联的一个挑战在于高容量模型的模型大小可能相对较大,因此推出模型和取回学习到的模型参数的简单办法可消耗非常多的带宽。另外,对于中央服务器,从大量数目的设备(例如,成亿或十亿的设备)接收模型更新可产生非常大的要维护的流。存在可被用来减小带宽和设备处的存储器利用率的若干方法。

从设备到中央服务器

第一种办法是对每个用户(设备)向中央服务区发送的ΔW进行子采样。如果模型具有大量(例如,数百万或数十亿)的权重参数,则ΔW矢量具有那么多元素。不是使数百万或数十亿的设备中的每一个设备向中央服务器发送完整的权重矢量,而是每个用户(设备)可发送元素的子集(例如,元素的随机子集)。由于每个ΔW元素通常被计算以使误差函数最小化,因此每个元素更新单独地应当在良好的方向上。由于存在大量的设备,因此如果所有用户发送全部它们的更新、而不是使用合适的统计平均,则带宽可能不是高效利用的。在一个方面,服务器可在模型被推出给用户(设备)时为要发送回的数个参数发送参数np。本地用户设备可随机地选择ΔW矢量中的对应数目的元素位置以发送给中央服务器。如此,在每次学习更新之际,本地设备可以仅计算被用来计算目标ΔW元素的中间值。进一步,本地用户设备随后可以随时间推移仅跟踪ΔW的np个元素。设备可以在恰当的时间向中央服务器发送那些np个元素。

在下一迭代期间,可实现其它选项。例如,在一种配置中,该设备可保持相同的元素位置集合或者可重新生成新的随机元素位置。另外,由中央服务器推出的参数np的值可随时间推移而改变例如以计及增多数目的设备、改变的模型大小、增大的带宽以及其它因素。

在另一配置中,中央服务器可接收来自设备的所有或一些参数并且可对用来更新模型的ΔW进行子采样。这可被完成以控制中央服务器中针对每个更新执行的计算量。在一些方面,中央服务器还可使用来自所有被接收到的更新的ΔW的随机子集。在其他方面,中央服务器可丢弃所接收到的一些更新。

从中央服务器到设备

向设备分发或推出模型更新还可消耗大量的带宽。存在可被实现以降低带宽的若干办法。

一种办法是向用户广播或多播权重更新,因为该模型是所有用户共用的。例如,在一种配置中,权重更新可在开销信道(诸如,蜂窝短消息服务(SMS)信道)、广播信道或开销位置中分发。

另一办法是使用基于先前模型权重值的算法来压缩模型权重更新。例如,对于模型Wk+1,中央服务器可以计算Wk+1-Wk并且随后对结果所得的矢量使用标准压缩过程,这应当具有用于发送模型更新的较小值。当用户(设备)接收到更新时,设备可对其解压缩并且将其添加到先前模型。替换地,霍夫曼压缩可以基于所估计的概率p(Wk+1|Wk)来使用。

另外,如果在权重更新中存在相关(诸如可发生于使用动量的DNN中),则服务器可如下计算权重更新的双倍差值:

(Wk+1-Wk)-(Wk-Wk-1) (20)

双倍差值可被压缩并发送以用于模型更新。在一些方面,基于概率的压缩可被使用p(Wk+1|Wk,Wk-1)。

在又一办法中,中央服务器可指示给定模型层或权重集合以供用户设备集中于(例如,更新)当前迭代。在该情形中,服务器可指示作为当前模型更新迭代的目标的权重集合。该设备可跟踪仅与目标权重集合相关的权重更新。与以上类似,设备可进一步选择该目标权重集合的随机子集。设备可在迭代结束时向中央服务器发送它们的模型权重更新。服务器可进而计算用于该权重集合的经更新模型并且仅发出这些经更新的权重以用于下一次模型更新。在一些方面,随时间推移的迭代可以不同权重集为目标以用于学习。

作为以上办法的扩展,中央服务器在一些方面可以指导不同用户子集以不同层或权重子集为目标以用于迭代。中央服务器还可使用验证检查阶段来检查哪个层或模型子集对性能具有最大影响并且仅推出那些更新。

共用特征上的定制分类器

本公开的各方面进一步涉及共用特征功能上的定制分类器。假定用户想要通过野生蘑菇的外观来标识这些蘑菇,并且用户愿意为该能力进行支付。一个或多个蘑菇专家以他们的工作可得到报酬的方式将他们的知识传递给用户和其它蘑菇搜寻人的高效方式是什么?除了蘑菇之外,可获益于专家标记的对象类别的其它示例包括汽车、动物、美术作品、医疗诊断图像,等等。

根据本公开的各方面,公开了利用机器学习的能力的分类器。一组实体(例如,指定的用户或专家)可向中央服务器或“模型商店”提供标记示例的全集。该中央服务器还可包括与特定传感形态(或形态组合)相关的统计特征集。这些特征可按非监督方式来学习。服务器可使用学习到的特征和专家提供的标记示例集合来计算分类器。服务器可将所计算的分类器的参数分发给设备,这将允许用户计算他们遭遇到的任何对象的类别。

存储分类器的参数所消耗的存储器将通常为比完整训练全集小许多的数量级。该客户端-服务器架构还可允许在两个训练全集的级联上训练单个分类器的可能性,从而赋予用户合并来自相异或交叠领域的多个专家的分类知识的能力。

可在服务器侧上和在用户的设备侧上均提供基础设施以确保设备拥有恰适的特征集、存储分类器参数的能力、以及部署这些参数来实现正确的分类的能力。相应地,在本公开的一方面,公开了用于在潜在非常大数目的用户之间共享一个或多个指定用户或专家的分类专业知识的过程。一个或多个用户可能希望使用移动设备来收集传感数据并且在一些情形中,将这些数据分类成有意义的标记(例如,使用相机查看蘑菇以便标识蘑菇类型)。“专业知识”(其可以是标记数据全集的形式)可被提供给一个或多个服务器,其可将标记数据全集与先前学习的特征集相组合以在那些特征上计算分类器。服务器随后可以将分类器分发给任何感兴趣的用户的设备。可能存在比服务器更多的用户。

图12是解说根据本公开的各方面的用于生成分类器的示例性数据流1200的流程图。参照图12,在框1102,服务器可将特征集F分发给一个或多个用户。

在一些方面,用户可各自具有用于从输入数据计算相同特征的机构。确保所有用户共享相同输入特征的一种方式将是使服务器将这些特征连同版本号推送或分发给所有用户。例如,具有一个或多个层的人工神经网络(ANN)可计算这些特征,并且由此服务器可通过向所有用户发送该ANN的组合权重来执行数据流的该部分。这些特征还可使用分布式非监督学习来集体地学习。

实体、专家或有兴趣将分类器提供给一组用户的其它指定用户可向服务器提供标记数据。该标记数据全集可保持可用于服务器,从而它能在输入特征已改变的情况下重新训练分类器。在框1204,例如,专家可向服务器发送标记示例全集,包括数据D和标记L的E。例如,标记示例全集可以是图像集(以及关于每个图像唯一的标记集)的形式。

在框1206,服务器可构建或学习分类器,该分类器学习示例全集E中的每个标记数据Di与其对应专家提供的标记Li之间的映射。存在可能的分类器和学习方法的许多选择。例如,在一个方面,ANN可被用于分类器并且训练可使用反向传播来进行。

在一些方面,还可构建组合多个专家的训练集中所包含的知识的分类器(例如,能标识图像中的蘑菇和蝴蝶两者的分类器)。该组合的分类器可以例如通过使用两个训练全集的混合执行训练来构建。

在附加方面,分类器参数可包括架构参数(例如,在ANN情形中是层中单元的数目)。这在所建议或指示的给定全集的复杂度使用具有较高容量的分类器以及由此给定层中的更多单元的情况下是有用的。

在一个方面,该训练可涉及在固定特征F(d)的顶部训练分类器,或者它可涉及细调特征,例如藉由通过特征层以及顶部分类层的反向传播。在另一方面,来自固定特征F(d)和/或经更新F(d)的△权重可被发出给用户设备。在另一方面,该训练可包括在相同的共享特征F(d)的顶部针对两个专家训练集训练两个分开的分类器。

另外,分类器还可按分层级方式来配置或组织,以使得分类器具有顶部或一般等级分类器以及更具体分类器。例如,顶部等级分类器可将图像分类为汽车,而更具体分类器可对汽车的类型进行分类(例如,小轿车、运动型多用途汽车、跑车,等等)。还可提供多层具体分类器。例如,一个具体层可将图像分类为1958年款法拉利GT California Spyder。

在一些方面,分类器可被应用于数据集并被配置成执行顶部等级分类。基于顶部等级分类,分类器可向服务器请求一个或多个附加分类器。一旦接收到一个或多个附加分类器,就可执行相对于数据集更具体的分类。

在框1208,用户可经由服务器从中央选择集(例如,“模型商店”)选择知识或分类器的主体。用户可向服务器指示关于它想要下载哪个分类器的选择。例如,这可以采取显示可用于下载的所有分类器的在线商店的形式。除分类器之外,该商店可以给予用户下载用于计算分类器的低等级特征的选项(例如,在蘑菇分类器的情形中,用户可首先下载用于自然图像的低等级视觉特征集)。用户还可指定要作为组合分类器来下载的多个分类器。

进一步,用户可在分类器分层结构中指定所期望的层。例如,用户可能想要用以对水果(诸如,苹果)进行分类的一般分类器、或者可在各类型的苹果之间进一步区分(例如,Granny Smith(青苹果)、Pink Lady(粉红佳人)、红富士、嘎拉等)的更具体的分类器。

在框1210,服务器可按照描述分类器C的参数的形式向用户提供所请求的知识。一旦用户已指定要构建和/或下载的一个或多个分类器,服务器就可将该分类器的参数分发或推送给用户的设备。在基于ANN的分类器的情形中,这些参数可以例如包括连接权重和偏置项。

在一些实例中,服务器可自动地向用户推送特定分类器的参数或者分类器分层结构中的一层。这可以例如基于经由用户提供的传感信息(例如,用户具有跑车的众多图像——可提供更具体的分类器以使得用户能够进一步对捕捉的跑车图像分类)。

在框1212,用户可收集数据d(例如,使用她的智能手机拍摄蘑菇的照片)。例如,d的特征F(d)可使用先前提供的特征集F来本地地计算。分类器C可被应用于这些特征以计算对于未知刺激所估计的专家的标记(例如,蘑菇的类型)。

一旦装备有特征集F和下载的分类器C,用户就可收集数据集d(例如,蘑菇的图像),提取其特征F(d),并且将这些馈送给分类器以获取分类C(F(d))。分类器在这些特征上的输出可代表专家对该观察的类别的意见,其与专家先前提供的标记全集E是一致的。根据本公开的各方面,许多分类器(例如,相对浅的ANN)可相对较快地计算。这意味着分类可在捕捉到数据之际立即进行并且可作为数据捕捉过程的一部分立即呈现给用户。例如,用户的智能相机取景器可实时地在图像自身顶部显示蘑菇的所估计类型。

替换地,如果分类器很复杂,则用户的数据d的分类可通过首先在设备上计算特征F(d)并且将那些特征发送给服务器来回到服务器上执行。服务器随后可计算分类C(F(d))并且将结果发送回用户的设备。

用户反馈

当用户能够在他们的设备上分类数据时,他们可以可任选地希望提供与系统相关的反馈。此类反馈例如可以采取以下形式:

类型1:新标记,如果用户相信分类器针对给定输入已生成了不正确的标记并且知晓正确标记应当是什么;

类型2:“错误标记”消息,如果用户相信分类器针对给定输入已生成了不正确的标记并且不知晓正确标记应当是什么;或者

类型3:加载不同分类器的请求,如果基于分类器的初始结果,用户想要对相同数据应用更专门的分类器。

该反馈可被提供给用户的设备、服务器、专家或指定用户、或者用户群或其它实体。在一些方面,类型1反馈可被用来构建私有分类器。例如,私有分类器可从专家提供的分类器推导,其中用户可提供附加标记的示例。类型2反馈可以孤立地使用,或者优选地与来自其它用户的反馈相结合以通过提供负面标记的示例来重新训练分类器。

类型3反馈可被用来构建对象类别到其它分类器之间的关联的数据库。例如,使用用于广泛对象分类的分类器的某人可对苹果取像、接收标记“苹果”、并且随后切换到用于苹果的更具体分类器以便确定苹果的具体品种。该动作可按反馈的形式来捕捉,从而提供标记“苹果”的其它分类器也可自动地向用户提供切换到相同的具体苹果分类器的选项。通过累积此类类型3反馈,系统可对多个分类器排序或将其组织成分类器分层结构并且以上下文相关的方式提供到更具体的分类器的自动切换。从一个分类器切换到更具体的分类器的决定可以自动化并且例如基于用户在特定对象上停留多久,或者在单个图像中存在类别的多少个实例(如果在图像中存在许多“苹果”,例如苹果的更具体分类器可以是有用的)。

模型商店

用于这些分类器的前端清算地点和专家模型可以是模型商店。模型商店可允许某些用户(例如,专家)上传他们的标记数据集并且为使用他们的数据集构建的分类器设置价格。模型商店还可允许用户使用上述用于训练模型和重用共享特征的效率的后端过程来购买模型。

模型商店中的定价可允许针对每个专家标记的数据集的一次性定价,或者可允许组合定价。组合定价的示例可包括给定特征集上的第一分类器的较高价格以及使用相同特征集构建的后续分类器上的降低的价格。替换地,组合定价可包括第一蘑菇分类器上的给定价格以及来自其它专家的用于后续蘑菇分类器的折扣定价。

后端可计算一些联合性能分数以用于添加附加专家标记的数据的增量改进,从而帮助确定增量价格。模型商店还可显示度量以帮助用户选择要购买哪些专家数据集,诸如,分类准确度、标记图像的数目等等。

模型商店还可允许用户上传例如来自在他们的电话上捕捉的几个蘑菇图像的特征F(d)以评估哪个蘑菇分类器最适合于他们的数据。在来自用户的采样图像上达成最高分类准确度的模型将是要购买的那个模型。

其它示例性使用情形

在一些方面,用户可从“应用商店”或其它应用销售点购买与共用特征集相结合工作的特定分类器。

在一个方面,水果和蔬菜的粗略分类器可将正被用户的设备感测到的对象标识为苹果。进一步,通过停留或悬停在该对象上,分类器可下载苹果的更具体分类器(例如,对照相同共用特征功能来训练)以告诉用户他们正在查看Granny Smith苹果。在一些方面,分类器可标识可进一步将对象分类的一个或多个其它分类器。

在另一方面,关于训练知晓许多的用户可以购买专家的训练分类器并且使用他们自己的知识将其增强。

在又一方面,行进至达沃斯穿戴式谷歌眼镜的用户可创建定制分类器,其将两个专家分类器—名人的脸部和脸颊—合并成一个组合标记器以用于题头显示。

在又一方面,危险位置中装备有相机或其它传感器的一群机器人可使用他们的相机(或其它传感器)和非监督学习来发现用于表示他们环境中的质地(砂砾、草地、泥泞、碎石)的良好视觉特征。另外,使用加速计和里程计,几个侦察机器人可基于机器人是否能在该类型的地形上作出向前行进来向不同质地指派“可通过”和“不可通过”的标记。机器人还可在这些特征上学习定制分类器。定制分类器随后可与该群的其余机器人共享。

尽管本公开的各方面已描述了尖峰发放神经元和尖峰发放神经元模型,但这仅仅是示例性的并且非尖峰发放神经元和神经元模型也可被使用。此外,本文所公开的概念和技术可被用于尖峰发放和非尖峰发放分布式学习。

图13解说了根据本公开的各方面的用于学习模型的方法1300。在框1302,该过程接收来自一个或多个用户的一个或多个模型更新。在框1304,该过程基于前一模型和模型更新来计算经更新的模型。此外,在框1306,该过程基于经更新的模型向一个或多个用户传送与经更新的模型的子集相关的数据。

在一些方面,可基于性能度量和/或模型容量对经更新的模型进行验证。

在一些方面,可基于以模型更新的比较性分析为基础检测离群者来计算经更新的模型。

在一些方面,经更新的模型可包括模型架构和/或学习速率的改变。该架构和/或学习速率是基于对照验证数据的模型性能和/或权重更新的稀疏性来确定的。

在一些方面,该子集可以仅包括模型的新训练的层。在一些方面,该子集可包括模型的随机子集。

图14解说了根据本公开的各方面的用于学习模型的方法1400。在框1402,该过程基于共享的推断模型接收来自服务器的数据。在框1404,该过程基于接收到的数据来生成包括一个或多个模型参数的模型。在框1406,该过程基于该模型计算推断。在框1408,该过程基于该推断计算一个或多个模型参数更新。此外,在框1410,该过程基于模型参数更新向服务器传送数据。

在一些方面,该过程进一步包括使用本地高速缓存的训练示例来训练分类器。

在一些方面,该数据可以基于当前模型更新与前一模型更新之间的差异来传送。例如,该差异可被压缩或者被用于动量模型。

在一些方面,计算模型参数更新和/或基于模型参数更新传送数据包括选择要计算和/或发送的模型参数的随机子集。

图15解说了根据本公开的各方面的用于更新分类器集合的方法1500。在框1502,该过程向第一数据集应用第一分类器集合。该数据可包括传感器数据或存储在用户设备上的其它数据。此外,在框1504,该过程基于第一分类器集合的输出和/或第一分类器集合的应用的性能测量向远程设备请求分类器更新。

在一些方面,该请求可以基于上下文信息。该上下文信息可以例如包括用户输入信息、给定时间段(例如,一天、一周、一个月等)的观察数目、位置、活动性、加速计、剩余电池寿命(例如,如果电池寿命较低,则可指示较低复杂度的分类器)。在附加方面,该请求可以基于计算负荷。例如,在计算负荷较高(例如,高于预定阈值)的情况下,可指示较低复杂度的分类器。另一方面,在计算负荷较低(例如,低于预定阈值)的情况下,可使用较高复杂度的分类器。

在一些方面,性能测量可包括分类器的准确度或置信度、多个分类器的协定的指示、分类器的计算速度,等等。

图16解说了根据本公开的各方面的用于生成分类器模型的方法1600。在框1602,该过程向各用户分发共用特征模型。在框1604,该过程在共用特征模型的顶部训练分类器。此外,在框1606,该过程向第一用户分发第一分类器并向第二用户分发第二分类器。

在一些方面,可在从实体获取的标记数据集上训练一个或多个分类器。实体可包括用户、特定指定用户或其它实体。可向在从实体获取的标记数据集上训练的每一个分类器提供度量。该度量可以例如包括关于分类准确度或标记图像数目的信息。

在一些方面,该过程接收从远程设备上的数据计算的一个或多个特征。另外,该过程基于该一个或多个特征来确定用于对远程设备上的数据进行分类的一个或多个分类器。进而,该过程向远程设备分发一个或多个分类器的指示。

在一些方面,该过程接收从远程设备上的数据计算的特征。该过程还基于所接收到的特征计算分类。进一步,该过程向远程设备传送该分类。

在一些方面,该过程将第一分类器和第二分类器相组合以生成组合分类器。组合分类器可被配置成对与一个或多个标记数据集相关联的类别作出分类。该过程还向一个或多个用户分发组合分类器。

图17解说了根据本公开的各方面的用于生成分类器模型的方法1700。在框1702,该过程从第一指定用户向第一标记示例全集应用共用特征图集合以学习第一分类器模型。在框1704,该过程从第二指定用户向第二标记示例全集应用该共用特征图集合以学习第二分类器模型。此外,在框1706,该过程向一个或多个用户分发包括第一分类器模型和第二分类器模型的分类器模型。

在一些方面,可以生成组合分类器。组合分类器可以基于标记示例全集、附加标记示例全集并且使用第一共用特征功能集合和第二共用特征功能集合来生成。如此,组合分类器可被配置成对与一个或多个标记数据示例全集和附加全集相关联的类别作出分类。

以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。一般而言,在附图中有解说的操作的场合,那些操作可具有带相似编号的相应配对装置加功能组件。

如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或其他数据结构中查找)、探知及诸如此类。另外,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。而且,“确定”可包括解析、选择、选取、确立及类似动作。

如本文所使用的,引述一列项目中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在涵盖:a、b、c、a-b、a-c、b-c、以及a-b-c。

结合本公开所描述的各种解说性逻辑框、模块、以及电路可用设计成执行本文所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、分立的门或晶体管逻辑、分立的硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何市售的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。

结合本公开所描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在本领域所知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM,等等。软件模块可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。

本文所公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。

所描述的功能可在硬件、软件、固件或其任何组合中实现。如果以硬件实现,则示例硬件配置可包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的具体应用和整体设计约束,总线可包括任何数目的互连总线和桥接器。总线可将包括处理器、机器可读介质、以及总线接口的各种电路链接在一起。总线接口可用于尤其将网络适配器等经由总线连接至处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,按键板、显示器、鼠标、操纵杆,等等)也可以被连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路以及类似电路,它们在本领域中是众所周知的,因此将不再进一步描述。

处理器可负责管理总线和一般处理,包括执行存储在机器可读介质上的软件。处理器可用一个或多个通用和/或专用处理器来实现。示例包括微处理器、微控制器、DSP处理器、以及其他能执行软件的电路系统。软件应当被宽泛地解释成意指指令、数据、或其任何组合,无论是被称作软件、固件、中间件、微代码、硬件描述语言、或其他。作为示例,机器可读介质可包括随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、寄存器、磁盘、光盘、硬驱动器、或者任何其他合适的存储介质、或其任何组合。机器可读介质可被实施在计算机程序产品中。该计算机程序产品可以包括包装材料。

在硬件实现中,机器可读介质可以是处理系统中与处理器分开的一部分。然而,如本领域技术人员将容易领会的,机器可读介质或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传输线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。替换地或补充地,机器可读介质或其任何部分可被集成到处理器中,诸如高速缓存和/或通用寄存器文件可能就是这种情形。虽然所讨论的各种组件可被描述为具有特定位置,诸如局部组件,但它们也可按各种方式来配置,诸如某些组件被配置成分布式计算系统的一部分。

处理系统可以被配置为通用处理系统,该通用处理系统具有一个或多个提供处理器功能性的微处理器、以及提供机器可读介质中的至少一部分的外部存储器,它们都通过外部总线架构与其他支持电路系统链接在一起。替换地,该处理系统可以包括一个或多个神经元形态处理器以用于实现本文所述的神经元模型和神经系统模型。作为另一替换方案,处理系统可以用带有集成在单块芯片中的处理器、总线接口、用户接口、支持电路系统、和至少一部分机器可读介质的专用集成电路(ASIC)来实现,或者用一个或多个现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件组件、或者任何其他合适的电路系统、或者能执行本公开通篇所描述的各种功能性的电路的任何组合来实现。取决于具体应用和加诸于整体系统上的总设计约束,本领域技术人员将认识到如何最佳地实现关于处理系统所描述的功能性。

机器可读介质可包括数个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。这些软件模块可包括传送模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。作为示例,当触发事件发生时,可以从硬驱动器中将软件模块加载到RAM中。在软件模块执行期间,处理器可以将一些指令加载到高速缓存中以提高访问速度。随后可将一个或多个高速缓存行加载到通用寄存器文件中以供处理器执行。在以下述及软件模块的功能性时,将理解此类功能性是在处理器执行来自该软件模块的指令时由该处理器来实现的。

如果以软件实现,则各功能可作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用于携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。另外,任何连接被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或无线技术(诸如红外(IR)、无线电、以及微波)从web网站、服务器、或其他远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电、以及微波)就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘、和碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。因此,在一些方面,计算机可读介质可包括非瞬态计算机可读介质(例如,有形介质)。另外,对于其他方面,计算机可读介质可包括瞬态计算机可读介质(例如,信号)。上述的组合应当也被包括在计算机可读介质的范围内。

因此,某些方面可包括用于执行本文中给出的操作的计算机程序产品。例如,此类计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能由一个或多个处理器执行以执行本文中所描述的操作。对于某些方面,计算机程序产品可包括包装材料。

此外,应当领会,用于执行本文中所描述的方法和技术的模块和/或其它恰适装置能由用户终端和/或基站在适用的场合下载和/或以其他方式获得。例如,此类设备能被耦合至服务器以促成用于执行本文中所描述的方法的装置的转移。替换地,本文所述的各种方法能经由存储装置(例如,RAM、ROM、诸如压缩碟(CD)或软盘等物理存储介质等)来提供,以使得一旦将该存储装置耦合至或提供给用户终端和/或基站,该设备就能获得各种方法。此外,可利用适于向设备提供本文所描述的方法和技术的任何其他合适的技术。

将理解,权利要求并不被限定于以上所解说的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1