首页 / 机器学习模块的防盗方法以及保护系统

机器学习模块的防盗方法以及保护系统实质审查 发明

技术内容

机器学习模块的防盗方法以及保护系统 背景技术 [0001] 复杂机器,诸如机器人、发动机、制造设施、机床、燃气轮机、风力涡轮机或机动车辆,通常需要复杂的控制和监测方法以用于高效且稳定的操作。为此,在现代机器控制中通常采用机器学习技术。这样,例如可以训练作为控制模型的神经网络,来以优化的方式控制机器。 [0002] 然而,训练神经网络或其他机器学习模块以控制复杂机器通常被证实非常复杂。 这样,通常需要大量的训练数据、大量的计算资源以及大量的特定专业知识。因此,非常令人感兴趣的是:保护经过训练的机器学习模块或其中包含的训练信息以防不受控制或未经授权的传播或使用,和/或识别盗窃。 [0003] 已知的是:在神经网络投放市场之前为其神经元权重配备唯一的数字水印,以用于神经网络的盗窃识别。然后,可以依据水印来检查当前神经网络,以确定其是否来自该水印的用户。然而,此类方法几乎没有提供保护以防所谓的模型提取,在模型提取中,可能标记的神经网络被用于训练新的机器学习模块,以使其行为与该神经网络相似。在这种情况下,在新训练的机器学习模块中,通常无法可靠地证实印在神经元权重上的水印。 [0004] 在互联网文档https://www.internet‑sicherheit.de/research/ cybersicherheit‑und‑kuenstliche‑intelligenz/model‑extraction‑attack.html(于 021年12月16日访问)中,讨论了几种防止模型提取的方法及其问题。 发明内容 [0005] 本发明的任务在于说明一种机器学习模块的防盗方法以及一种相对应的保护系统,该方法和该保护系统更好地防止模型提取。 [0006] 该任务通过具有专利权利要求1的特征的方法、具有专利权利要求10的特征的保护系统、具有专利权利要求11的特征的计算机程序产品以及具有专利权利要求12的特征的计算机可读存储介质来解决。 [0007] 根据本发明,机器学习模块依据训练数据来被训练,以从机器的操作信号中导出用于控制该机器的控制信号,为了保护该机器学习模块免遭盗窃,在空间分辨率上确定训练数据在这些操作信号的表示空间中的分布。此外,通过附加输入层来扩展该机器学习模块,并且将扩展的机器学习模块传送给用户。然后,在输入信号被馈入扩展的机器学习模块时,通过该附加输入层来确定相应输入信号在表示空间中的位置。此外,根据训练数据的分布,分别确定覆盖值,该覆盖值指定训练数据对相应输入信号的位置的覆盖。最后,根据所确定的覆盖值,尤其是在覆盖值低的情况下,输出报警信号。 [0008] 为了执行根据本发明的方法,提供了一种保护系统、一种计算机程序产品以及一种计算机可读、优选地非易失性的存储介质。 [0009] 根据本发明的方法和根据本发明的保护系统例如可以借助于一个或多个计算机、处理器、专用集成电路(ASIC)、数字信号处理器(DSP)和/或所谓的“现场可编程门阵列”(Field Programmable Gate Arrays,FPGA)来实施或实现。此外,根据本发明的方法可以至少部分地在云中和/或在边缘计算环境中执行。 [0010] 在许多情况下,本发明为机器学习模块提供了高效且相对安全的保护,以防未经授权的模型提取。该方法基于以下观察:在尝试模型提取时,机器学习模块的输入信号的表示空间通常会被系统性地和/或随机地采样。但是,以这种方式采样的输入信号所具有的统计分布通常不同于该机器的用于训练的操作信号。借此,训练数据对输入信号的覆盖太少可以被评价为对模型提取的指示。此外,本发明可灵活应用,而且尤其不限于人工神经网络。 [0011] 本发明的有利的实施方式和扩展方案在从属权利要求中说明。 [0012] 根据本发明的一个有利的实施方式,训练数据的分布可以作为空间分辨密度场被存储在附加输入层中。然后,可以确定在相应输入信号的位置处的该密度场的密度值,作为相应的覆盖值。在这种情况下,可以将具有高密度值的区域视为该表示空间的被训练数据良好覆盖的区域。在此,密度场尤其可以表示训练数据的密度,该密度取决于该表示空间的坐标或作为该表示空间的坐标的函数。 [0013] 根据本发明的另一个有利的实施方式,依据训练数据的分布,可以在表示空间中确定置信区域,该置信区域包括训练数据的预定比例。该置信区域可以被存储在附加输入层中。然后,可以根据相应输入信号的位置与置信区域的距离来确定相应的覆盖值。在此,尤其通过单调递减函数、例如通过倒数函数,可以给增加的距离分配较小的覆盖值。此外,如果相应输入信号的位置处在置信区域之内,则可以确定最大覆盖值,例如为1的值。然后,在置信区域之外,可以分配为0的覆盖值或者随着距离而下降的覆盖值。 [0014] 置信区域尤其可以依据密度场来确定。借此,置信区域也可以被确定为表示空间的其训练数据密度高于预定阈值的那个部分。置信区域或其部分可以优选地由相应的中心和相应的轮廓或半径来表示,并且以该表示来存储。尤其是,可以将相应输入信号的位置与该置信区域的中心或边缘的距离确定为距离。 [0015] 根据本发明的另一个有利的实施方式,训练数据的分布可以通过密度估计器来确定。此类密度估计器在许多实现方案中都是可用的。 [0016] 尤其是,通过密度估计器,可以借助于聚类分析将训练数据分组为聚类,并且可以为这些聚类分别确定聚类中心。然后,对于相应的聚类中心,可以通过对预定的密度函数进行参数化来表示相关聚类的训练数据在表示空间中的分布。尤其可以通过无监督机器学习方法、例如通过所谓的k‑Means(k‑均值)方法来训练密度估计器,以用于聚类分析。该密度函数可以通过相关聚类中心以及属于相关聚类的训练数据的方差(Streuung)来被参数化。 在多维情况下,该方差可以通过协方差矩阵来表示。在表示空间中定义的密度场可以优选地由特定于聚类的密度函数的可选加权和来表示。 [0017] 尤其可以使用径向对称分布函数,作为密度函数。例如,由平均值MY和方差S参数化的高斯函数 [0018] F(X)=N*exp(‑1/2*(X‑MY)2/S2), [0019] 其中,X是表示空间的坐标向量,exp()是已知的指数函数,并且N是归一化因子。如果在这种高斯函数中只包含少量参数,则通常可以快速确定这些参数。 [0020] 替代地或附加,可以使用所谓的高斯混合模型,作为密度函数。例如,由平均值MY和协方差矩阵Σ参数化的高斯函数 [0021] F(X)=N*exp(‑1/2*(X‑MY)T*Σ‑1*(X‑MY)), [0022] 其中,X表示该表示空间的坐标向量,N表示归一化因子,并且上标T表示向量转置。 高斯混合模型通常也称为“GaussianMixture Model”或者简称为GMM。与径向对称密度函数相比,高斯混合模型的优点在于它们还允许对非圆形聚类的良好建模。协方差矩阵Σ可以针对相应聚类优选地通过所谓的期望最大化方法来被机器学习。 [0023] 根据本发明的另一实施方式,依据训练数据的分布,可以在表示空间中确定第一置信区域,该第一置信区域包括训练数据的预定比例。此外,依据输入信号在表示空间中的分布,可以确定第二置信区域,该第二置信区域包括输入信号的预定比例。借此,可以确定第二置信区域与第一置信区域的偏差,并且可以根据所确定的偏差来输出报警信号。该偏差尤其可以依据距离、例如欧几里得距离或者依据第一和第二置信区域的重叠程度来被确定。此外,该偏差可以依据所谓的Kullback‑Leibler散度的计算来被确定。替代地或附加地,可以将一方面来自第一置信区域的输入信号和另一方面来自第二置信区域的输入信号都馈入到机器学习模块中,并且将相应的输出信号进行比较,以确定该偏差。 [0024] 根据本发明的另一有利的实施方式,机器学习模块和附加输入层可以被封装在软件容器中,尤其被封装在受密钥或签名保护的软件容器中。软件容器可以优选地被设计为使得机器学习模块或附加输入层在该软件容器被分离时会失去其功能。 附图说明 [0025] 在下文,依据附图来更详尽地解释本发明的实施例。在此,分别以示意图: [0026] 图1阐明了借助于机器学习模块对机器的控制; [0027] 图2阐明了根据本发明的用于机器学习模块的保护系统; [0028] 图3阐明了在操作信号的表示空间中的置信区域;以及 [0029] 图4阐明了根据本发明保护的机器学习模块的操作。 [0030] 只要在附图中使用相同或相应的附图标记,这些附图标记就表示相同或相应的实体,这些实体尤其可以如结合相关附图所描述的那样来被实现或设计。 具体实施方式 [0031] 图1以示意图阐明了借助于经过训练的机器学习模块NN对机器M的控制。在这种情况下,机器M尤其可以是机器人、发动机、制造设施、机床、涡轮机、内燃机和/或机动车辆,或者包括这种机器。对于当前实施例,假设机器M是制造机器人。 [0032] 机器M由与该机器耦合的机器控制器CTL来控制。后者在图1中被示出为位于机器M外部。替代于此,机器控制器CTL也可以完全或部分地集成到机器M中。 [0033] 机器M具有传感装置S,通过该传感装置连续测量机器M的操作参数以及其他测量值。由传感装置S确定的测量值与机器M的其他操作数据一起以操作信号BS的形式从机器M被传送到机器控制器CTL。 [0034] 操作信号BS尤其包括传感装置S的传感器数据和/或测量值、机器M的控制信号和/或机器M的状态信号。在这种情况下,这些状态信号分别指定机器M或其一个或多个组件的操作状态,优选地随着时间的推移。 [0035] 尤其是,通过操作信号BS可以对机器M或机器M的组件的功率、转速、扭矩、移动速度、施加或作用的力、温度、压力、当前资源消耗、现有资源、污染物排放、振动、磨损和/或负载进行量化。优选地,这些操作信号BS分别由一个或多个数值数据向量来表示,并且以这种形式被传送到机器控制器CTL。 [0036] 机器控制器CTL还拥有经过训练的机器学习模块NN,用于控制该机器M。机器学习模块NN被训练为依据所馈入的输入信号来输出输出信号,借助于该输出信号可以以优化的方式控制该机器M。为了训练这种机器学习模块NN,有多种高效的机器学习方法可用,尤其是强化学习方法,该强化学习方法通常也称为强化学习(Reinforcement‑Learning)。在下文,还更详尽地探讨机器学习模块NN的训练。机器学习模块NN尤其可以实现为人工神经网络。 [0037] 为了控制该机器M,借助于经过训练的机器学习模块NN,从操作信号BS中,优选地以数值数据向量的形式,导出输出信号AS。然后,将输出信号AS或从中导出的信号作为控制信号传送给机器M,以便以优化的方式控制该机器。 [0038] 图2阐明了根据本发明的用于控制机器M的机器学习模块NN的保护系统。机器学习模块NN,例如人工神经网络,在训练系统TS中被训练以输出输出信号AS,借助于该输出信号,可以以优化的方式来控制该机器M。依据从数据库DB获取的大量训练数据TD来执行该训练。 [0039] 在当前实施例中,训练数据TD包含多个对,这些对分别由机器M的操作信号BS和机器M的所分配的控制信号CS组成,优选地,这些对分别由数值数据向量来表示。在此,相应控制信号CS表示如下那个控制信号,当存在所分配的操作信号BS时,通过该控制信号以优化的方式来控制该机器M。训练数据TD例如可以根据机器M的操作、与之相似的机器的操作或者机器M的仿真来被确定。 [0040] 在这种情况下,训练通常应理解为对机器学习模块的输入信号到该机器学习模块的输出信号的映射进行优化。该映射根据学习到的和/或待学习的预定标准在训练阶段期间被优化。尤其是,在控制模型中可以使用控制动作的成功,作为标准,或者在预测模型中可以使用预测误差,作为标准。通过该训练,例如可以将神经网络的神经元的交联结构和/或在这些神经元之间的连接的权重调整或优化为使得尽可能好地满足这些预定标准。因此,该训练可以被理解为优化问题。 [0041] 对于在机器学习领域的此类优化问题,有多种高效的优化方法可用,尤其是基于梯度的优化方法、无梯度优化方法、反向传播方法、粒子群优化、遗传优化方法和/或基于群体的优化方法。尤其可以训练人工神经网络、循环神经网络、卷积神经网络、感知器、贝叶斯神经网络、自编码器、变分自编码器、高斯过程、深度学习架构、支持向量机、数据驱动回归模型、k‑最近邻分类器、物理模型和/或决策树。 [0042] 为了训练机器学习模块NN,将在训练数据TD中包含的操作信号BS作为输入信号输送给机器学习模块NN。在该训练的过程中,优选地通过上述优化方法之一来调整机器学习模块NN的神经元权重或者其他参数,使得借助于由机器学习模块NN从输入信号BS导出的输出信号AS以优化的方式来控制机器M。为此,在当前实施例中,将输出信号AS与在训练数据TD中包含的相关控制信号CS进行比较,并且确定这些信号之间的相应距离D。例如可以确定进行表示的数据向量之间的欧几里得距离或者这些数据向量之差的另一范数,作为距离D,例如根据D=|AS‑CS|。 [0043] 如图2中通过虚线箭头所示,这样确定的距离D被反馈给机器学习模块NN。然后,调整该机器学习模块的神经元权重,使得该距离D至少在统计平均值上最小化。 [0044] 替代地或附加地,也可以使用强化学习方法来训练机器学习模块NN。在这种情况下,机器M或机器M的仿真可以通过输出信号AS来控制,其中,机器M的性能被连续地测量或以其他方式确定。例如,可以确定功率、效率、吞吐量、执行速度或者对于机器M的操作相关的其他参数,作为性能。然后,调整机器学习模块NN的神经元权重,使得该性能被优化。 [0045] 此外,在训练数据TD中包含的操作信号BS被馈入到训练系统TS的密度估计器DS中。密度估计器DS用于确定所馈入的操作信号BS——以及借此这些训练数据TD——在操作信号BS的表示空间中的统计分布。 [0046] 表示空间优选地是表示操作信号BS的数据向量的向量空间,并且通常是高维的。 统计分布由密度估计器DS以关于该向量空间空间分辨的形式来被确定。 [0047] 在机器学习模块NN的后续使用中,应依据所确定的分布来检查:输送给机器学习模块NN的输入信号是否具有与训练数据TD的操作信号BS相似的分布。相似的分布表明用于控制机器M的机器学习模块NN的正常操作。相反,与训练数据TD的分布存在显著偏差表明表示空间的系统性的或随机控制的采样,并且借此表明尝试模型提取的迹象。 [0048] 为了确定操作信号BS或训练数据TD的分布,密度估计器DS执行聚类分析CA。在这种情况下,操作信号BS或训练数据TD被分组为不同的聚类,其中,针对相应聚类分别确定聚类中心。密度估计器DS尤其可以通过无监督机器学习方法、例如通过所谓的k‑Means方法来被训练,以用于聚类分析。 [0049] 然后,对于相应的聚类中心,可以通过对预定的密度函数F进行参数化来表示相关聚类的操作信号或训练数据在表示空间中的分布。以适应操作信号或训练数据的分布的方式,通过相关聚类中心以及通过属于相关聚类的操作信号或训练数据的方差,对特定于聚类的密度函数F进行参数化。 [0050] 在当前实施例中,作为密度函数F,使用所谓的高斯混合模型。后者允许对围绕聚类中心的甚至非圆形分布或方差进行良好建模。在这种情况下,通过所谓的协方差矩阵来表示这种非圆形方差。 [0051] 作为按照高斯混合模型的特定于聚类的密度函数F,尤其可以使用通过平均值MY和协方差矩阵Σ来参数化的高斯函数 [0052] F(X)=N*exp(‑1/2*(X‑MY)T*Σ‑1*(X‑MY)), [0053] 其中,X表示该表示空间的坐标向量,N表示归一化因子,并且上标T表示向量转置。 协方差矩阵Σ可以针对相应聚类优选地通过所谓的期望最大化方法来被机器学习。 [0054] 在表示空间中定义的密度场可以通过不同聚类的密度函数F的可选加权相加来表示。这种密度场表示密度,并且借此表示操作信号BS或训练数据TD的分布,作为在表示空间中的位置的函数。 [0055] 密度估计器DS依据密度场来确定在表示空间中的置信区域CR。置信区域CR被确定为使得它包括操作信号BS或训练数据TD的预定比例,例如90%、95%或99%。 [0056] 替代地或附加地,可以将该表示空间的在其中密度场所具有的值高于预定密度阈值的那个部分确定为置信区域CR。例如,置信区域CR可以通过一个或多个中心与相应半径一起来表示和存储,和/或通过几何轮廓来表示和存储。 [0057] 图3阐明了在操作信号的由坐标X1和X2扩展出的表示空间中的这种置信区域CR。 在这种情况下,相应操作信号通过小实心圆在不带附图标记的情况下表示。通过聚类分析,将操作信号分组为三个不同的聚类C1、C2和C3。对于这些聚类C1、C2和C3中的每个聚类,属于相应聚类C1、C2或C3的操作信号的分布通过特定于聚类的密度函数F来建模。通过使用高斯混合模型,还可以对非圆形、这里是椭圆形分布进行建模。依据建模密度函数F,将置信区域CR确定为表示空间的椭圆形区域的并集,该并集包含几乎所有操作信号。 [0058] 如图2进一步阐明的那样,所确定的置信区域CR被存储在机器学习模块NN的附加输入层IL'中。附加输入层IL'可以被设计为神经层、软件层、用于经过训练的机器学习模块NN的输入例程和/或用于执行经过训练的机器学习模块NN的调用例程。 [0059] 附加输入层IL'被训练系统TS添加给经过训练的机器学习模块NN,并且经由接口I与该机器学习模块耦合。为了保护接口I以防未经授权的访问,训练系统TS将经过训练的机器学习模块NN和附加输入层IL'一起优选地以受密钥和/或签名保护的方式封装在软件容器SC中。在这种情况下,接口I例如可以通过加密或混淆来予以保护。软件容器SC优选地设计为使得机器学习模块NN和/或附加输入层IL'在该软件容器SC被分离时会失去其功能。 [0060] 然后,可以将这样保护的软件容器SC转交给用户。为此,通过上传UL将软件容器SC从训练系统TS传输到云CL中,尤其是传输到云CL的应用商店(App‑Store)中。 [0061] 从云CL或其应用商店中,该软件容器SC一方面通过第一下载DL1被下载到第一用户的系统U1,并且另一方面通过第二下载DL2被下载到第二用户的系统U2。 [0062] 对于当前实施例,假设第一用户想要借助于在其系统U1上的受保护的机器学习模块NN来正常控制该机器M。不同于此,第二用户想要在其系统U2上对经过训练的机器学习模块NN进行未经授权的模型提取。 [0063] 系统U1接收机器的当前操作信号BS,并且将这些操作信号馈入到软件容器SC中,以控制该机器M。在软件容器SC中,通过附加输入层IL'来检查:输入信号BS是否被在训练数据TD中包含的操作信号充分覆盖。在下文更详尽地解释该检查的过程。 [0064] 在当前实施例中,如果操作信号BS(如训练数据TD)来自机器M,则预计操作信号BS和训练数据TD具有在表示空间中的相似的分布。与此相对应地,附加输入层IL'将操作信号BS评估为充分覆盖,这表明经过训练的机器学习模块NN的预期的正常操作。因此,机器M可以通过经过训练的机器学习模块NN的输出信号AS如第一用户所希望的那样来控制。 [0065] 与第一用户的情况不同,在第二用户的系统U2中,由生成器GEN生成合成采样信号SS,作为经过训练的机器学习模块NN的输入信号,以便对表示空间进行系统性采样。如上所述,输送给软件容器SC的输入信号SS被附加输入层IL'检查,以确定这些输入信号是否被训练数据TD的分布充分覆盖。 [0066] 如果此类采样信号SS所具有的统计分布通常不同于机器M的用于该训练的实际操作信号,则可以假定:采样信号SS的具有统计意义的比例处在置信区域CR之外。这通过附加输入层IL'来被识别,并且被评估为对未经授权的模型提取的指示。因此,通过附加输入层IL',将报警信号A例如传送给经过训练的机器学习模块NN的创建者。通过报警信号A,可以向经过训练的机器学习模块NN的创建者通知模型提取的尝试。 [0067] 作为输出报警信号A的替代或补充,在识别出提取尝试时,输入信号(这里为SS)可以通过附加输入层IL'来被伪造,使得机器学习模块NN的所产生的输出信号不适合于成功训练新的机器学习模块。为了进行该伪造,这些输入信号可以在转交给经过训练的机器学习模块NN之前尤其是完全或部分地被替换为随机值。 [0068] 图4阐明了根据本发明保护的机器学习模块NN的操作。如上所述,后者与附加输入层IL'一起封装在软件容器SC中。机器学习模块NN包括神经输入层IL、一个或多个隐藏神经层HL以及神经输出层OL。附加输入层IL'位于机器学习模块NN的上游,并且经由接口I与输入层IL耦合。 [0069] 操作信号BS或采样信号SS作为输入信号输送给软件容器SC。如上所述,在这种情况下假设:在正常使用机器学习模块NN的框架内输送操作信号BS,而在尝试模型提取的情况下馈入采样信号SS。 [0070] 信号BS或SS不是作为输入信号被输送给机器学习模块NN,而是被附加输入层IL'截取并且输送给附加输入层IL'的检查模块CK。检查模块CK检查所输送的输入信号BS或SS,以确定这些输入信号是否被训练数据TD充分覆盖。为此,检查模块CK依据存储在附加输入层IL'中的置信区域CR来确定:相应输入信号在表示空间中的位置是处在置信区域CR内还是处在该置信区域外。如果相应输入信号的位置处在置信区域CR内,则给该操作信号分配为1的覆盖值。如果相应位置处在置信区域CR外,则将小于1的值分配给相关操作信号,该值还随着相应位置与置信区域CR的距离的增加而例如以倒数方式减小。 [0071] 对于这样确定的覆盖值,通过检查模块CK来确定输入信号BS或SS的总覆盖值,该总覆盖值量化训练数据TD对输入信号BS或SS的总覆盖。例如,可以将各个覆盖值的可选加权和/或平均覆盖值确定为总覆盖值。 [0072] 通过附加输入层IL',将所确定的总覆盖值与预定的覆盖阈值进行比较。在此,低于该覆盖阈值的情况被视为对未经授权的模型提取的指示。否则,诊断为预期的正常操作。 [0073] 如上所述,预计:在馈入机器M的操作信号BS时,存在训练数据TD的高覆盖,并且因此通过附加输入层IL'来识别正常操作。在这种情况下,输入信号BS被附加输入层IL'馈入到机器学习模块NN的输入层IL中,并且输出机器学习模块NN的所产生的输出信号AS,以控制该机器M。 [0074] 不同于此,在馈入采样信号SS时,可以假定:在许多情况下,这些采样信号处在置信区域CR之外,并且因此,如上所述,被附加输入层IL'评估为模型提取的尝试。在这种情况下,通过检查模块CK,例如向经过训练的机器学习模块NN的创建者的警报器AL输出报警信号A。 [0075] 与此并行地,作为输入信号提供的采样信号SS被检查模块CK伪造和/或完全或部分地替换为随机信号,并且以这种形式馈入到机器学习模块NN的输入层IL中。通过对这些输入信号的伪造,可以有效地防止依据经过训练的机器学习模块NN进行模型提取。

相关技术
学习模块相关技术
方法保护相关技术
M·托基奇发明人的其他相关专利技术