用于个性化神经网络模型的分布外检测的制作方法

文档序号:35956816发布日期:2023-11-08 18:20阅读:43来源:国知局
用于个性化神经网络模型的分布外检测的制作方法
用于个性化神经网络模型的分布外检测
1.背景
2.领域
3.本公开的各方面一般涉及神经网络,尤其涉及对用于个性化神经网络模型的分布外(out-of-distribution)数据的设备上检测。
4.背景
5.人工神经网络可包括诸群互连的人工神经元(例如,神经元模型)。人工神经网络可以是计算设备,或者被表示为要由计算设备执行的方法。
6.神经网络由消耗张量和产生张量的操作数组成。神经网络可以被用来解决复杂问题;然而,由于网络大小和可被执行以产生解决方案的运算量可能是巨大的,因此网络完成任务的时间可能很长。此外,由于这些任务可在移动设备(其可能具有有限的计算能力)上执行,因此深度神经网络的计算成本可能会有问题。
7.卷积神经网络是一种前馈人工神经网络。卷积神经网络可包括神经元集合,其中每个神经元具有感受野并且共同地拼出一输入空间。卷积神经网络(cnn)(诸如深度卷积神经网络(dcn))具有众多应用。具体而言,这些神经网络架构被用于各种技术,诸如图像识别、模式识别、语音识别、自动驾驶和其他分类任务。
8.机器学习性能可能比被报告为研究结果的性能要低。这可能是例如由于训练中的变化以及设备硬件及其操作环境特性。在统计学上检测与训练分布相距足够远的测试样本是部署许多现实世界机器学习应用的基本要求。
9.可惜的是,设备上学习也很困难。增量学习的一个目标是使学习模型适配新数据而不遗忘其现有知识(训练)。然而,设备上的特定用户数据(例如,用户相关)相对于训练分布或数据集可能较小并且可能导致较差性能。
10.概述
11.在本公开的一方面,提供了一种用于生成个性化人工神经网络(ann)模型的方法。该方法包括:在第一人工神经网络处接收输入。该方法包括:处理该输入以提取中间特征集合。该方法还包括:确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外。附加地,该方法包括:至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络。
12.在本公开的另一方面,提供了一种用于生成个性化人工神经网络(ann)模型的装置。该装置包括存储器以及耦合到该存储器的一个或多个处理器。(诸)处理器被配置成:在第一人工神经网络处接收输入。(诸)处理器被配置成:处理该输入以提取中间特征集合。(诸)处理器还被配置成:确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外。附加地,(诸)处理器被配置成:至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络。
13.在本公开的一方面,提供了一种用于生成个性化人工神经网络(ann)模型的装备。该装备包括:用于在第一人工神经网络处接收输入的装置。该装备包括:用于处理该输入以提取中间特征集合的装置。该装备还包括:用于确定该输入相对于用于训练该第一人工神
经网络的数据集是否在分布外的装置。附加地,该装备包括:用于至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络的装置。
14.在本公开的进一步方面,提供了一种非瞬态计算机可读介质。该计算机可读介质上编码有用于生成个性化人工神经网络(ann)模型的程序代码。该程序代码由处理器执行并且包括用于在第一人工神经网络处接收输入的代码。该程序代码包括:用于处理该输入以提取中间特征集的代码。该程序代码还包括:用于确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外的代码。附加地,该程序代码包括:用于至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络的代码。
15.本公开的附加特征和优点将在下文描述。本领域技术人员应当领会,本公开可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。本领域技术人员还应认识到,这样的等效构造并不脱离所附权利要求中所阐述的本公开的教导。被认为是本公开的特性的新颖特征在其组织和操作方法两方面连同进一步的目的和优点在结合附图来考虑以下描述时将被更好地理解。然而,要清楚理解的是,提供每一幅附图均仅用于解说和描述目的,且无意作为对本公开的限定的定义。
16.附图简述
17.在结合附图理解下面阐述的详细描述时,本公开的特征、本质和优点将变得更加明显,在附图中,相同附图标记始终作相应标识。
18.图1解说了根据本公开的某些方面的使用片上系统(soc)(包括通用处理器)的神经网络的示例实现。
19.图2a、2b和2c是解说根据本公开的各方面的神经网络的示图。
20.图2d是解说根据本公开的各方面的示例性深度卷积网络(dcn)的示图。
21.图3是解说根据本公开的各方面的示例性深度卷积网络(dcn)的框图。
22.图4是解说可使人工智能(ai)功能模块化的示例性软件架构的框图。
23.图5是解说根据本公开的各方面的用于对人工神经网络模型进行能量高效的个性化的示例架构的框图。
24.图6是解说根据本公开的各方面的对知识进行离线蒸馏以产生用于在移动设备上操作的经蒸馏用户无关分类器的框图。
25.图7是解说根据本公开的各方面的对用户相关分类器(udc)和用户无关分布外(uiood)检测器的离线搜索和优化的示例的框图。
26.图8是解说根据本公开的各方面的选通代理的示例操作的框图。
27.图9是解说根据本公开的各方面的设备上的协作式增量学习的示例的框图。
28.图10解说了根据本公开的各方面的用于操作人工神经网络的方法。
29.详细描述
30.以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践所描述的概念的仅有配置。本详细描述包括具体细节以便提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的结构和组件以避免湮没此类概念。
31.基于本教导,本领域技术人员应领会,本公开的范围旨在覆盖本公开的任何方面,不论其是与本公开的任何其他方面相独立地还是组合地实现的。例如,可使用所阐述的任
何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为所阐述的本公开的各个方面的补充或者与之不同的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。
32.措辞“示例性”用于意指“用作示例、实例、或解说”。描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
33.尽管描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目标。相反,本公开的各方面旨在能宽泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中解说。详细描述和附图仅仅解说本公开而非限定本公开,本公开的范围由所附权利要求及其等效技术方案来定义。
34.神经网络可以被用来解决复杂问题;然而,由于网络大小和可被执行以产生解决方案的运算量可能是巨大的,因此网络完成任务的时间可能很长。此外,由于这些任务可在移动设备(其可能具有有限的计算能力)上执行,因此深度神经网络的计算成本可能会有问题。
35.神经网络架构被用于各种技术,诸如图像识别、模式识别、语音识别、自动驾驶和其他分类任务。然而,机器学习性能可能比所报告的研究结果要低。这可能是由于例如训练中的变化以及设备硬件及其操作环境特性。在统计学上检测与训练分布相距足够远的测试样本是部署许多现实世界机器学习应用的基本要求。
36.设备上学习也很困难。增量学习的一个目标是使学习模型适配新数据而不遗忘其现有知识(训练)。然而,设备上的特定用户数据(例如,用户相关)可能较小。附加地,用户设备可能没有设备上的预训练数据集(用户无关)。另一方面,如果设备确实包括设备上的预训练数据集(用户无关),则灾难性遗忘的前景可能导致用户被迫从头开始训练模型。当人工神经网络在学习新信息(例如,分布外的新信息)之际遗忘先前学习的信息时,发生灾难性遗忘。此外,机器学习模型可指定使用大量样本进行训练以产生期望的性能水平。
37.本公开的各方面涉及基于分布外检测在移动设备上对人工神经网络模型进行能量高效的个性化。当数据输入在用于广义神经网络模型的训练数据集的分布外时,可生成个性化模型。如此,可生成两个单独的模型。第一模型可以是在用户无关的数据集上训练的广义模型。第二模型是在用户相关的数据上进一步训练的个性化模型。
38.在一些方面,片上系统(soc)上的低功率区域组件与高功率区域组件之间的计算资源被协作式地共享。例如,soc低功率区域中的资源分配可包括统一数据传感器融合、时间同步、特征提取器、用户无关分类器(uid)、用户无关分布外(uiood)检测器、用户相关分类器(udc)和选通代理。在一些方面,来自较麻烦或复杂的uic的知识可离线蒸馏以产生经蒸馏uic(uic
蒸馏
(uic
distilled
))。在一些方面,可执行离线搜索以确定改进的并且在一些情形中最优的udc和/或uiood。附加地,在一些方面,可应用有条件选通以实现连续学习和推断。
39.此外,可以用大小较小的用户相关数据或分布外(ood)数据来实现协作式增量学习。以此方式,可快速传递离线获得的知识并在线采用。
40.图1解说了片上系统(soc)100的示例实现,其可包括被配置成用于操作人工神经网络(例如,神经端到端网络)的中央处理单元(cpu)102或多核cpu。变量(例如,神经信号和
突触权重)、与计算设备(例如,带有权重的神经网络)相关联的系统参数、延迟、频率槽信息、以及任务信息可被存储在与神经处理单元(npu)108相关联的存储器块、与cpu 102相关联的存储器块、与图形处理单元(gpu)104相关联的存储器块、与数字信号处理器(dsp)106相关联的存储器块、存储器块118中,或可跨多个块分布。在cpu 102处执行的指令可从与cpu 102相关联的程序存储器加载或者可从存储器块118加载。
41.soc 100还可包括为具体功能定制的附加处理块,诸如gpu 104、dsp 106、连通性块110(其可包括第五代(5g)连通性、第四代长期演进(4g lte)连通性、wi-fi连通性、usb连通性、蓝牙连通性等)以及例如可检测和识别姿势的多媒体处理器112。在一种实现中,npu 108被实现在cpu 102、dsp 106和/或gpu 104中。soc 100还可包括传感器处理器114、图像信号处理器(isp)116、和/或导航模块120(其可包括全球定位系统)。
42.soc 100可基于arm指令集。在本公开的一方面,加载到通用处理器102中的指令可包括用于在第一人工神经网络处接收输入的代码。通用处理器102还可包括用于处理输入以提取中间特征集合的代码。通用处理器102还可包括用于确定输入相对于用于训练第一人工神经网络的数据集是否在分布外的代码。通用处理器102可进一步包括用于基于分布外确定而将对应于输入的中间特征提供给第二人工神经网络的代码。
43.深度学习架构可通过学习在每一层中以逐次更高的抽象程度来表示输入、藉此构建输入数据的有用特征表示来执行对象识别任务。以此方式,深度学习解决了传统机器学习的主要瓶颈。在深度学习出现之前,用于对象识别问题的机器学习办法可能严重依赖人类工程设计的特征,或许与浅分类器相结合。浅分类器可以是两类线性分类器,例如,其中可将特征向量分量的加权和与阈值作比较以预测输入属于哪一类。人类工程设计的特征可以是由拥有领域专业知识的工程师针对具体问题领域定制的模版或内核。相反,深度学习架构可学习以表示与人类工程师可能会设计的相似的特征,但它是通过训练来学习的。此外,深度网络可以学习以表示和识别人类可能还没有考虑过的新类型的特征。
44.深度学习架构可以学习特征阶层。例如,如果向第一层呈递视觉数据,则第一层可学习以识别输入流中的相对简单的特征(诸如边)。在另一示例中,如果向第一层呈递听觉数据,则第一层可学习以识别特定频率中的频谱功率。取第一层的输出作为输入的第二层可以学习以识别特征组合,诸如对于视觉数据识别简单形状或对于听觉数据识别声音组合。例如,更高层可学习以表示视觉数据中的复杂形状或听觉数据中的词语。再高层可学习以识别常见视觉对象或口述短语。
45.深度学习架构在被应用于具有自然阶层结构的问题时可能表现特别好。例如,机动交通工具的分类可受益于首先学习以识别轮子、挡风玻璃、以及其他特征。这些特征可在更高层以不同方式被组合以识别轿车、卡车和飞机。
46.神经网络可被设计成具有各种连通性模式。在前馈网络中,信息从较低层被传递到较高层,其中给定层中的每个神经元向更高层中的神经元进行传达。如上所述,可在前馈网络的相继层中构建阶层式表示。神经网络还可具有回流或反馈(也被称为自顶向下(top-down))连接。在回流连接中,来自给定层中的神经元的输出可被传达给相同层中的另一神经元。回流架构可有助于识别跨越不止一个按顺序递送给该神经网络的输入数据组块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自顶向下)连接。当高层级概念的识别可辅助辨别输入的特定低层级特征时,具有许多反馈连接的网络可能是有
助益的。
47.神经网络的各层之间的连接可以是全连通的或局部连通的。图2a解说了全连通神经网络202的示例。在全连通神经网络202中,第一层中的神经元可将它的输出传达给第二层中的每个神经元,从而第二层中的每个神经元将从第一层中的每个神经元接收输入。图2b解说了局部连通神经网络204的示例。在局部连通神经网络204中,第一层中的神经元可连接到第二层中有限数目的神经元。更一般化地,局部连通神经网络204的局部连通层可被配置成使得一层中的每个神经元将具有相同或相似的连通性模式,但其连接强度可具有不同的值(例如,210、212、214和216)。局部连通的连通性模式可能在更高层中产生空间上相异的感受野,这是由于给定区域中的更高层神经元可接收到通过训练被调谐为到网络的总输入的受限部分的性质的输入。
48.局部连通神经网络的一个示例是卷积神经网络。图2c解说了卷积神经网络206的示例。卷积神经网络206可被配置成使得与针对第二层中每个神经元的输入相关联的连接强度被共享(例如,208)。卷积神经网络可能非常适合于其中输入的空间位置有意义的问题。
49.一种类型的卷积神经网络是深度卷积网络(dcn)。图2d解说了被设计成从自图像捕获设备230(诸如车载相机)输入的图像226识别视觉特征的dcn 200的详细示例。可对当前示例的dcn 200进行训练以标识交通标志以及在交通标志上提供的数字。当然,dcn 200可被训练用于其他任务,诸如标识车道标记或标识交通信号灯。
50.可以用受监督式学习来训练dcn 200。在训练期间,可向dcn 200呈递图像(诸如限速标志的图像226),并且随后可计算前向传递(forward pass)以产生输出222。dcn 200可包括特征提取区段和分类区段。在接收到图像226之际,卷积层232可向图像226应用卷积核(未示出),以生成第一组特征图218。作为示例,卷积层232的卷积核可以是生成28x28特征图的5x5内核。在本示例中,由于在第一组特征图218中生成四个不同的特征图,因此在卷积层232处四个不同的卷积核被应用于图像226。卷积核还可被称为过滤器或卷积过滤器。
51.第一组特征图218可由最大池化层(未示出)进行子采样以生成第二组特征图220。最大池化层减小了第一组特征图218的大小。即,第二组特征图220的大小(诸如14x14)小于第一组特征图218的大小(诸如28x28)。减小的大小向后续层提供类似的信息,同时降低存储器消耗。第二组特征图220可经由一个或多个后续卷积层(未示出)被进一步卷积,以生成后续的一组或多组特征图(未示出)。
52.在图2d的示例中,第二组特征图220被卷积以生成第一特征向量224。此外,第一特征向量224被进一步卷积以生成第二特征向量228。第二特征向量228的每个特征可包括与图像226的可能特征(诸如,“标志”、“60”和“100”)相对应的数字。softmax(软最大化)函数(未示出)可将第二特征向量228中的数字转换为概率。如此,dcn 200的输出222是图像226包括一个或多个特征的概率。
53.在本示例中,输出222中关于“标志”和“60”的概率高于输出222的其他特征(诸如“30”、“40”、“50”、“70”、“80”、“90”和“100”)的概率。在训练之前,由dcn 200产生的输出222很可能是不正确的。由此,可计算输出222与目标输出之间的误差。目标输出是图像226的真值(例如,“标志”和“60”)。dcn 200的权重可随后被调整以使得dcn 200的输出222与目标输出更紧密地对齐。
54.为了调整权重,学习算法可针对权重计算梯度向量。梯度可指示在权重被调整情况下误差将增加或减少的量。在顶层,梯度可直接对应于连接倒数第二层中的活化神经元与输出层中的神经元的权重的值。在较低层中,梯度可取决于权重的值以及所计算出的较高层的误差梯度。权重可随后被调整以减小误差。这种调整权重的方式可被称为“反向传播”,因为其涉及在神经网络中的反向传递(“backward pass”)。
55.在实践中,权重的误差梯度可能是在少量示例上计算的,从而计算出的梯度近似于真实误差梯度。这种近似方法可被称为随机梯度下降法。随机梯度下降法可被重复,直到整个系统可达成的误差率已停止下降或直到误差率已达到目标水平。在学习之后,可以向dcn呈递新图像并且在网络中的前向传递可产生输出222,其可被认为是该dcn的推断或预测。
56.深度置信网络(dbn)是包括多层隐藏节点的概率性模型。dbn可被用于提取训练数据集的阶层式表示。dbn可通过堆叠多层受限波尔兹曼机(rbm)来获得。rbm是一类可在输入集上学习概率分布的人工神经网络。由于rbm可在没有关于每个输入应该被分类到哪个类的信息的情况下学习概率分布,因此rbm经常被用在无监督式学习中。使用混合无监督式和受监督式范式,dbn的底部rbm可按无监督方式被训练并且可以用作特征提取器,而顶部rbm可按受监督方式(在来自先前层的输入和目标类的联合分布上)被训练并且可用作分类器。
57.深度卷积网络(dcn)是卷积网络的网络,其配置有附加的池化和归一化层。dcn已在许多任务上达成现有最先进的性能。dcn可以使用受监督式学习来训练,其中输入和输出目标两者对于许多典范是已知的并被用于通过使用梯度下降法来修改网络的权重。
58.dcn可以是前馈网络。另外,如上所述,从dcn的第一层中的神经元到下一更高层中的神经元群的连接跨第一层中的各神经元被共享。dcn的前馈和共享连接可被用于进行快速处理。dcn的计算负担可比例如类似大小的包括回流或反馈连接的神经网络的计算负担小得多。
59.卷积网络的每一层的处理可被认为是空间不变模版或基础投影。如果输入首先被分解成多个通道,诸如彩色图像的红色、绿色和蓝色通道,则在该输入上训练的卷积网络可被认为是三维的,其具有沿着该图像的轴的两个空间维度以及捕获颜色信息的第三维度。卷积连接的输出可被认为在后续层中形成特征图,该特征图(例如,220)中的每个元素从先前层(例如,特征图218)中一定范围的神经元以及从该多个通道中的每个通道接收输入。特征图中的值可以用非线性(诸如矫正,max(0,x))进一步处理。来自毗邻神经元的值可被进一步池化(这对应于降采样)并可提供附加的局部不变性以及维度缩减。还可通过特征图中神经元之间的侧向抑制来应用归一化,其对应于白化。
60.深度学习架构的性能可随着有更多被标记的数据点变为可用或随着计算能力提高而提高。现代深度神经网络用比仅仅十五年前可供典型研究者使用的计算资源多数千倍的计算资源来例行地训练。新的架构和训练范式可进一步推升深度学习的性能。经矫正的线性单元可减少被称为梯度消失的训练问题。新的训练技术可减少过度拟合(over-fitting)并因此使更大的模型能够达成更好的普遍化。封装技术可抽象出给定感受野中的数据并进一步提升总体性能。
61.图3是解说深度卷积网络350的框图。深度卷积网络350可包括多个基于连通性和权重共享的不同类型的层。如图3中所示,深度卷积网络350包括卷积块354a、354b。卷积块
354a、354b中的每一者可配置有卷积层(conv)356、归一化层(lnorm)358、和最大池化层(max pool)360。
62.卷积层356可包括一个或多个卷积过滤器,其可被应用于输入数据以生成特征图。尽管仅示出了两个卷积块354a、354b,但本公开不限于此,而是代之以根据设计偏好可将任何数目的卷积块354a、354b包括在深度卷积网络350中。归一化层358可对卷积过滤器的输出进行归一化。例如,归一化层358可提供白化或侧向抑制。最大池化层360可提供在空间上的降采样聚集以实现局部不变性以及维度缩减。
63.例如,深度卷积网络的并行过滤器组可被加载到soc 100的cpu 102或gpu 104上以达成高性能和低功耗。在替换实施例中,并行过滤器组可被加载到soc 100的dsp 106或isp 116上。另外,深度卷积网络350可访问可存在于soc 100上的其他处理块,诸如分别专用于传感器和导航的传感器处理器114和导航模块120。
64.深度卷积网络350还可包括一个或多个全连通层362(fc1和fc2)。深度卷积网络350可进一步包括逻辑回归(lr)层364。深度卷积网络350的每一层356、358、360、362、364之间是要被更新的权重(未示出)。每一层(例如,356、358、360、362、364)的输出可以用作深度卷积网络350中一后续层(例如,356、358、360、362、364)的输入以从第一卷积块354a处提供的输入数据352(例如,图像、音频、视频、传感器数据和/或其他输入数据)学习阶层式特征表示。深度卷积网络350的输出是针对输入数据352的分类得分366。分类得分366可以是概率集,其中每个概率是输入数据包括来自特征集合的特征的概率。
65.图4是解说可使人工智能(ai)功能模块化的示例性软件架构400的框图。根据本公开的各方面,通过使用该架构,可以设计可使得片上系统(soc)420的各种处理块(例如,cpu 422、dsp 424、gpu 426和/或npu 428)支持如所公开的用于针对ai应用402的后训练量化的自适应舍入的应用。
66.ai应用402可被配置成调用在用户空间404中定义的功能,例如,这些功能可提供对指示设备当前操作位置的场景的检测和识别。例如,ai应用402可以取决于所识别的场景是办公室、演讲厅、餐厅、还是诸如湖泊之类的室外环境来不同地配置话筒和相机。ai应用402可作出对与在ai功能应用编程接口(api)406中定义的库相关联的经编译程序代码的请求。该请求可最终依赖于被配置成基于例如视频和定位数据来提供推断响应的深度神经网络的输出。
67.运行时引擎408(其可以是运行时框架的经编译代码)可进一步可由ai应用402访问。例如,ai应用402可使得运行时引擎按特定时间区间或由应用的用户接口检测到的事件触发地来请求推断。当使得运行时引擎提供推断响应时,运行时引擎可进而向在soc 420上运行的操作系统(os)空间(诸如内核412)中的操作系统发送信号。操作系统进而可使得在cpu 422、dsp 424、gpu 426、npu 428或其某种组合上执行连续量化松弛。cpu 422可由操作系统直接访问,而其他处理块可通过驱动器(诸如分别用于dsp 424、gpu 426或npu 428的驱动器414、416或418)来访问。在示例性示例中,深度神经网络可被配置成在处理块(诸如cpu 422、dsp 424和gpu 426)的组合上运行,或可在npu 428上运行。
68.应用402(例如,ai应用)可被配置成调用在用户空间404中定义的功能,例如,这些功能可提供对指示设备当前操作位置的场景的检测和识别。例如,应用402可以取决于所识别的场景是办公室、演讲厅、餐厅、还是诸如湖泊之类的室外环境来不同地配置话筒和相
机。应用402可作出对与在场景检测应用编程接口(api)406中定义的库相关联的经编译程序代码的请求以提供对当前场景的估计。该请求可最终依赖于被配置成基于例如视频和定位数据来提供场景估计的差分神经网络的输出。
69.运行时引擎408(其可以是运行时框架的经编译代码)可进一步可由应用402访问。例如,应用402可使得运行时引擎按特定时间区间或由应用的用户接口检测到的事件触发地请求场景估计。在使得运行时引擎估计场景时,运行时引擎可进而向在soc 420上运行的操作系统410(诸如内核412)发送信号。操作系统410进而可使得在cpu 422、dsp 424、gpu 426、npu 428或其某种组合上执行计算。cpu 422可由操作系统直接访问,而其他处理块可通过驱动器(诸如分别用于dsp 424、gpu 426或npu 428的驱动器414-418)来访问。在示例性示例中,差分神经网络可被配置成在处理块(诸如cpu 422和gpu 426)的组合上运行,或可在npu 428上运行。
70.本公开的各方面涉及能量高效的设备上分布外检测和改进的分类性能。
71.图5是解说根据本公开的各方面的用于对人工神经网络模型进行能量高效的个性化的示例架构500的框图。采用示例架构500来提供能量高效的资源分配以解决资源约束,包括在设备上训练时遇到的功率和存储器限制。根据本公开的各方面,用于训练和操作人工神经网络的某些任务可被指派给不同的资源。示例架构500可包括可被用于执行与训练神经网络或操作神经网络以生成输出(例如,推断)相关联的任务的一个或多个资源。资源可包括一个或多个子系统,诸如举例而言,离线处理器(例如,x86处理器)、中央处理单元(cpu)/图形处理单元(gpu)、或数字信号处理器(dsp)/神经处理单元(npu)。当然,根据设计偏好可包括附加的或更少的资源。在一些方面,可提供cpu/gpu和dsp/npu以用于例如在移动设备(诸如智能电话)上的在线计算。在一些方面,cpu/gpu和dsp/npu还可被包括在片上系统(soc)中。
72.每个资源可根据功耗来分类。例如,cpu/gpu可被分类为具有高功耗,而dsp/npu可被分类为具有较低功耗。附加地,各种训练和推断任务可根据计算成本或复杂性来分类。例如,学习用户无关分类器(例如,uic 512)或广义模型的任务相对于其他训练和推断任务可被分类为高计算任务,因为它可包括处理来自大量用户的数百万数据样本。另一方面,特征提取(例如,经由特征提取器522)相对于其他训练和推断任务可被分类为低计算任务。因此,可基于功耗和计算成本或复杂性来分配资源以执行与生成个性化模型相关联的训练和推断任务。在一些方面,可在片上系统(soc)的低功率区域中执行低计算组件/任务。另一方面,高计算任务(例如,学习uic 512、学习uiood检测器514或搜索和优化udc 516)可经由离线处理器502离线执行。
73.如图5中所示,可在x86上执行离线过程510。分布外检测过程520可例如在soc的低功率元件(例如,dsp或npu,其中较低功率元件可被用于执行较不密集的计算)上在线处理。模型个性化过程540可在soc的高功率元件(例如,cpu或gpu,其中较高功率元件可被用于较密集的计算)上处理。当然,本公开并不受限于此,并且此类操作可由任何合适的处理元件执行。离线训练过程510可包括诸如从许多用户学习用户无关分类器(uic)512、学习用户无关分布外(uiood)检测器514、以及离线训练和搜索以优化用户相关分类器(udc)516之类的任务。分布外(ood)检测器过程520可从传感器(例如,相机)532接收输入,该输入可在融合同步(fuse sync)534中进行处理。融合同步534从传感器532接收原始数据并将原始数据打
包,进而提供给特征提取器522。经提取的特征可被提供给uic 524。
74.uic 524可以是在512中习得的uic的经蒸馏版本(uic
蒸馏
),以使得它是可在移动设备上部署的较小模型。uic
蒸馏
524可用作多数分类器和少数数据特征提取器。即,uic
蒸馏
524经由相继卷积层从输入提取特征。从输入提取的中间特征可被提供给uiood 526和选通代理528。uiood检测器526检测中间特征相对于用于uic 524的训练数据是否ood。如果确定中间特征在分布内(in-distribution)(例如,在大多数分布内),则将中间特征提供给uic 524,该uic 524提供分类或推断。
75.另一方面,如果中间特征是ood数据(例如,在少数内),则由uic 524将中间特征提供给选通代理528。选通代理528例如可以是有限状态机。选通代理528可经由个性化模块540为设备上学习提供有条件选通或经由udc 530提供推断。如果中间特征(可被称为“少数特征”)在用于udc 530的训练数据集中被表示,则选通代理可将少数特征提供给udc 530以确定推断。然而,如果选通代理确定udc数据集中不包括少数特征或ood特征,则选通代理528可将少数特征提供给个性化模块540。在一些方面,可提示用户为此类数据提供标签(542)。标签可被用于在框544中进一步训练udc。
76.在一些方面,该架构还可包括统一的融合-同步-特征提取器流水线,其中经由传感器532观察到的数据可经由融合同步534来处理。从许多用户(例如,分布式uic模型的接收者)提取的特征可被收集并提供以用于对更复杂uic 512的离线训练。
77.图6是解说根据本公开的各方面的对知识进行离线蒸馏以产生用于在移动设备上操作的经蒸馏用户无关分类器(uic
蒸馏
)的框图600。参照图6,可以用硬目标或实际标签来训练用户无关分类器uic
复杂
(uic
complex
)604(例如,如在图5的任务512中执行的)。
78.uic
复杂
604可以例如是使用来自许多用户的数据来离线训练的深度神经网络(例如,深度卷积网络350)。模型压缩技术(诸如知识蒸馏)例如可被应用于uic
复杂
604以将uic
复杂
604的知识传递到较小模型(诸如uic
蒸馏
612)中。由于uic
复杂
604和uic
蒸馏
612可具有不同的网络架构,因此uic
复杂
604可被用于训练uic
蒸馏
612。神经网络(例如,uic
蒸馏
612)可通过使用“softmax”输出层(例如,608)来产生类别概率,该“softmax”输出层通过将为每个类别计算的logitfi(x)与其他logits进行比较来将logit fi(x)转换成概率pi,其中t是温度。在应用softmax函数来校准神经网络之前,使用温度t来缩放至logit。温度t可在推断期间被设置为1以恢复出原始概率。对于输入614处的给定输入x,softmax分数是由下式给出的最大softmax概率:
[0079][0080]
经预训练的uic
复杂
604可被用于计算软目标。即,给定输入602,uic
复杂
604可操作以计算输出(例如,推断)。然而,计算出的输出是通过将uic
复杂
604的输出除以t进行温度缩放的(例如,606),其中t是温度缩放参数并且t∈r
+
在训练期间被设置为大于一(1)的值。之后,softmax函数608被应用于经温度缩放的输出。经温度缩放的输出是软目标610并且随后被用于训练uic
蒸馏
612。使用t的较高值产生在所有类别上较软的概率分布。由此,通过使用软目标610,可以放宽计算复杂性,以使得具有较低计算能力的设备可以在比使用硬目标的情况要少的处理时间中确定推断。即,可在降低准确性的折衷下提高处理速度。这样做时,还可提高能量效率,因为在由使用软目标610训练的uic
蒸馏
612计算推断期间消耗更少的能
量。反之,在一些方面,更高的准确性可能比速度更重要。如此,也可使用实际标签或硬目标620来训练uic
蒸馏
612。因此,可使用两个损失函数(例如,交叉熵损失1和交叉熵损失2)来训练uic
蒸馏
612。交叉熵损失2的块616基于软目标610来计算交叉熵损失(损失2)。另一方面,交叉熵损失1的块618基于硬目标(例如,实际标签或原始训练数据内的独热(one-hot)向量表示)来计算交叉熵损失(损失1)。交叉熵损失1和交叉熵损失2被提供给交叉熵损失块622并被组合。重要性因子可被应用于损失1和损失2,以使得在训练uic
蒸馏
612时也可考虑速度与准确性之间的折衷。在该情形中,交叉熵损失块622可将总损失l计算为:
[0081]
l=(1-λ)
×
损失1+λ
×
损失2,
ꢀꢀꢀꢀꢀꢀ
(2)
[0082]
其中λ是交叉熵损失1与交叉熵损失2之间的重要性比率。在一些方面,重要性比率λ可由用户例如基于施加于准确性和速度上的重要性来选择。在一个示例中,重要性比率λ可被设置为0.5,其中速度和准确性的重要性相等。因此,可使用这两个目标函数(例如,损失1和损失2)高效地训练uic
蒸馏
612。
[0083]
在训练了uic
蒸馏
612之后,可将uic
蒸馏
612例如部署在移动设备上并用于推断确定(预测)。在一些方面,来自uic
蒸馏
612的中间层激活或其压缩(例如,主成分分析)可被重新用作uiood检测器或udc的输入特征。即,uic
蒸馏
612是可由阶层式特征提取表征的神经网络,例如具有多个层的cnn。uic
蒸馏
612产生中间层激活(输出)作为特征。较低层特征可具有较多的数据维度,而较高层特征可具有较少的数据维度。较多的数据维度可意味着较多的数据移动,并由此意味着较多的计算。从能量效率角度而言,例如可基于离线估计期间的准确性折衷来选择uic的不同中间层激活(特征)作为uiood/udc的输入。
[0084]
图7是解说根据本公开的各方面的对用户相关分类器(udc)和用户无关分布外(uiood)检测器的离线搜索和优化的示例的框图700。参照图7,示出了经蒸馏用户无关分类器(uic
蒸馏
)702的示例结构。uic
蒸馏
702可接收日志文件720形式的传感器数据作为输入。在一个示例中,日志文件可包括传感器数据,诸如来自惯性测量单元(imu)的数据。imu可包括用于检测线性加速度的一个或多个加速度计、用于检测旋转速率的一个或多个陀螺仪、以及用于检测航向参考的磁力计。在图7的示例中,可在多个线程(包括加速度计线程724、陀螺仪线程726和磁力计线程728)中提供imu数据并且可将imu数据存储在缓冲器722中。在一些方面,缓冲器722可以是无锁(并发操作在有限数目的过程步骤中完成)缓冲器。加速度计线程724、陀螺仪线程726和磁力计线程728可例如使用线程之中的循环(round-robin)缓冲器同步提供给uic
蒸馏
702。
[0085]
uic
蒸馏
702包括多个层(0-n),继之以softmax层,该softmax层输出推断。根据本公开的各方面,uic
蒸馏
702的中间层激活或其压缩(例如,主成分分析)可被用作uiood检测器或udc(未示出)的输入特征。uic
蒸馏
702的不同层激活可用作特征输入以构建uiood检测器和udc。给定搜索空间704(包括uiood、udc
1-udcn),可实现搜索策略706以标识改进的、并且在一些方面最优的uiood和/或udc架构(例如,分别为nn1和nn2)。在一些方面,可确定标签的改进的和/或最优的中间层特征图或特征向量。
[0086]
性能估计策略708可评估每个uiood和/或udc架构的性能改进。可相对于某些在线学习度量来确定性能测量或性能估计策略708。例如,性能估计可相对于准确性、等待时间、存储器或训练阈值。在一些方面,udc可以是k最近邻居或神经网络(例如,经修改以容适类别的神经网络的最后或若干全连通层)。即,对于浅学习,可采用k最近邻居算法。另一方面,
对于深度学习,经预训练的特征提取器(来自离线训练)可与一个全连通层(可在设备上训练)和若干全连通层(可在设备上训练)组合。在一个示例中,性能估计策略包括使用用于许多用户的数据集来训练udc并根据个体用户数据来评估其性能。对多uic网络架构的离线训练可生成许多日志文件720。每个日志文件720可包括例如批次大小、损失、准确性、以及其他模型细节和度量。可检查每个日志文件720并且可通知性能估计策略。在一个示例中,具有最高准确性的模型可被选择为uic的经蒸馏版本,uic
蒸馏
702。
[0087]
在一些方面,uiood检测器(例如,图5的526)可按各种方式配置以确定数据是否在分布外(ood)。在一种办法中,可使用极值签名来确定数据是否为ood。极值签名指定深度神经激活的哪些维度具有最大值。对于已知类别,可用作类原型的激活的均值向量可按值降序排序。测试图像的神经激活也可以按顺序排列。使用这种方法,激活强度的分布遵循与类原型类似的趋势。相比之下,新颖或不同类别的图像在不同的维度集合中具有强激活。因此,如果数据显示出与类原型类似的极值签名,则该数据很可能在分布内。另一方面,如果数据未显示出与类原型类似的极值签名,则该数据很可能在分布外。
[0088]
在第二种办法中,来自对softmax分数分布的预处理的输入可被用于ood检测。在第二种办法中,分布内和分布外示例的softmax分数分布更接近1/n并且更可分离。在一些方面,ood检测可通过自监督确定。例如,自编码器可执行ood检测。自编码器包括编码器和解码器,该编码器将输入数据转换成隐表示(瓶颈层),该解码器将隐表示转换成输出(例如,经重构输入)。由于自编码器被训练成使得标签与输入相同,因此可以说它是经由自监督学习来训练的。
[0089]
图8是解说根据本公开的各方面的选通代理800的示例操作的框图。参照图8,示出了在线经蒸馏用户无关分类器(uic
蒸馏
)和用户无关分布外(uiood)检测器804以及选通代理800。选通代理800可接收来自uic
蒸馏
802的中间层激活和来自uiood检测器804的分布外(ood)检测确定作为输入。如果确定该输入在分布外,则该输入或对应于该输入的特征可被提供给udc。udc可基于这些特征来进行训练以产生或更新个性化模型。例如,可评估输入以确定个性化模型(例如,udc)是否已在该数据输入上进行了训练(例如,标签已经存在)。如果udc已进行了训练,则可将该输入提供给udc以确定推断。另一方面,如果udc还未进行训练,则可对该输入加标签并保存到udc数据集。之后,可以训练并测试udc。
[0090]
在一些方面,还可实现同步策略。在一个示例中,三个传感器(例如,加速度计824、陀螺仪826、和磁力计828)可经由缓冲器820将实时输入数据流提供给uic
蒸馏
802。每个传感器可产生(x,y,z)值的异步类型报告。目前,系统可能无法保证例如以固定频率(例如,50hz)同步生成传感器数据。为了将3个传感器数据同步到一起,在一些方面,代替缓冲器锁定解决方案,可采用更加能量高效的缓冲器无锁解决方案。这样做时,缓冲器820可被配置为存储器中的2维阵列数据结构,以保存来自传感器(例如,加速度计824、陀螺仪826和磁力计828)的新传入数据。缓冲器820的每一列可以用于一个传感器的一个轴以写入数据,并且各列可包括每个传感器的数据,其中每个传感器具有(x,y,z)坐标。因此,在一些实现中,可提供该架构并在没有缓冲器锁定机制的情况下操作。
[0091]
在操作中,uic
蒸馏
802可接收输入,诸如举例而言图像、语音数据、或序列数据。输入也可以是传感器数据,诸如imu数据。在一些方面,可经由实时数据流来提供输入。输入可经由uic
蒸馏
802来处理。由uic
蒸馏
802产生的中间激活和输出中的一者或多者可被提供给uiood
检测器804。uiood 804可处理激活和输出以确定输入是否为ood。该确定可被称为检测结果。检测结果可经由输入820连同uic
蒸馏
802的中间激活和输出提供给选通代理800。进而,选通代理800可确定udc数据集中是否包括ood数据。如果udc数据集中包括ood数据,则选通代理经由节点822确定ood数据被提供给udc(未示出)。另一方面,如果选通代理确定udc数据集中不包括ood数据,则选通代理800可经由节点826请求或接收ood数据的标签。选通代理800还可经由节点824提供要基于ood数据来训练udc的指示。在一些方面,当接收到的ood数据的数目超过预定义阈值时,可训练udc。
[0092]
图9是解说根据本公开的各方面的设备上的协作式增量学习的示例的框图900。用户902可直接交互以注释或标记(904)在线少数数据(例如,用户相关数据或ood)。uiood检测器914可使用uic
蒸馏
910的中间特征912作为输入的特征图。推断结果可以直接从经预训练的模型uic
蒸馏
910写入,作为udc数据集918重新使用。
[0093]
在一些方面,用户902的人工注释也可被用于提供ood数据的标签(例如,904)。例如,如果uiood检测器914检测到中间特征或激活是ood数据,则该ood数据可被提供给选通代理916。选通代理916可确定udc数据集918是否包括ood数据的标签(例如,904)。如果udc数据集918中包括标签(例如,904),则可操作udc 920以确定推断。然而,如果udc数据集918不包括ood数据的标签(例如,904),则选通代理916可提示用户902提供标签904。
[0094]
使用加标签且保存的udc数据集918,udc 920可从端到端地训练,而不是通过冻结模型层(例如,uic
蒸馏
的中间层激活)并修改若干全连通层中的最后全连通层以容适新类别来训练。附加地,人还可确定何时开始在设备上使用ood数据进行训练。基于人工注释和端到端训练的这种组合,可改进udc 920的准确性。
[0095]
图10解说了根据本公开的各方面的用于操作人工神经网络的方法1000。如图10中所示,在框1002,方法1000在第一人工神经网络处接收输入。第一人工神经网络可以是用户无关分类器(uic)。参照图6,uic(例如,uic
蒸馏
612)可从基于来自许多用户的示例离线训练的更复杂人工神经网络(uic
复杂
604)蒸馏出。
[0096]
在框1004,方法1000处理该输入以提取中间特征集合。例如,如关于图5所讨论的,uic
蒸馏
524经由相继卷积层从输入提取特征。
[0097]
在框1006,方法1000确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外。如参照图8所描述的,由uic
蒸馏
802产生的中间激活和输出中的一者或多者可被提供给uiood检测器804。uiood 804可处理激活和输出以确定输入是否为ood。该确定可被称为检测结果。
[0098]
在框1008,方法1000至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络。如参照图8所描述的,如果确定输入在分布外,则该输入或对应于该输入的特征可被提供给udc。udc可基于这些特征来进行训练以产生或更新个性化模型。
[0099]
在一些方面,用于执行第一人工神经网络和第二人工神经网络的训练和推断任务的资源(例如,cpu、gpu、npu和/或dsp)可根据训练和推断任务的计算复杂性以及资源的功耗来分配。
[0100]
在一个方面,接收装置、确定装置和/或生成装置可以是cpu 102、与cpu 102相关联的程序存储器、专用存储器块118、全连通层362、npu 428、和/或被配置成执行所述功能的路由连接处理单元216。在另一配置中,前述装置可以是被配置成执行由前述装置所叙述
的功能的任何模块或任何装备。
[0101]
以上所描述的方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(asic)、或处理器。一般而言,在附图中有解说的操作的场合,那些操作可具有带相似编号的相应配对装置加功能组件。
[0102]
在以下经编号条款中提供了各实现示例:
[0103]
1.一种用于生成个性化人工神经网络(ann)模型的方法,包括:
[0104]
在第一人工神经网络处接收输入;
[0105]
处理该输入以提取中间特征集合;
[0106]
确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外;以及
[0107]
至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络。
[0108]
2.如条款1的方法,其中,该第二人工神经网络是至少部分地基于该中间特征在移动设备上进行训练的。
[0109]
3.如条款1的方法,其中,该第二人工神经网络基于该中间特征来确定分类。
[0110]
4.如条款1的方法,其中,该中间特征至少部分地基于该分布外确定而被提供给服务器。
[0111]
5.如条款1的方法,其中,用于执行该第一人工神经网络和该第二人工神经网络的训练和推断任务的资源是根据该训练和推断任务的计算复杂性以及该资源的功耗来分配的。
[0112]
6.如条款5的方法,其中,该第一人工神经网络是用户无关分类器,而该第二人工神经网络是用户相关分类器。
[0113]
7.如条款1的方法,进一步包括:
[0114]
确定该第二人工神经网络是否已基于分布外输入进行了训练;
[0115]
如果该第二人工神经网络还未基于该分布外输入进行训练,则接收该分布外输入的标签;以及
[0116]
如果该第二人工神经网络已基于该分布外输入进行了训练,则操作该第二人工神经网络以生成推断。
[0117]
8.如条款1-7中任一者的方法,进一步包括:
[0118]
将该输入的极值签名与类原型进行比较;以及
[0119]
如果该极值签名在不同的维度集合中具有比该类原型更大的激活,则检测到该输入在分布外。
[0120]
9.一种用于生成个性化人工神经网络(ann)模型的装置,包括:
[0121]
存储器;以及
[0122]
耦合到该存储器的至少一个处理器,该至少一个处理器被配置成:
[0123]
在第一人工神经网络处接收输入;
[0124]
处理该输入以提取中间特征集合;
[0125]
确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外;以及
[0126]
至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经
网络。
[0127]
10.如条款9的装置,其中,该至少一个处理器被进一步配置成:至少部分地基于该中间特征在移动设备上训练该第二人工神经网络。
[0128]
11.如条款9的装置,其中,用于执行该第一人工神经网络和该第二人工神经网络的训练和推断任务的资源是根据该训练和推断任务的计算复杂性以及该资源的功耗来分配的。
[0129]
12.如条款9的装置,其中,该第一人工神经网络是用户无关分类器,而该第二人工神经网络是用户相关分类器。
[0130]
13.如条款9的装置,其中,该至少一个处理器被进一步配置成:
[0131]
确定该第二人工神经网络是否已基于分布外输入进行了训练;
[0132]
如果该第二人工神经网络还未基于该分布外输入进行训练,则接收该分布外输入的标签;以及
[0133]
如果该第二人工神经网络已基于该分布外输入进行了训练,则操作该第二人工神经网络以生成推断。
[0134]
14.如条款9-13中任一者的装置,其中,该至少一个处理器被进一步配置成:
[0135]
将该输入的极值签名与类原型进行比较;以及
[0136]
如果该极值签名在不同的维度集合中具有比该类原型更大的激活,则检测到该输入在分布外。
[0137]
15.一种用于生成个性化人工神经网络(ann)模型的装备,包括:
[0138]
用于在第一人工神经网络处接收输入的装置;
[0139]
用于处理该输入以提取中间特征集合的装置;
[0140]
用于确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外的装置;以及
[0141]
用于至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络的装置。
[0142]
16.如条款15的装备,进一步包括:用于至少部分地基于该中间特征在移动设备上训练该第二人工神经网络的装置。
[0143]
17.如条款15的装备,进一步包括:用于根据该第一人工神经网络和该第二人工神经网络的训练和推断任务的计算复杂性以及用于执行该训练和推断任务的资源的功耗来分配该资源的装置。
[0144]
18.如条款17的装备,其中,该第一人工神经网络是用户无关分类器,而该第二人工神经网络是用户相关分类器。
[0145]
19.如条款15的装备,进一步包括:
[0146]
用于确定该第二人工神经网络是否已基于分布外输入进行了训练的装置;
[0147]
用于如果该第二人工神经网络还未基于该分布外输入进行训练,则接收该分布外输入的标签的装置;以及
[0148]
用于如果该第二人工神经网络已基于该分布外输入进行了训练,则操作该第二人工神经网络以生成推断的装置。
[0149]
20.如条款15-20中任一者的装备,进一步包括:
[0150]
用于将该输入的极值签名与类原型进行比较的装置;以及
[0151]
用于如果该极值签名在不同的维度集合中具有比该类原型更大的激活,则检测到该输入在分布外的装置。
[0152]
21.一种非瞬态计算机可读介质,其上包括用于生成个性化人工神经网络(ann)模型的程序代码,该程序代码由处理器执行并且包括:
[0153]
用于在第一人工神经网络处接收输入的程序代码;
[0154]
用于处理该输入以提取中间特征集合的程序代码;
[0155]
用于确定该输入相对于用于训练该第一人工神经网络的数据集是否在分布外的程序代码;以及
[0156]
用于至少部分地基于分布外确定而将对应于该输入的中间特征提供给第二人工神经网络的程序代码。
[0157]
22.如条款21的非瞬态处理器可读介质,进一步包括:用于至少部分地基于该中间特征在移动设备上训练该第二人工神经网络的程序代码。
[0158]
23.如条款21的非瞬态计算机可读介质,进一步包括:用于根据该第一人工神经网络和该第二人工神经网络的训练和推断任务的计算复杂性以及用于执行该训练和推断任务的资源的功耗来分配该资源的程序代码。
[0159]
24.如条款23的非瞬态计算机可读介质,其中,该第一人工神经网络是用户无关分类器,而该第二人工神经网络是用户相关分类器。
[0160]
25.如条款21的非瞬态计算机可读介质,进一步包括:
[0161]
用于确定该第二人工神经网络是否已基于分布外输入进行了训练的程序代码;
[0162]
用于如果该第二人工神经网络还未基于该分布外输入进行训练,则接收该分布外输入的标签的程序代码;以及
[0163]
用于如果该第二人工神经网络已基于该分布外输入进行了训练,则操作该第二人工神经网络以生成推断的程序代码。
[0164]
26.如条款21-25中任一者的非瞬态计算机可读介质,进一步包括:
[0165]
用于将该输入的极值签名与类原型进行比较的程序代码;以及
[0166]
用于如果该极值签名在不同的维度集合中具有比该类原型更大的激活,则检测到该输入在分布外的程序代码。
[0167]
如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或另一数据结构中查找)、查明及类似动作。附加地,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)、及类似动作。此外,“确定”可包括解析、选择、选取、确立及类似动作。
[0168]
如本文中所使用的,引述一列项目“中的至少一者”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一者”旨在涵盖:a、b、c、a-b、a-c、b-c、以及a-b-c。
[0169]
结合本公开所描述的各种解说性逻辑框、模块、以及电路可用设计成执行所描述功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列信号(fpga)或其他可编程逻辑器件(pld)、分立的门或晶体管逻辑、分立的硬件组件或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何市售的
处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如,dsp与微处理器的组合、多个微处理器、与dsp核心协同的一个或多个微处理器、或任何其他此类配置。
[0170]
结合本公开描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在本领域所知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(ram)、只读存储器(rom)、闪存、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、寄存器、硬盘、可移动盘、cd-rom,等等。软件模块可包括单条指令、或许多条指令,且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可被耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可被整合到处理器。
[0171]
本文所公开的方法包括用于达成所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。
[0172]
所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在硬件中实现,则示例硬件配置可包括设备中的处理系统。处理系统可以用总线架构来实现。取决于处理系统的具体应用和整体设计约束,总线可包括任何数目的互连总线和桥接器。总线可将包括处理器、机器可读介质、以及总线接口的各种电路链接在一起。总线接口可用于尤其将网络适配器等经由总线连接至处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,按键板、显示器、鼠标、操纵杆,等等)也可以被连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路以及类似电路,它们在本领域中是众所周知的,因此将不再进一步描述。
[0173]
处理器可负责管理总线和一般处理,包括执行存储在机器可读介质上的软件。处理器可用一个或多个通用和/或专用处理器来实现。示例包括微处理器、微控制器、dsp处理器、以及其他能执行软件的电路系统。软件应当被宽泛地解释成意指指令、数据、或其任何组合,无论是被称作软件、固件、中间件、微代码、硬件描述语言、或其他。作为示例,机器可读介质可包括随机存取存储器(ram)、闪存、只读存储器(rom)、可编程只读存储器(prom)、可擦式可编程只读存储器(eprom)、电可擦式可编程只读存储器(eeprom)、寄存器、磁盘、光盘、硬驱动器、或者任何其他合适的存储介质、或其任何组合。机器可读介质可被实施在计算机程序产品中。该计算机程序产品可以包括包装材料。
[0174]
在硬件实现中,机器可读介质可以是处理系统中与处理器分开的一部分。然而,如本领域技术人员将容易领会的,机器可读介质或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传输线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。替换地或附加地,机器可读介质或其任何部分可被集成到处理器中,诸如高速缓存和/或通用寄存器文件可能就是这种情形。虽然所讨论的各种组件可被描述为具有特定位置,诸如本地组件,但它们也可按各种方式来配置,诸如某些组件被配置成分布式计算系统的一部分。
[0175]
处理系统可以被配置为通用处理系统,该通用处理系统具有一个或多个提供处理器功能性的微处理器、以及提供机器可读介质中的至少一部分的外部存储器,它们都通过
外部总线架构与其他支持电路系统链接在一起。替换地,该处理系统可以包括一个或多个神经元形态处理器以用于实现所描述的神经元模型和神经系统模型。作为另一替换方案,处理系统可以用带有集成在单块芯片中的处理器、总线接口、用户接口、支持电路系统、和至少一部分机器可读介质的专用集成电路(asic)来实现,或者用一个或多个现场可编程门阵列(fpga)、可编程逻辑器件(pld)、控制器、状态机、门控逻辑、分立硬件组件、或者任何其他合适的电路系统、或者能执行本公开通篇所描述的各种功能性的电路的任何组合来实现。取决于具体应用和加诸于整体系统上的总设计约束,本领域技术人员将认识到如何最佳地实现关于处理系统所描述的功能性。
[0176]
机器可读介质可包括数个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。这些软件模块可包括传送模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。作为示例,当触发事件发生时,可以从硬驱动器中将软件模块加载到ram中。在软件模块执行期间,处理器可以将一些指令加载到高速缓存中以提高访问速度。可随后将一个或多个高速缓存行加载到通用寄存器文件中以供处理器执行。在以下述及软件模块的功能性时,将理解此类功能性是在处理器执行来自该软件模块的指令时由该处理器来实现的。此外,应领会,本公开的各方面产生对处理器、计算机、机器或实现此类方面的其它系统的机能的改进。
[0177]
如果在软件中实现,则各功能可作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,这些介质包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类计算机可读介质可包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或能用于携带或存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。另外,任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或无线技术(诸如红外(ir)、无线电、以及微波)从web网站、服务器、或其他远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电、以及微波)就被包括在介质的定义之中。如本文所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘、和碟,其中盘(disk)常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。因此,在一些方面,计算机可读介质可包括非瞬态计算机可读介质(例如,有形介质)。另外,对于其他方面,计算机可读介质可包括瞬态计算机可读介质(例如,信号)。以上的组合应当也被包括在计算机可读介质的范围内。
[0178]
由此,某些方面可包括用于执行本文中给出的操作的计算机程序产品。例如,此类计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能由一个或多个处理器执行以执行所描述的操作。对于某些方面,计算机程序产品可包括包装材料。
[0179]
此外,应当领会,用于执行所描述的方法和技术的模块和/或其他恰适装置可由用户终端和/或基站在适用的场合下载和/或以其他方式获得。例如,此类设备能被耦合到服务器以促成用于执行所描述的方法的装置的转移。替换地,所描述的各种方法能经由存储装置(例如,ram、rom、诸如压缩碟(cd)或软盘等物理存储介质等)来提供,以使得一旦将该存储装置耦合到或提供给用户终端和/或基站,该设备就能获得各种方法。此外,可利用适
于向设备提供所描述的方法和技术的任何其他合适的技术。
[0180]
将理解,权利要求并不被限于以上所解说的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1