掌桥专利:专业的专利平台
掌桥专利
首页

用于操作神经网络的装置、对应的方法以及计算机程序产品

文献发布时间:2023-06-19 12:00:51


用于操作神经网络的装置、对应的方法以及计算机程序产品

本申请要求于2020年1月24日提交的意大利申请号 102020000001462的优先权,其申请内容通过引用并入本文。

技术领域

本公开的实施例涉及用于操作神经网络的解决方案。本公开的实 施例具体涉及用于操作移动设备中的神经网络的解决方案。

背景技术

神经网络(NN)是一种计算架构,它试图通过使用模仿人脑操 作方式的过程来标识一组数据中潜在的关系。神经网络具有适应于变 化的输入的能力,使得网络可以在不重新设计输出准则的情况下产生 尽可能最好的结果。

例如,神经网络被广泛应用于提取图案和检测趋势,这些图案和 趋势过于复杂使人类或其他计算机技术都无法注意到。

参考图1,其中示意性地示出了操作神经网络XNN的装置10的 情况下,从正式的观点来看,神经网络架构可以被描述为网络或图形, 其包括多个节点,这些节点是神经网络单元,通过输入和输出每个单 元的边缘或连接进行耦合。每个边缘或连接与相应的权重相关联,使 得单元可以实行输入的线性组合以获得输出值。每个单元还可以包括 激活函数以控制单元的输出的振幅。阈值和偏置值还可以以本身已知 的方式与单元相关联。

在图1中示出了多线性感知型或深度前馈型神经网络XNN的示 例,其中如大部分神经网络一样,单元

第一层L0的单元表示输入单元,输入单元没有先行条件,通常 不实现权重或激活函数,只保留输入值。

因此,即使严格地说,它们不是计算单元,仅代表信息进入网络 的入口点,也被称为输入单元和输入层IL。

例如,到输入单元的输入数据可以是图像,并且也可以是其他种 类的数字信号:声学信号、生物医学信号、来自陀螺仪和加速计的惯 性信号可以是这些信号的示例。

在图1中形成输出层OL(即,层L

最后,其他层L

假设网络具有L层,如上所述,可以采用用k=1,2,…,M表 示层的约定,从输入层开始,穿过隐藏层直到输出层。

通过以一种可能的表示法来考虑层L

u

W

矩阵W

此外,针对每个层k=1、…、(M-1),可以考虑被表示为偏置单 元的附加的单元

计算单元

-激活函数f,其可以是非线性单调函数,诸如sigmoidal函数或 整流函数(采用整流函数的单元被称为整流线性单元或ReLU),以及

-函数g

在一个或多个实施例中,如本文所示的神经网络的操作(执行) 可以包含沿着网络的方向的计算单元的激活的计算,例如其中信息从 输入层到输出层的传播。该过程被称为前向传播。

图1是如上所述的网络布置的示例,包括M+1层,包括输入层 IL(层0)、隐藏层HL(例如层1、层2、…)和输出层OL(层L)。

在移动和IoT(物联网)应用中,可以在移动/IoT/组件上实行神 经网络推理。在其他一些情况下(例如语音识别),将数据(例如语 音)上传到云,并且在云上实行神经网络;实际上,一种方法是在移 动电话中使用神经网络以减少云的过度分配。然而,在移动设备中, 有时资源不足以实行深度神经网络推理。

在谷歌移动框架中已知一种称为TensorFlow Lite的实现,其中已 经定义了一种委托模型,其中部分网络计算由外部设备(诸如GPU (图形处理单元))实行,如在

委托以如下概念进行工作:将整个或部分神经网络计算委托给外 部设备,通常是GPU(图形处理单元),以便更快地执行。

这是基于神经网络的分层性质:层执行的子集被移动到GPU。

在图2中示出了这种技术的示例。

神经网络XNN包括一组神经网络层IL、OL、HL,神经网络XNN 由装置操作,该装置包括由应用处理器(例如移动电话)表示的第一 处理系统11,该第一处理系统11接收输入信息IV或输入值,并操作 神经网络XNN的第一部分NN1,该神经网络XNN的第一部分NN1 包括该组层的第一子集,例如输入层IL,其包括获得第一中间输出II 的输入信息,在这种情况下,第一中间输出II是输入层IL的输出。 然后,应用处理器将第一中间输出II作为输入馈送到第一处理系统11外部的外部处理系统23,优选为GPU,该外部处理系统23执行神 经网络XNN的第二部分NN2,该神经网络XNN的第二部分NN2包 括该组层的第二子集,例如隐藏层HL和输出层OL,使用第一中间 输出II作为输入来计算第二中间输出OI,该第二中间输出OI然后作 为输出信息被提供给第一处理系统11,第一处理系统11将其提供作 为用于操作神经网络的整个装置的最终输出信息OV或输出值。

然而,神经网络正在从计算机视觉/用户交互到面向安全的服务扩 大其应用范围,诸如:

·生物统计学

·身份验证

·用户隐私(如语音识别)。

最后一点,由于语音识别通常是通过首先录制语音来完成的,因 此所录制的语音当然对隐私至关重要。

类似于先前所述,神经网络的不便之处在于:神经网络结构和权 重容易受到攻击,并且应用处理系统与外部处理系统之间的通信添加 了弱点。

此外,如果神经网络存储在容易被篡改的存储器中,则它很容易 被克隆;文献中报道了检测克隆而不防止克隆的水印技术。

发明内容

基于上述描述,感觉需要能够克服先前所列出的一个或多个缺点 的解决方案。

根据一个或多个实施例,通过具有以下权利要求中特别列出的特 征的装置来实现这样的目标。此外实施例涉及用于操作神经网络的相 关方法以及对应的相关计算机程序产品,该计算机程序产品可以在至 少一台计算机的存储器中加载并且包括用于当产品在计算机上运行 时实行该方法的步骤的软件代码部分。如本文所使用的,对这种计算 机程序产品的引用旨在等效于对包含用于控制计算机系统以协调该 方法的性能的指令的计算机可读介质的引用。对“至少一台计算机” 显然旨在强调本公开以分布式/模块化方式实现的可能性。

权利要求是本文提供的本公开的技术教导的组成部分。

如上所述,本公开提供了有关用于操作包括一组神经网络层(IL、 OL、HL)的神经网络的装置的解决方案,该装置包括:

第一处理系统,执行神经网络的第一部分以获得第一中间输出, 该神经网络的第一部分包括该组层的第一子集,

第二处理系统,在第一处理系统外部,被配置为接收第一部分的 第一中间输出作为输入,并且被配置为操作神经网络的第二部分以获 得相应输出,该神经网络的第二部分包括该组层的第二子集,第二处 理系统被配置为向第一处理系统提供相应输出的输出信息函数,第一 处理系统被配置为根据输出信息获得神经网络的最终输出,

其中,第二处理系统包括安全元件,其中第二部分的模型,并且 其中第二处理系统被配置为执行存储在神经网络的安全元件中的第 二部分,将输入信息应用于第二部分的模型以获得相应输出。

在变体实施例中,在安全元件中存储应用,该应用包括可由第二 处理系统执行的第二部分的模型。

在变体实施例中,这里描述的装置可以包括,该应用包括将输入 信息馈送到第二部分的模型的命令。

在变体实施例中,这里描述的装置可以包括,该应用包括接收相 应输出和输出预测的推理引擎。

在变体实施例中,这里描述的装置可以包括,第二部分的模型包 括输出层,特别是分类器。

在变体实施例中,这里描述的装置可以包括,第一处理系统包括 另一代理应用,该代理应用被配置为作为到第二处理系统和第二安全 元件的接口进行操作,获得第一中间输出并将其提供给第二处理系统 和安全元件,以及接收来自第二处理系统的相应输出的输出信息函数。

在变体实施例中,这里描述的装置可以包括,包括第二部分的模 型的应用包括速度机制,该速度机制将由应用可实行的执行数目限制 于给定的限制执行数目,特别地包括被设置为给定的限制执行数目的 计数器,该应用包括第二部分的模型,该第二部分的模型被配置为在 计数器达到给定的限制执行数目时停止。

在变体实施例中,这里描述的装置可以包括,安全元件是以下中 的一者:UICC、eUICC、eSE或可移除存储器卡。

在变体实施例中,这里描述的装置可以包括,第一处理系统是移 动设备的处理器,并且包括安全元件的第二处理系统是移动设备中的 集成卡。

本公开还提供了关于在根据任何先前的装置实施例的装置中执 行包括一组层的神经网络的方法的解决方案,该解决方案包括:

将经训练的神经网络划分为包括第一组层的第一部分和包括第 二组层的第二部分,

将第一部分存储在第一处理系统中,特别地存储在第一处理系统 可访问的存储器中,以供第一处理系统操作,

将包括第二部分的模型的应用存储在与第一处理系统外部的第 二处理系统相关联的安全元件中,特别地该模型包括对单元、连接及 其特性的描述,特别是与神经网络的第二部分的单元和连接相关联的 权重和函数,

操作第一部分以获得第一中间输出,

特别地通过代理应用,将第一中间输出作为中间输入提供给包括 安全元件中的第二部分的模型的应用,

在安全元件中执行第二部分以获得相应输出,以及

向第一处理系统提供相应输出的输出信息函数。

在变体实施例中,这里描述的方法可以包括向第一处理系统提供 相应输出的输出信息函数,包括以下中的一种:

将相应的输出反馈给推理引擎以获得预测,这些预测作为中间输 出信息OI被发送回第一处理系统以作为最终信息输出,

将神经网络的隐藏层的输出作为第一中间输出,或

将存储在应用中的输出层(特别是分类器)的输出作为第一中间 输出。

在变体实施例中,将包括第二部分的模型的应用存储在安全元件 中可以包括:通过安全通道或机密通道将模型远程传送到安全元件。

在变体实施例中,将包括第二部分的模型的应用存储在安全元件 中可以包括:使用OTA(空中(Over The Air))远程供应在安全元件 中加载模型。

在变体实施例中,这里描述的方法可以包括OTA服务器在安全 元件中加载应用,该应用包括用特定于该安全元件的给定密钥加密的 第二部分的模型,该安全元件被配置为用给定密钥解密这种第二部分 并实行该执行步骤。

本发明还提供了关于计算机程序产品的解决方案,该计算机程序 产品可以被加载到至少一个处理器的存储器中,并且包括用于实现任 何先前实施例的方法的软件代码的部分。

附图说明

现在将参考仅通过非限制性示例提供的附图来描述本公开的实 施例,其中:

图1和图2已经在上文描述;

图3示意性地示出了根据一个实施例的装置;以及

图4示出了说明了操作本文描述的装置的方法的一个实施例的操 作的流程图。

具体实施方式

在下文的描述中,给出了许多特定细节以提供对实施例的透彻理 解。实施例可以在没有一个或多个特定细节的情况下,或者使用其他 方法、组件、材料等实践。在其他实例中,没有详细地示出或描述众 所周知的结构、材料或操作以避免混淆实施例的方面。

本说明书中对“一个实施例”或“实施例”的引用意味着结合该 实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因 此,本说明书中的短语“在一个实施例中”或“在实施例中”在各个 地方的出现不一定全都指同一实施例。此外,在一个或多个实施例中, 可以以任何适当的方式组合特定特征、结构或特性。

本文提供的标题仅为了方便起见,并不解释实施例的范围或含义。

已经参考图1和图2描述的附图部件、元件或组件用先前在这种 附图中使用的相同参考来表示;为了不使本具体实施方式负担过重, 在下文中将不会重复对这种先前描述的元件的描述。

这里简单描述的解决方案使用第一处理系统来操作神经网络的 第一部分,并使用第二处理系统中的安全元件来操作神经网络的第二 部分,可能还执行神经网络推理。

安全元件是一种防篡改平台,能够根据一组确定的可信机构制定 的规则和安全要求,安全地托管应用及其机密和加密数据。

例如,安全平台GlobalPlatform是指定义,也可以被定义为能够 嵌入智能卡级应用的硬件、软件和协议的防篡改组合。

典型的实现包括UICC(通用集成电路卡)和eUICC(嵌入式通 用集成电路卡)、嵌入式安全元件(eSE)和可移除存储器卡。

由于许多神经网络非常大并且在安全元件上的简单执行会很慢, 因此这里描述的装置将应用中的第二部分存储在安全元件中,并且第 二处理系统被配置为:基于输入信息执行存储在神经网络的安全元件 中的应用中的第二部分,该输入信息包括由第一处理系统操作的第一 部分提供的中间信息。因此,神经网络的第二部分或委托部分通过预 加载(例如,在OEM或卡片制造商处)或通过使用OTA(空中)远 程供应并将输出信息提供给第一处理系统来存储在应用(具体地说是 小程序)中,将其提供为设备的输出。

因此,尽管安全元件在计算/存储容量方面受到限制,但该解决方 案利用了可以执行指定大小的神经网络,特别是对于具有低维输入参 数的神经网络,这也是基于安全的网络(例如多层感知器MLP)的一 个经常性特征。

因此,这里描述的装置和方法通过将神经网络部分(优选地,隐 藏层和推理引擎)存储在装置的安全元件中的应用或小程序中来保护 神经网络的输入信息和权重,该装置被配置为在安全元件中运行小程 序,诸如使用eSE或集成卡(诸如UICC和eUICC)的移动设备。

在图3中,示意性地示出了这里描述的装置的实施例。数字参考 20指示用于执行由手持移动电话表示的神经网络的装置。

手持移动电话20包括被配置为执行应用的应用处理器21,该应 用包括具有神经网络NNA的应用。具有神经网络NNA的应用是一种 应用,例如,它可能是安全敏感的应用,包含基于人工智能的精化的 某些部分,特别是神经网络XNN。如图1中所示,神经网络XNN可以由一系列层来表示,这些层包括一个输入层IL、一组隐藏层HL和 输出层OL。神经网络XNN不完全包含在具有神经网络NNA的应用 中,神经网络NNA仅包含第一部分NN1,但是它部分地被委托给代 理委托应用PD,代理委托应用PD也在应用处理器21中执行。换言 之,例如包括输入层IL和输出层OL的神经网络XNN的第一部分 NN1在具有神经网络NNA的应用中执行,而例如包括该组隐藏层HL 的神经网络NN的第二部分NN2由代理委托应用PD管理。代理委托应用PD在示例中显示为附加应用,例如,是Android封装APK中的 另一应用,具有神经网络ANN的应用将神经网络NN的部分计算委 托给该应用。在变体实施例中,代理委托可以由同一APK中的(由 APK允许的)另一应用、服务、代理、经由套接字通信的另一APK 中的应用等来实现。>>当然,图3中的代理委托应用PD仅是用于解 释为在逻辑上与主应用分离。优选地,代理委托应用PD与具有神经 网络NNA的应用集成。

装置20(在示例中为手持移动电话20)包括SIM卡22,SIM卡 22包括安全元件23。在安全元件23中,通过安全或机密信道(特别 是通过OTA)通过远程供应预加载或存储委托神经网络小程序DNA。

这种委托神经网络具有一种架构,包括:

-神经网络层阵列,表示神经网络NN的第二部分NN2,在示例 中是神经网络NN的该组隐藏层。这种阵列包括该组隐藏层的结构, 即神经元的数目和连接,以及每个神经元对其输入向量应用的权重, 以及

-命令CI,将从代理委托应用PD接收的中间输入信息II传递到 包含神经网络NN的第二部分NN2(即委托神经网络)的阵列,并将 委托输出信息OI返还给代理委托应用PD。

委托神经网络小程序DNA架构还可以包括推理引擎IE,该推理 引擎IE是被配置为与神经网络NN的部分NN2一起操作以基于由隐 藏层HL提供的信息实行预测的模块。在图3中,示出了推理引擎IE 提供中间输出信息IO,尽管在不同的实施例中,中间输出信息IO可以作为隐藏层HL的输出或者作为存储在委托神经网络小程序DNA 内的输出层(例如分类器)的输出。在后一种情况下,具有神经网络 NNA的应用可以不包括输出层OL。

因此,代理委托应用PD被配置为与SIM卡22交互,SIM卡22 包括存储委托神经网络小程序DNA的安全元件23,以执行神经网络 NN的第二部分NN2(即委托部分)的计算。代理委托应用PD将中 间输入信息II(优选地是来自神经网络XNN的输入层IL的信息)提 供给存储在安全元件23中的委托神经网络小程序DNA,从而安全地 执行,将委托输出信息OI返还给代理委托应用PD,代理委托应用 PD将其作为神经网络XNN的输出信息提供。

第二部分NN2通过例如在OEM处存储而在安全元件23中进行 预加载,或者通过安全元件23中的远程服务器通过空中(OTA)加 载。

OTA操作需要通过空中管理的远程服务器,这是安全元件(诸如 eSE或eUICC)的远程供应的通常情况。

可以通过重新使用现有的OTA协议来实行安全元件23的OTA 加载/更新。通过示例,包括第二部分NN2的神经网络结构的委托神 经网络小程序DNA简单地存储在文件或应用存储器中,因此根据 ETSI TS 102 226通过远程文件管理或远程小程序管理来实行加载。

OTA管理允许供应商在需要的情况下更新委托神经网络小程序 DNA,或者仅在需要时下载,例如在电话上分配对应的服务时。

安全元件远程应用管理协议,是一种在由多个设备使用的移动电 话上下载应用(例如NFC钱包)的协议,如全球平台所述(URL

因此,总结装置20被配置为实行由图4中所示的流程图表示的 示例性实施例中由500表示的方法,该方法包括:

将经训练的神经网络(例如网络XNN)划分510为包括第一组 层(例如输入层IL)的第一部分NN1和包括第二组层(例如隐藏层 HL)的第二部分,

将第一部分NN1存储520在第一处理系统21中(例如存储在存 储器中,特别是第一处理系统21可访问的存储器中,在示例中,在 移动设备中的处理器),以由这种第一处理系统21操作,

将包括第二部分NN2的模型的应用DNA存储530在安全元件23 (例如eUICC)中,该第二部分NN2与第一处理系统21外部的第二 处理系统22(即,卡的处理器)相关联,特别地,这种模型包括:对 网络或图形及其单元(例如,单元

操作540第一部分NN1以获得第一中间输出IO,例如输入层IL 的输出,特别是通过代理应用PD,该代理应用PD是用于与用作外部 系统的特定安全元件23和第二处理系统21交换数据或信息的接口,

将第一中间输出IO作为中间输入II提供550到安全元件123中 的委托神经网络小程序DNA,同样优选代理应用PD,以及

执行560第二部分NN2以获得相应输出O2。

对于570是指示进一步的步骤,包括:将相应输出O2的输出信 息OI函数提供给第一处理系统21,特别是通过代理PD。在特别示 出的示例中,步骤570包括:将相应输出O2馈送到推理引擎IE以获 得预测,这些预测作为中间输出信息OI被发送回第一处理系统21以作为最终信息OV输出。

在变体实施例中,步骤570可以包括将神经网络XNN的隐藏层 HL的输出作为第一中间输出IO。

在进一步的变体实施例中,步骤570可以包括将存储在委托神经 网络小程序DNA中的输出层(特别是分类器)的输出作为第一中间 输出(IO)。在后一种情况下,具有神经网络NNA的应用可以不包括 输出层OL。

存储步骤530可以包括:使用通过安全信道或机密信道到安全元 件23的模型的远程传送,优选地通过OTA(空中)远程供应,在安 全单元23中加载具有模型的委托神经网络小程序DNA。在变体实施 例中,存储步骤530可以包括:在将安全元件插入装置中之前(例如在OEM或卡片制造商处)预存储或预加载委托神经网络小程序DNA。

在变体实施例中,这里描述的解决方案进一步包括所谓的速度机 制。

由于所描述的解决方案旨在保护委托神经网络小程序DNA的权 重并阻止篡改或克隆,因为在足够的执行数目下,委托神经网络小程 序DNA的权重可能可以由外部估计。

因此,委托神经网络小程序DNA包括速度机制,该速度机制限 制小程序DNA可实行的执行数目,例如10000次执行。在一个实施 例中,速度机制可以由被设置为这种限制数的计数器实现,并且小程 序DNA被配置为在计数器到达限制数之后停止并提供其输出信息OI。 如果有信息或证明小程序DNA的执行是合法的,则OTA服务器可以 管理(例如禁用)速度机制的限制数。

在变体实施例中,安全元件23使用密钥K(对称或非对称)进 行个性化,该密钥K对移动应用(即小程序DNA)是未知的,但仅 针对存储实体(例如OTA服务器)而不针对移动应用。在对称的情 况下,密钥K与OTA服务器预先共享。在非对称的情况下,OTA服 务器知道公钥。

当OTA服务器将神经网络NN下载到应用时,第二部分NN2(例 如权重/结构)用目标安全元件23的密钥加密。

那些信息随后被传送到经加密的安全元件23,安全元件23被配 置为解密这种第二部分NN2并执行。

因此,所描述的解决方案相对于现有技术的解决方案具有一些优 点。

这里描述的解决方案允许神经网络、权重和结构的安全存储,而 不会离开安全元件。安全存储允许IP保护并避免网络篡改(即,用 不同的权重执行或在数据之间进行操作)。

此外,这里有利地描述的解决方案要求安全元件仅执行部分计算, 改进了性能,允许更快的计算。

当然,在不损害本发明原理的情况下,结构细节和实施例可能会 因本文仅通过示例的方式描述和说明的内容而大不相同,而不会因此 背离本发明的范围,如随后的权利要求所限定的。

第一处理系统可以是移动设备的处理器,并且第二处理系统可以 由移动设备中的集成卡、至少包括微处理器的UICC卡(作为第二处 理系统)以及至少一个存储器(通常包括非易失性和易失性的部分) 来表示。这种存储器被配置为存储数据(诸如操作系统)、小程序(诸 如包括神经网络的第二部分的模型的应用)以及MNO配置(移动设 备可以用于注册MNO并与MNO交互,特别是用于实行OTA远程供 应操作)。UICC可以可移除地引入到设备(即移动设备)的插槽中, 或者它们也可以直接嵌入到设备(eUICC)中。eUICC卡特别有利,因为它们的本质是被设计为远程接收MNO配置。

在变体实施例中,装置可以是任何其他装置,包括用于执行神经 网络的第一部分的第一处理系统和在第一处理系统外部的第二处理 系统,该第二处理系统被配置为接收第一部分的第一中间输出作为输 入,并且被配置为操作神经网络的第二部分,该第二部分可以包括安 全元件以存储包括第二部分的模型的应用,其中第二处理系统被配置 为执行存储在神经网络(XNN)的安全元件中的这种第二部分,将来 自第一部分的输入信息应用于第二部分的模型。例如,该装置还可以 是移动设备,并且安全元件eSE被包括在这种移动设备中,而不是集 成卡。在变体实施例中,第一处理系统可以是计算机,具有安全元件 的第二处理系统可以是计算机安全元件,诸如可信平台模块(TPM)。 在进一步的实施例中,该装置是汽车远程信息系统,并且安全元件是 汽车安全元件。

如优选地所指出的,将由第二处理系统执行的神经网络模型的部 分被存储在可由这种处理系统执行的应用中,特别是小程序中,然而, 神经网络的模型的这种部分可以被存储在可以由第二处理系统访问 的文件或存储器部分或另一数据容器中,以操作神经网络的模型的这 种部分。

尽管本发明已参考示例性实施例进行了描述,但是本说明书不旨 在于限制意义上进行解释。通过参考本说明书,本发明的说明性实施 例以及其他实施例的各种修改和组合将对本领域的技术人员显然易 见。因此,所附权利要求旨在包含任何这种修改或实施例。

相关技术
  • 用于操作神经网络的装置、对应的方法以及计算机程序产品
  • 用于管理对分布式网络,尤其是通信网络上的资源的操作的方法、系统及对应的计算机程序产品
技术分类

06120113135244