CN116670693A - 机器学习模型中针对对抗样本的动态梯度欺骗 - Google Patents

机器学习模型中针对对抗样本的动态梯度欺骗 Download PDF

Info

Publication number
CN116670693A
CN116670693A CN202180082952.0A CN202180082952A CN116670693A CN 116670693 A CN116670693 A CN 116670693A CN 202180082952 A CN202180082952 A CN 202180082952A CN 116670693 A CN116670693 A CN 116670693A
Authority
CN
China
Prior art keywords
classification
disturbance
subset
machine learning
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180082952.0A
Other languages
English (en)
Inventor
李泰星
I·M·莫洛伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116670693A publication Critical patent/CN116670693A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Machine Translation (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Testing Of Engines (AREA)
  • Feedback Control In General (AREA)

Abstract

提供了用于混淆经训练的机器学习模型的经训练的配置的机制。经训练的机器学习模型处理输入数据以生成具有多个预定义类别中的每个类别的分类值的初始输出矢量。扰动插入引擎确定所述初始输出矢量中要插入扰动的分类值的子集。扰动插入引擎通过将扰动插入到与生成所述分类值的子集中的所述分类值的所述输出矢量相关联的函数中来修改所述分类值的子集中的分类值,以由此生成修改后的输出矢量。经训练的机器学习模型输出修改后的输出矢量。扰动修改分类值的子集以混淆经训练的机器学习模型的经训练的配置,同时保持输入数据的分类的准确度。

Description

机器学习模型中针对对抗样本的动态梯度欺骗
背景技术
本申请总体上涉及一种改进的数据处理装置和方法,并且更具体地涉及用于通过使用动态梯度欺骗来保护机器学习模型免受基于对抗样本的攻击的机制。
基于神经网络的深度学习是一类机器学习模型,其使用非线性处理单元的许多层的级联来进行特征提取和变换。每一连续层使用来自先前层的输出作为输入。用于训练这些机器学习模型的机器学习算法可以是监督的或非监督的,并且应用包括模式分析(非监督的)和分类(监督的)。
基于神经网络的深度学习基于对数据的多级特征或表示的学习,其中从较低级特征导出较高级特征以形成层级表示。在深度学习算法中使用的神经网络的非线性处理单元的层的组成取决于待解决的问题。已经在深度学习中使用的层包括人工神经网络的隐藏层和复杂命题公式的集合。它们还可以包括在深度生成模型中分层组织的潜在变量,诸如深度置信网络中的节点和深度玻尔兹曼机器。
发明内容
提供本发明内容以便以简化形式介绍将在具体实施方式中进一步描述的概念的选择。本发明内容并不旨在标识所要求保护的主题的关键因素或基本特征,也不旨在用于限制所要求保护的主题的范围。
在一个说明性实施例中,提供了一种用于混淆经训练的机器学习模型的经训练的配置的方法。所述方法在包括至少一个处理器和至少一个存储器的数据处理系统中执行,所述至少一个存储器包括指令,所述指令由所述至少一个处理器执行以具体地配置所述至少一个处理器以实现经训练的机器学习模型、选择分类输出扰动引擎以及扰动插入引擎。该方法包括由经训练的机器学习模型处理输入数据以生成具有多个预定义类别中的每个类别的分类值的初始输出矢量。此外,所述方法包括由所述扰动插入引擎确定所述初始输出矢量中要插入扰动的分类值的子集。分类值的子集小于初始输出矢量中的所有分类值。另外,所述方法包括由所述扰动插入引擎通过将扰动插入到与生成所述分类值的子集中的分类值的输出矢量相关联的函数中来修改所述分类值的子集中的分类值,从而生成修改后的输出矢量。此外,该方法包括由经训练的机器学习模型输出修改后的输出矢量。扰动修改分类值的子集以混淆经训练的机器学习模型的经训练的配置,同时保持输入数据的分类的准确度。
在其他说明性实施例中,提供了一种计算机程序产品,该计算机程序产品包括具有计算机可读程序的计算机可用或可读介质。当在计算设备上执行时,计算机可读程序使计算设备执行以上关于方法说明性实施例概述的操作中的不同操作和组合。
在又一说明性实施例中,提供了一种系统/装置。所述系统/装置可以包括一个或多个处理器和耦合到所述一个或多个处理器的存储器。存储器可包括指令,这些指令在由一个或多个处理器执行时使一个或多个处理器执行以上关于方法说明性实施例概述的操作中的不同操作和组合。
本发明的这些和其他特征和优点将在本发明的示例实施例的以下详细描述中被描述,或者鉴于本发明的示例实施例的以下详细描述将对本领域普通技术人员变得清楚。
附图说明
当结合附图阅读时,通过参考说明性实施例的以下详细描述,将最好地理解本发明以及优选使用模式以及其进一步的目的和优点,其中:
图1A和图1B是示出由本发明解决的模型窃取攻击的问题和由说明性实施例的机制提供的解决方案的框图;
图1C和图1D是示出由说明性实施例的机制提供的模型规避攻击的问题和扰动插入引擎160的解决方案的框图;
图2A示出了通常与神经网络模型一起使用的sigmoid函数或softmax函数;
图2B示出了根据一个说明性实施例的sigmoid函数或softmax函数,其中扰动或噪声被引入到曲线中,使得曲线的正确梯度不能被攻击者识别;
图3描绘了计算机网络中的认知系统的一个说明性实施例的示意图;
图4是其中实现说明性实施例的方面的示例数据处理系统的框图;
图5示出了根据一个说明性实施例的用于处理自然语言输入以生成响应或结果的认知系统处理流水线;
图6是概述根据一个说明性实施例的用于混淆经训练的机器学习模型的经训练的配置的示例操作的流程图;
图7示出了根据一个说明性实施例的其中执行选择性分类输出扰动的认知系统处理流水线的示例;以及
图8是概述其中执行扰动插入的动态修改的另一说明性实施例的示例操作的流程图。
具体实施方式
说明性实施例提供了用于保护认知系统(诸如包括神经网络、机器学习和/或深度学习机制的那些认知系统)免受使用梯度或其估计的攻击(诸如模型窃取攻击和规避攻击)的机制。虽然将在基于神经网络的机制和认知系统的背景下描述说明性实施例,但是说明性实施例不限于此。相反,说明性实施例的机制可以与任何人工智能机制、机器学习机制、深度学习机制等一起使用,这些人工智能机制、机器学习机制、深度学习机制等的输出可以根据下文阐述的说明性实施例来修改,从而混淆内部机制的训练,例如,机器学习计算机模型(或简称为“模型”)、不同类型的神经网络(例如,递归神经网络(RNN)、卷积神经网络(CNN)、深度学习(DL)神经网络)、实现机器学习计算机模型的认知计算系统等。对内部机制的训练的混淆导致不能准确地计算梯度,并且因此不能经由模型窃取攻击来再现内部机制,或者不能创建对抗样本来使模型误分类。这些基于机器学习的机制在此将统称为计算机“模型”,并且这个术语意在指代可能经受基于梯度的攻击的各种类型的任何类型的机器学习计算机模型。
说明性实施例向受保护的认知系统的输出中引入噪声,所述噪声防止外部参与方能够再现认知系统的配置和训练。即,噪声掩盖由认知系统生成的实际输出,同时保持输出的正确性。这样,认知系统可用于执行其操作,同时阻止其他方生成它们自己版本的经训练和配置的认知系统,其将生成正确的输出。虽然攻击者可能能够将有噪声的输出假定为用于训练其自己的认知系统模型的正确输出,但攻击者的模型将仍不生成攻击者正尝试重新创建的认知系统模型的相同输出。这是因为即使有噪声输出,正确的输出可能是多种可能性之一,并且仅具有相同模型权重的完全相同的认知系统模型架构可以正确地标识多种可能性中的哪个是正确的。此外,说明性实施例提供模型的正确输出,同时防止规避攻击,即,攻击者引入迫使误分类而不引起怀疑的噪声,因为说明性实施例的机制引入噪声以防止梯度确定,但是提供用于确保防止输出的误分类的机制。
基于神经网络的系统的成功已经导致基于它们的许多web服务。服务提供者向网络服务的终端用户提供应用程序接口(API),通过该应用程序接口,终端用户可以经由他们的客户端计算设备提交要由网络服务处理的输入数据,并且被提供结果数据,该结果数据指示网络服务对输入数据的操作的结果。认知系统多次利用神经网络来执行分类类型操作,以将输入数据分类到各种定义的信息类别中。例如,在图像处理web服务中,包括多个数据点(例如,像素)的输入图像可被输入到web服务,该web服务对输入图像数据进行操作以将输入图像的元素分类成图像内存在的对象类型,例如,该图像包括人、汽车、建筑物、狗等,以由此执行对象识别或图像识别。可以对各种其他类型的输入数据执行类似类型的分类分析,包括但不限于语音识别、自然语言处理、音频识别、社交网络过滤、机器翻译和生物信息学。本文描述的一些说明性实施例特别感兴趣的是,这样的web服务可以提供用于使用自然语言处理来分析患者电子病历(EMR)中的患者信息、分析医学图像(诸如x射线图像、磁共振成像(MRI)图像、计算机断层摄影(CT)扫描图像等)等的功能。
在许多情况下,服务提供者为终端用户收取使用由基于神经网络的认知系统的实现方式提供的网络服务的费用。然而,已认识到,终端用户可利用由服务提供者提供的API来提交输入数据集以获取足够的输出数据来复制认知系统的神经网络的训练,使得终端用户能够生成其自己的经训练的神经网络,并由此避免必须利用服务提供者的服务,从而导致服务提供者的收入损失。即,如果终端用户基于对输入数据执行的分类操作利用服务提供者的网络服务来标记输入数据集,在提交足够的输入数据集之后,例如,10000个输入数据集(其中,如本文中使用的术语“数据集”指一个或多个数据样本的集合),并且获得相应的输出标签,输出标签可以用作用于训练另一神经网络(例如,终端用户自己的神经网络)的“黄金”集合或真值(ground truth),来执行类似的分类操作。这在本文中被称为模型窃取攻击,因为以下被称为“攻击者”的终端用户有动机偷偷地重新创建经训练的神经网络,试图通过利用服务提供者的API来窃取由服务提供者创建和训练的神经网络模型。
说明性实施例减少或消除攻击者使用梯度或其估计来执行攻击的能力,诸如通过将扰动或噪声引入到由神经网络生成的输出概率中来进行模型窃取攻击和规避攻击,以便产生防范试图复制或规避神经网络模型的攻击者的误导梯度。引入的扰动(噪声)使攻击者的梯度从正确的方向和量偏离,并且使受保护的神经网络模型的准确度的损失最小化。为了满足这两个标准,在一些说明性实施例中,在产生扰动时遵循两个一般指引:(1)使用扰动,添加一种或多种学习机器学习参数的方式来引起梯度模糊性,例如,在一个说明性实施例中,一阶导数的符号被反向(一阶导数标识函数或曲线的方向,例如增加/减少);以及(2)噪声主要添加在函数的任一端,例如,在softmax或sigmoid函数中,高达+/-0.5。
应当理解,这些仅仅是一些说明性实施例的示例指引,并且在不脱离本发明的精神和范围的情况下,可以对这些做出许多不同的修改。例如,激活函数不需要是softmax或sigmoid函数,因为由于深度学习分类器的标准使用而针对说明性实施例选择了这些函数。可以利用受保护的神经网络的任何激活函数,其中根据说明性实施例通过引入噪声来增加模糊性。
一般而言,说明性实施例提供了添加扰动而不会负面地影响模型或神经网络的准确度的各种方法和机制。例如,任何噪声可被添加到模型或神经网络的激活函数,由此导致输出中的模糊性,这将欺骗基于梯度的攻击者。然而,在一些说明性实施例中,说明性实施例的扰动机制添加不改变结果分类(即,由经训练的模型或神经网络生成的具有最高概率的类的输出)的任何噪声。即,给定输出概率矢量y=[y_1,…,y_n],这些说明性实施例的扰动机制可以添加噪声d,使得argmax_i{y_i+d_i}=argmax_i{y_i}。
对于在经训练的模型或神经网络的输出中增加的模糊性,说明性实施例的扰动机制可以添加不仅引起模糊性而且引起梯度的符号改变的噪声。在这样的实施例中,扰动机制将更大的扰动添加到清楚的情况,使得类的概率接近1或0,并且因此很可能保留输出的结果类。此外,通过向这些情况添加噪声,扰动机制添加学习的模糊性。最后,通过添加的噪声,梯度的方向与原始梯度相反,因为原始模型具有更高概率(具有更清楚的情况)与具有更低概率(具有更清楚的情况)的干扰输出相反。
可能存在满足该标准的扰动的许多不同实现方式,并且所有这些扰动被认为在本发明的精神和范围内。即,在不背离本发明的精神和范围的情况下,可以使用在神经网络的输出中生成满足上述标准和指引的扰动的任何函数。
例如,假设存在给定的神经网络f(x)=sigma(h(x)),其中sigma是softmax或sigmoid函数,h(x)是表示神经网络的其余部分的函数,并且x是输入数据。各种可能的扰动满足上述标准和指引,其示例如下:
1.复制-保护(f(x))=归一化(sigma(h(x))-0.5(sigma(0.25h(x))0.5));
2.在[h1,inf)和(-inf,-h1]上高达+/-0.5的高斯噪声,其中,h1是最小h(x)(minimum h(x)),使得sigma(h(x))>0.99;以及
3.随机噪声h’(x),使得sigma(h(x)+h’(x))的维度的排序等于sigma(h(x))。
其中,如果sigma是sigmoid函数,则归一化是恒等函数,或者如果sigma是softmax函数,则归一化是将输入矢量除以其值之和的函数。
在以上示例扰动1中,模糊的情况保持原样,然而,如果针对相同输入的输出更加确定,则扰动使得模型或神经网络的输出不太确定,高达0.5,其使结果类保持相同。即,原始模型的概率/置信度越高,受保护模型的概率/置信度越低。
在以上示例扰动2中,当输出是确定的或可能的时,即,分类的概率高,例如,1.0、0.9等,这取决于实施方式,添加一种类型的随机噪声(其称为高斯噪声)。以上扰动1与以上扰动2之间的差异在于,如果结果更确定,则扰动1添加更多噪声,而扰动2不要求这样的排序,并且因此,越特定的输出在某些情况下可以具有越少的噪声。扰动3添加在给定输入数据的情况下不改变可能类别的相对顺序的噪声,例如,如果输入图像数据更可能是鸟而不是牛,例如,则扰动添加噪声,只要该顺序被保留。
这些扰动最小化边界情况下的改变,诸如f(x)=0.5,使得该区域几乎没有改变,但是如果概率分数高,例如更接近f(x)=1.0,或者低,例如更接近f(x)=0.0,则扰动大。然而,在这种情况下,输出分类的排名不改变,因为对于排名最高的分类(#1),该改变高达+/-0.25,并且1.0-0.25=0.75仍然是这些分类之中的最高概率分数。即,如果分类的原始概率是1.0,并且通过根据本文阐述的说明性实施例引入噪声,该概率被减小至0.75,那么这仍然可以被认为是高的并且输入的分类保持相同。然而,如果概率下降到0.5,那么平均用户将认为这是不确定的,从而指示输出可能不是可用的并且可能需要进一步分析。
因此,说明性实施例的机制通过增加先前不存在于神经网络机制或认知系统中的附加非通用功能来改进神经网络和实现神经网络的认知系统的操作,特别是用于避免模型窃取和/或规避攻击。说明性实施例的机制在神经网络和认知系统中添加附加技术逻辑,其具体实施遵循上述标准和指引的干扰的引入,以允许混淆神经网络、机器学习模型、深度学习模型等的训练,同时保持所得输出的可用性,例如输出数据的分类和标记仍然是准确的,即使由模型生成的实际概率值对模型的训练是不准确的。说明性实施例的机制特定于涉及一个或多个数据处理系统和/或计算设备的技术环境,所述一个或多个数据处理系统和/或计算设备被具体配置为实现本发明的附加逻辑,从而导致包括一个或多个非通用数据处理系统和/或计算设备的非通用技术环境。此外,说明性实施例具体针对解决模型窃取攻击的技术问题,所述模型窃取攻击涉及再现具有神经网络模型、机器学习模型、深度学习模型或其他此类基于人工智能或认知操作的计算机制的专门计算设备的训练。此外,说明性实施例解决了模型规避攻击的技术问题,其涉及基于经训练的模型的所确定的梯度来确定要引入的正确噪声水平,以便使模型对输入进行误分类。
在开始更详细地讨论说明性实施例的各个方面之前,应首先理解,贯穿本说明书,术语“机制”将用来指代执行不同操作、功能等的本发明的元素。如本文中使用的术语“机制”可以是以装置、过程或计算机程序产品的形式的说明性实施例的功能或方面的实现方式。在过程的情况下,该过程由一个或多个设备、装置、计算机、数据处理系统等实现。在计算机程序产品的情况下,由体现在计算机程序产品中或上的计算机代码或指令表示的逻辑由一个或多个硬件设备执行,以便实现功能或执行与特定“机制”相关联的操作。由此,本文中描述的机制可以被实现为专用硬件、在通用硬件上执行的软件、存储在介质上使得指令可容易地由专用或通用硬件执行的软件指令、用于执行功能的过程或方法、或以上的任何的组合。
本说明书和权利要求书可以利用关于说明性实施例的特定特征和元素的术语“一个”、“至少一个”和“一个或多个”。应当理解,这些术语和短语旨在陈述在特定说明性实施例中存在至少一个特定特征或元素,但还可以存在多于一个。即,这些术语/短语并非旨在将说明书或权利要求书限制为存在的单个特征/元素或者需要存在多个这样的特征/元素。相反,这些术语/短语仅需要至少单个特征/元素,其中多个这种特征/元素可能在说明书和权利要求书的范围内。
此外,应理解的是,如果在此关于描述本发明的实施例和特征使用术语“引擎”,则其不旨在限制用于实现和/或执行归因于和/或由该引擎执行的动作、步骤、过程等的任何特定实现方式。引擎可以是软件、硬件和/或固件、或其任意组合,其执行指定的功能,包括但不限于与加载或存储在机器可读存储器中并由处理器执行的适当软件相结合的通用和/或专用处理器的任何使用。进一步,除非另外指定,否则与特定引擎相关联的任何名称是出于方便参考的目的而并非旨在限于特定实现方式。此外,归于引擎的任何功能可以同样地由多个引擎执行,并入到相同或不同类型的另一引擎的功能中和/或与其组合,或分布在各种配置的一个或多个引擎上。
此外,应当理解,以下描述使用说明性实施例的各种元素的多个不同实例来进一步说明说明性实施例的示例实现方式并且帮助理解说明性实施例的机制。这些示例旨在是非限制性的,并且不是穷尽用于实施说明性实施例的机制的各种可能性。鉴于本说明书,对本领域普通技术人员显而易见的是,在不背离本发明的精神和范围的情况下,除了或者代替在本文中提供的示例,还可以利用这些各种元素的许多其他替代实现方式。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,因特网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++等)和常规的过程式编程语言(诸如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用因特网服务提供者通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个框中指定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行指定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
如上所述,本发明提供了用于保护认知系统(诸如包括神经网络和/或深度学习机制的认知系统)免受使用梯度或其估计(诸如模型窃取或模型规避)的攻击的机制。图1A-图1D是说明由本发明解决的问题和由说明性实施例的机制提供的解决方案的框图。在图1A-图1D的描绘中,假设神经网络模型已经使用训练数据被训练,诸如通过使用真值数据结构等的监督或半监督过程,或用于训练神经网络模型的任何其他已知或以后开发的方法。图1A和图1B描绘了框图,示出了由说明性实施例的机制提供的模型窃取攻击的问题和扰动插入引擎160的解决方案。图1C和图1D描绘了示出模型规避攻击的问题和由说明性实施例的机制提供的扰动插入引擎160的解决方案的框图。
图1A-图1D中所示的示例假设神经网络模型正被用于对数字图像执行分类操作,从而将数字的图像分类为从“0”至“9”的数字。这仅用作神经网络模型可被用于执行的一个可能的简单分类操作的示例,并且不被认为是对利用它可以实现说明性实施例的机制的神经网络模型的应用的限制。如上所述,说明性实施例的机制可以与任何神经网络模型、机器学习模型等的输出一起使用,而不管由神经网络模型、机器学习模型等执行的特定人工智能操作。此外,尽管未在图1A-图1D中明确示出,神经网络模型、机器学习模型、深度学习模型等可能是更复杂的认知系统的一部分,该更复杂的认知系统实现此类模型以执行复杂的认知操作,诸如自然语言处理、图像分析、患者治疗推荐、医学成像分析或多数其他认知操作中的任何,如下文描述的。
如图1A所示,对于模型窃取攻击,攻击者110可向经训练的神经网络模型130提交输入数据的一个或多个集合120以获得作为结果数据输出到攻击者110的经标记的数据集140。再次,应理解的是,如在此所使用的术语“数据集”是指可以包括一个或多个数据样本的数据集。在数据集包括多于一个数据样本的情况下,这些数据样本可以作为一批被输入到经训练的神经网络模型130。
可以针对输入数据的多个集合120重复该过程以生成多个经标记的数据集140(其还可以包括一个或多个数据样本的标记)。经标记的数据集140是由经训练的神经网络模型130生成的输出数据集,其中未标记的输入数据利用用于数据将用于的特定认知操作的有意义信息的附加标签或标记来增强。例如,在患者治疗推荐认知系统中,经标记的数据可包括标记、标签或注释,所述标记、标签或注释指定与数据相关联的各种医学概念,例如疾病、治疗、患者的年龄、患者的性别等。在所描绘的示例中,神经网络模型130的操作是将在输入数据的集合120中指定的输入图像的一部分分类为表示输入图像的该部分所表示的数值的10个类别之一,例如类别“0”至“9”。因此,附于输入数据的集合120的标记可以是“0”或“1”或“2”等标记。
已经基于多个输入数据集120获得了多个经标记的数据集140的攻击者110可利用输入/输出的这种对应来训练其自己的模型150以复制经训练的神经网络模型130。一旦攻击者110具有经训练的神经网络模型130的其自己的复制版本150,则它们不再需要利用原始经训练的神经网络模型130来获得用于未来输入数据集120的经标记的数据集140,并且能够利用其自己的复制的模型150。这使得原始经训练的神经网络模型130的提供者失去来自可以针对原始经训练的神经网络模型130的使用而收取的费用的收入。此外,这可能引起服务提供者的竞争者偷偷地获得服务提供者关于训练神经网络模型130的资源投资的益处,而实际上不必进行这样的资源投资。
如图1A所示,经训练的神经网络130执行用于对输入数据集120进行分类的分类操作。分类操作的输出是概率值的矢量135,其中矢量输出135的每个时隙表示输入数据集120的单独可能的分类。神经网络的训练、机器学习、深度学习或其他人工智能模型在本领域中通常是已知的,并且假设任何这样的方法可以用于执行这样的训练。训练一般涉及基于训练数据集修改与由模型的节点评分的不同特征相关联的加权值,以使模型基于监督或半监督反馈输出正确标记输入数据集120的正确矢量输出135。神经网络模型130通过神经网络模型130中的各个级别的节点来处理输入数据集120以在输出节点处生成与输出节点所表示的特定类别或标记相对应的概率值,即。输出节点的值指示对应矢量槽的类别或标签应用于输入数据集合120的概率。
在此描绘的示例中,矢量输出135的每个槽对应于从“0”到“9”的可能分类,从而指示输入图像的该部分可以表示的可能数值。概率值的范围可以从0%(例如,0.0)到100%(例如,1.0),并且可以基于所期望的特定实现方式而具有不同精度水平。因此,如果标记或分类“1”具有1.0的概率值,则这指示输入数据集120表示数值“1”的绝对置信度,并且0.0的概率值指示输入数据集120不表示对应值,即,该矢量槽的标记不适用于输入数据集120。
虽然这是用于说明性目的的简单示例,但应了解,分类和对应标记的数目以及对应矢量输出135可能相当复杂。作为另一示例,这些分类可以例如在医学成像应用中,其中人体解剖结构的内部结构被分类在患者的胸部中,例如主动脉、心脏瓣膜、左心室、右心室、肺等。应当理解,矢量输出135可以包括取决于具体应用和实现方式的各种粒度级别的任何数量的潜在矢量槽或分类,并且矢量输出135可以相应地具有各种大小。
可以选择矢量输出135中的最高概率值矢量槽(或简称为“槽”)以标记对应的输入数据集120。因此,例如,假设经训练的神经网络模型130被适当地训练,具有数值“2”的图像的输入数据集120将具有类似于图1A中所示的输出矢量的输出矢量135,其中输出矢量135的槽具有对应概率值,该概率值是矢量输出135的所有槽中的那些的最高概率值,例如,在此示例中是“0.9”。因此,经标记的数据输出140将包括具有与示出对应于数值“2”的图像的部分的输入数据集120相关联的标记“2”的经标记的数据集。
图1B提供了示出用于避免模型窃取攻击的一个说明性实施例的机制的概况的框图。图1B中示出的图类似于图1A的图,除了扰动插入引擎160被提供为与经训练的神经网络模型130相关联或者作为经训练的神经网络模型130的一部分。例如,在扰动插入引擎160被提供为模型130自身的一部分的实施例中,扰动插入引擎160可以刚好在模型的输出层之前作为模型130的附加层操作,从而在刚好在模型130的输出层之前在经训练的神经网络模型130的层处生成的概率值中引入扰动。在扰动插入引擎160在模型130外部的实施例中,扰动可被注入到经训练的神经网络模型130的输出矢量135中,从而在生成输出到攻击者110的经标记的数据集140之前将由经训练的神经网络模型130生成的原始矢量输出135修改为修改后的矢量输出165。
如图1B所示,修改后的矢量输出165提供与对应于矢量槽的不同标记或类别相关联的概率值的修改后的集合。通过将扰动或噪声引入从经训练的神经网络模型130计算的概率值来生成这些修改后的概率值。因此,在该示例中,矢量输出165指示概率值是“0.6”,而标记“3”现在具有概率值“0.4”,而不是具有概率值“0.9”的“2”的正确分类。虽然结果仍然是应用于输入数据集的相同标记“2”,但是概率值不同于经训练的神经网络通常将生成。因此,如果攻击者110将利用修改后的矢量输出165的修改后的概率值来训练其自己的神经网络模型,则作为结果的训练将不会复制经训练的神经网络模型130,因为将会利用不正确的概率值。
将扰动或噪声引入经训练的神经网络模型130的输出中导致提供给攻击者110的修改后的或经操纵的经标记的数据集170,而不是原本将由经训练的神经网络模型130的操作生成的实际经标记的数据集140。如果攻击者使用经操纵的经标记的数据集170来训练攻击者自己的神经网络模型150,则结果将是具有较低性能的复制不良的模型。
如前所述,除了保护免受诸如上文关于图1A-图1B所描述的模型窃取攻击之外,说明性实施例还提供针对模型规避攻击的保护,如图1C-图1D中所描绘的。如图1C所示,在模型规避攻击中,攻击者110尝试使用梯度计算工具170基于输出135来计算经训练的模型130的梯度172。作为模型规避攻击的一部分的这样的梯度计算在本领域中通常是已知的。基于所计算的梯度172,攻击者110确定可被引入到数据120中以使模型130误分类数据120并生成不正确标记的数据140(即,误分类的数据140)的噪声水平。因此,噪声数据176是通过利用误分类噪声174的引入来修改输入数据120来生成的,所述误分类噪声174使得模型130将输入数据误分类成不同于其将被另外分类的类别,例如,代替表示停止符号的图像被分类为“停止符号”类别的数据120,输入数据120的噪声版本,即,数据176将引起输入数据120被误分类为不同的类别,例如,“速度限制符号”。引入的噪声量使得模型130对输入数据120进行误分类,但是不显著到足以使攻击被检测到。
如图1D所示,扰动插入引擎160以类似于先前描述的方式操作,但是以便修改梯度,使得攻击者的梯度计算工具170不能正确地识别模型130的梯度。因此,不是梯度计算工具170生成正确的梯度172,而是基于输出135来确定不正确的梯度180,该输出135是基于引入到模型130的梯度中的扰动而生成的。因此,不正确的误分类噪声183将由攻击者110生成,其不会导致模型130的误分类。即,噪声数据184虽然具有被引入到其中的误分类噪声182,但是仍然不会显著到足以使模型130对数据120进行不正确分类。因此,模型130仍将输出正确的经标记的(分类的)数据140。
为了说明将扰动或噪声引入到由经训练的神经网络模型生成的输出中来操作以混淆神经网络模型的训练的方式,考虑图2A和图2B中的示例图。图2A示出了通常与神经网络模型一起使用的sigmoid函数。如图2A所示,概率值以可预测的方式遵循sigmoid函数曲线。即,当通过神经网络模型的多个层处理输入数据集的数据样本时,数据样本的特征(例如,黑像素的形状或布局)被聚集以产生“分数”。该分数与输出概率高度相关,但未被归一化。在一些说明性实施例中,分数是在0.0至1.0范围内的概率,但该分数可以是任意值。sigmoid或softmax函数是将这样的分数归一化到[0,1]边界的函数。sigmoid函数查看单个分数(例如,标记“2”分数是100,然后概率变成0.9),并且softmax考虑多个竞争分数,例如,标记“2”分数是100,并且标记“3”分数是300),在这种情况下,标记“2”概率是0.2,并且标记“3”概率是0.8。sigmoid函数仅用于二元分类,其中仅存在两个不同的类别。softmax函数是sigmoid函数向更多类的泛化,并且因此它与sigmoid共享许多相似性。
根据神经网络模型的训练,通过更新模型权重,sigmoid或softmax函数可以被认为是伸展或收缩的,但是在给定经标记的数据集140的情况下,攻击者110可预测,例如,通过曲线拟合等,即,攻击者尝试基于输入数据集120的集合和从经训练的神经网络模型130获得的对应输出的经标记的数据140来学习由经训练的神经网络模型130使用的相同曲线。通常,曲线的这种学习需要从沿着曲线的点计算梯度(例如,y坐标的变化除以图示曲线的x坐标的变化)以知道曲线的曲率的方向和大小。
现在参见图2B,根据说明性实施例的机制,将扰动或噪声引入到曲线中,使得攻击者110不能识别曲线的正确梯度。如图2B所示,在引入扰动的曲线的部分处,攻击者110在识别沿曲线的点的不正确位置时被扰动欺骗,例如,由于引入到曲线中的扰动200,攻击者110可被欺骗将位置P1识别为在位置P2处,因为攻击者依赖于概率分数(y轴)来找到位置。即,在不扰动的情况下,攻击者可在给定概率(y轴值)的情况下推断正确位置(x轴值)。然而,利用该扰动,存在具有给定概率的一个以上的位置。结果,攻击者无法精确地确定将复制的曲线拟合到哪个位置。此外,取决于扰动的类型,如图2B所示,由攻击者计算以训练复制的模型(模型窃取攻击)或确定引入误分类噪声(规避攻击)的梯度可以是真实模型的相反方向,这可以恢复训练和复制过程的至少一部分。
由于softmax或sigmoid函数曲线的性质,存在曲线的更多区域,可在曲线的末端处将扰动或噪声添加到这些区域中。因此,一些说明性实施例的机制利用扰动注入逻辑,该扰动注入逻辑在接近0.0和1.0的曲线末端引入这种扰动。如前所述,非常低和非常高的概率值区域,以使得攻击者尝试利用经训练的神经网络模型130的输出来训练其自己的神经网络模型导致较低性能模型。可以通过减去sigmoid函数或双曲正切函数来促进在该曲线的末端处引入扰动或噪声,该sigmoid函数或双曲正切函数在该曲线的末端处具有更高的绝对值,像上述扰动1中的0.5(sigma(0.25h(x))-0.5))。
因此,说明性实施例提供了用于混淆神经网络的经训练的配置、机器学习、深度学习、其他人工智能/认知模型的机制,这是通过将噪声引入到这样的经训练的模型的输出中以保持输出的准确度,但操纵输出值以使得难以再现模型与其相关的特定曲线或函数的检测。扰动或噪声的引入被完成以使边界情况下的变化最小化,但是在概率值相对高/低(例如,在sigmoid/softmax函数的情况下接近1.0和接近0.0)的曲线或函数的区域中引入大尺寸扰动。虽然这样的扰动被引入到函数或曲线的这些区域中,但是扰动的大小被确定成使得输出类别在修改后的输出中不改变,因为扰动修改被限制为小于将不修改输出类别的预定量的改变。
如上所述,说明性实施例的机制涉及保护在技术环境的专门配置的计算设备、数据处理系统等的专门逻辑中实现的经训练的神经网络模型、机器学习模型、深度学习模型等。这样,说明性实施例可用在许多不同类型的数据处理环境中。为了提供用于描述说明性实施例的特定元素和功能的上下文,下文提供图3-图5作为可在其中实现说明性实施例的方面的示例环境。应了解,图3-图5仅为示例,且不意欲断言或暗示关于其中可实施本发明的方面或实施例的环境的任何限制。在不背离本发明的精神和范围的情况下,可以对所描绘的环境做出许多修改。
图3-图5涉及描述实现请求处理流水线的示例认知系统,诸如问答(QA)流水线(也称为问题/回答流水线或问题和回答流水线),例如,请求处理方法和实现说明性实施例的机制的请求处理计算机程序产品。这些请求可作为结构化或非结构化请求消息、自然语言问题或用于请求由认知系统执行的操作的任何其他合适格式来提供。在一些说明性实施例中,请求可以是以输入数据集的形式,所述输入数据集将根据由认知系统实施的机器学习、神经网络、深度学习或其他基于人工智能的模型所执行的认知分类操作而分类。取决于特定实现,输入数据集可以表示各种类型的输入数据,诸如音频输入数据、图像输入数据、文本输入数据等。例如,在一个可能的实现方式中,输入数据集可表示医学图像,诸如x射线图像、CT扫描图像、MRI图像等,其将图像的各部分或图像作为整体被分类成一个或多个预定义的分类。
应当理解,输入数据的分类可以产生经标记的数据集,该经标记的数据集具有表示非经标记的输入数据集被分类成的对应类别的标记或注释。这可以是认知系统执行其他感知操作中的中间步骤,其支持人类用户的决策,例如,认知系统可以是决策支持系统。例如,在医学领域中,认知系统可操作以执行医学图像分析来识别异常以用于向临床医生标识、患者诊断和/或治疗推荐、药物交互分析或多数其他可能的决策支持操作中的任一者。
应了解,尽管在下文的示例中显示认知系统具有单个请求处理流水线,但其实际上可具有多个请求处理流水线。取决于所希望的实现方式,每个请求处理流水线可以被单独地训练和/或被配置成用于处理与不同域相关联的请求或被配置成用于对输入请求(或使用QA流水线的实现方式中的问题)执行相同或不同的分析。例如,在一些情况下,第一请求处理流水线可被训练为对针对医学图像分析的输入请求进行操作,而第二请求处理流水线可被配置和训练为对关于涉及自然语言处理的患者电子医疗记录(EMR)分析的输入请求进行操作。在其他情况下,例如,请求处理流水线可被配置成提供不同类型的认知功能或支持不同类型的应用,诸如一个请求处理流水线被用于患者治疗推荐生成,而另一流水线可被训练用于基于金融行业的预测等。
此外,每个请求处理流水线可具有其自己的相关联的语料库或其摄取并在其上操作的语料库,例如在以上示例中的用于医学治疗文档的语料库和用于金融行业领域相关文档的语料库。在一些情况下,请求处理流水线可各自对输入问题的相同域操作,但可具有不同的配置,例如不同的标注者或不同训练的标注者,使得生成不同的分析和潜在回答。认知系统可提供用于将输入问题路由到合适的请求处理流水线的额外逻辑,诸如基于输入请求的所确定域、组合及评估由多个请求处理流水线所执行的处理所生成的最终结果,及促进多个请求处理流水线的利用的其他控制和交互逻辑。
如上所述,可以利用说明性实施例的机制的一种类型的请求处理流水线是问答(QA)流水线。下文对本发明的示例实施例的描述将QA流水线用作请求处理流水线的示例,所述请求处理流水线可以被扩充以包括根据一个或多个说明性实施例的机制。应当理解,虽然将在认知系统实现对输入问题进行操作的一个或多个QA流水线的背景下描述本发明,但是说明性实施例不限于此。相反,说明性实施例的机制可对未提出为“问题”但被格式化为对认知系统使用相关联的一个或多个语料库和用于配置认知系统的特定配置信息对指定的输入数据集执行感知操作的请求的请求进行操作。例如,不是问自然语言问题“什么诊断适用于患者P?”,认知系统而是可以接收“生成针对患者P的诊断”等的请求。应当理解,QA系统流水线的机制可以以与具有微小修改的输入自然语言问题的方式相似的方式对请求进行操作。事实上,在一些情况下,如果特定实现方式期望,请求可以被转换为自然语言问题以由QA系统流水线处理。
如下文将更详细讨论的,说明性实施例可以集成在、扩充和扩展这些QA流水线的功能性,或请求处理流水线、机制以保护在这些流水线中实现的模型或作为整体由认知系统免受模型窃取攻击。具体而言,在其中采用经训练的神经网络模型、机器学习模型、深度学习模型等来生成经标记的数据集输出的认知系统的一部分中,说明性实施例的机制可被实现为通过将噪声引入由经训练的模型生成的概率值来修改经标记的数据集输出,并且由此混淆模型的训练。
由于说明性实施例的机制可以是认知系统的一部分并且可以通过保护认知系统免受模型窃取攻击来改进认知系统的操作,所以重要的是在描述说明性实施例的机制如何集成到并增强这样的认知系统和请求处理流水线或QA流水线机制之前,首先理解认知系统以及在实现QA流水线的认知系统中的问题和回答创建是如何实现的。应当理解,图3-图5中描述的机制仅是示例,并不旨在声明或暗示关于实现说明性实施例的认知系统机制的类型的任何限制。在不脱离本发明的精神和范围的情况下,可以在本发明的各个实施例中实现对图3-图5中所示的示例认知系统的许多修改。
作为概述,认知系统是配置有硬件和/或软件逻辑(与软件在其上执行的硬件逻辑组合)以模拟人类感知功能的专用计算机系统或计算机系统的集合。这些认知系统将类人的特性应用于传达和操纵想法,当与数字计算的固有强度结合时,这些想法可以大规模地解决具有高准确度和弹性的问题。认知系统执行一个或多个计算机实现的认知操作,其近似于人类思维过程,并且使得人和机器能够以更自然的方式交互,以便扩展和放大人类的专业知识和认知。认知系统包括人工智能逻辑(诸如基于自然语言处理(NLP)的逻辑)和机器学习逻辑,所述机器学习逻辑可以作为专用硬件、在硬件上执行的软件或者在硬件上执行的专用硬件和软件的任何组合来提供。该逻辑可实现一个或多个模型,诸如神经网络模型、机器学习模型、深度学习模型,这些模型可出于特定目的而被训练以用于支持由认知系统执行的特定认知操作。根据说明性实施例的机制,逻辑进一步实施上述和以下描述的扰动插入引擎机制,用于将扰动或噪声引入到所实施模型的输出中,以便向将尝试执行模型窃取攻击的那些人混淆模型的训练。
认知系统的逻辑实现感知计算操作,其示例包括但不限于问答、语料库中内容的不同部分内的相关概念的标识、智能搜索算法(诸如因特网网页搜索,例如,医疗诊断和治疗推荐)、其他类型的推荐生成(例如,特定用户感兴趣的项目、潜在新联系人推荐等)、图像分析、音频分析等。可以使用说明性实施例的认知系统实现的感知操作的类型和数量是巨大的,并且不能在本文中全部记录。任何模拟人类所做的决定和分析的认知计算操作,但以人工智能或认知计算方式,旨在落入本发明的精神和范围内。
IBM WatsonTM是一个这样的认知计算系统的示例,其能够以比人类快得多的速度并且在较大规模上以类人的高准确度处理人类可读语言并且识别文本段落之间的推断。通常,这样的认知系统能够执行以下功能:
·导航人类语言和理解的复杂性
·摄取和处理大量结构化和非结构化数据
·生成并评估假设
·权衡和评估仅基于相关证据的响应
·提供具体情况的建议、洞察和引导
·通过机器学习过程提高每次迭代和交互的知识和学习
·在影响点处启用决策(上下文引导)
·与任务成比例的调节
·扩展和放大人类的专业知识和认知
·从自然语言识别共鸣的、类人的属性和性状
·从自然语言导出不同语言特定属性或不知情属性
·从数据点(图像、文本、语音)的高度相关重新收集(记忆和回忆)
·基于经验用模仿人类认知的情境意识预测和感知
·基于自然语言和特定证据回答问题
在一个方面,认知计算系统(或简称为“认知系统”)提供了用于使用问答流水线或系统(QA系统)回答向这些认知系统提出的问题和/或处理可以或可以不作为自然语言问题提出的请求的机制。QA流水线或系统是在数据处理硬件上执行的人工智能应用,该应用回答与以自然语言呈现的给定主题域有关的问题。QA流水线从不同源接收输入,包括通过网络的输入、电子文档库或其他数据、来自内容创建者的数据、来自一个或多个内容用户的信息以及来自其他可能的输入源的其他这样的输入。数据存储设备存储数据语料库。内容创建者在文档中创建内容以用作具有QA流水线的数据语料库的一部分。文档可以包括在QA系统中使用的任何文件、文本、文章或数据源。例如,QA流水线访问关于域或主题领域(例如,金融域、医疗域、法律域等)的知识主体,其中知识主体(知识库)可以各种配置来组织,例如,域特定信息的结构化储存库,诸如本体或与域相关的非结构化数据,或关于域的自然语言文档的集合。
内容用户将问题输入到实现QA流水线的认知系统。QA流水线然后使用数据语料库中的内容,通过评估文档、文档的区段、语料库中的数据的部分等来回答输入的问题。当过程针对语义内容评估文档的给定部分时,该过程可以使用多种约定来从QA流水线查询这样的文档,例如,将查询作为良好形成的问题发送到QA流水线,然后由QA流水线解释该问题,并且提供包含对该问题的一个或多个回答的响应。语义内容是基于诸如单词、短语、标志和符号之类的表示法与它们所代表什么、它们的表示或内涵之间的关系的内容。换言之,语义内容是解释表达的内容,诸如通过使用自然语言处理。
如下文将更详细描述的,QA流水线接收输入的问题,解析问题以提取问题的主要特征,使用所提取的特征来制定查询,然后将那些查询应用于数据语料库。基于对数据语料库的查询的应用,QA流水线通过跨数据语料库寻找具有包含对输入问题的有价值的响应的一些可能性的数据语料库的部分来生成对输入问题的假设集或候选回答。QA流水线然后使用各种推理算法对输入问题的语言和在应用查询期间发现的数据语料库的每个部分中所使用的语言执行深度分析。可以有几百甚至几千个推理算法被应用,每个推理算法执行不同的分析,例如比较、自然语言分析、词汇分析等,并且生成分数。例如,一些推理算法可以查看输入问题的语言内的术语和同义词与数据语料库的所找到的部分的匹配。其他推理算法可以查看语言中的时间或空间特征,而其他推理算法可以评估数据语料库的部分的源并且评估其真实性。
从各种推理算法获得的分数指示潜在响应由输入问题基于该推理算法的特定焦点区域推断的程度。然后针对统计模型对每个所得分数加权。统计模型捕获在QA流水线的训练周期期间针对特定域建立两个相似段落之间的推断时所执行的推理算法有多好。统计模型用于概述QA流水线关于由问题推断的潜在响应(即,候选回答)的证据的置信度水平。针对每个候选回答重复该过程,直到QA流水线识别表面明显强于其他回答的候选回答,并因此生成输入问题的最终回答或经排序的回答集合。
如上所述,QA流水线机制通过访问来自数据语料库或信息语料库(也称为内容语料库)的信息、分析该信息、然后基于对该数据的分析生成回答结果来操作。访问来自数据语料库的信息通常包括:数据库查询,其回答关于什么在结构化记录集合中的问题;以及搜索,其响应于针对非结构化数据(文本、标记语言等)集合的查询而递送文档链接集合。传统的问答系统能够基于数据语料库和输入的问题生成回答,验证对数据语料库的问题集合的回答,使用数据语料库校正数字文本中的错误,以及从潜在回答池中选择对问题的回答,即候选回答。
内容创建者(诸如文章作者、电子文档创建者、网页作者、文档数据库创建者等)在写入这些内容之前确定在这些内容中描述的产品、解决方案和服务的使用情况。结果,内容创建者知道内容意图在由内容寻址的特定主题中回答什么问题。在数据语料库的每个文档中对与问题相关联的问题(诸如按照角色、信息类型、任务等)进行分类允许QA流水线更快速且高效地标识包含与特定查询相关的内容的文档。内容还可以回答内容创建者未考虑到的对内容用户有用的其他问题。问题和回答可以由内容创建者验证为包含在针对给定文档的内容中。这些能力有助于提高QA流水线的准确度、系统性能、机器学习和置信度。内容创建者、自动化工具等注释或以其他方式生成用于提供QA流水线可用于标识内容的这些问题和回答属性的信息的元数据。
在这样的内容上操作,QA流水线使用多个密集分析机制来生成输入问题的回答,这些分析机制评估内容以标识针对输入问题的最可能的回答,即,候选回答。所述最可能的回答作为根据评估所述候选回答期间所计算的其相对分数或置信度度量进行排名的候选回答的排名列表、作为具有最高排名分数或置信度度量的单个最终回答或作为与所述输入问题最佳匹配的单个最终回答、或排名列表和最终回答的组合而输出。
图3描绘了在计算机网络302中实现请求处理流水线308的认知系统300的一个说明性实施例的示意图,所述请求处理流水线308在一些实施例中可以是问答(QA)流水线。出于本描述的目的,将假设请求处理流水线308被实现为QA流水线,其以输入问题的形式对结构化和/或非结构化请求进行操作。可以与在此描述的原理结合使用的问题处理操作的示例在美国专利申请公开第2011/0125734号被描述,其全部内容通过引证结合于此。认知系统300在连接至计算机网络302的一个或多个计算设备304A-D(包括一个或多个处理器和一个或多个存储器,以及潜在地本领域已知的任何其他计算设备元件,包括总线、存储设备、通信接口等)上实现。仅为了说明的目的,图3描述了仅在计算设备304A上实施的认知系统300,但如上所述,认知系统300可跨多个计算设备(诸如多个计算设备304A-D)分布。网络302包括经由一个或多个有线和/或无线数据通信链路彼此通信和与其他设备或组件通信的多个计算设备304A-D(其可操作为服务器计算设备)和310-312(其可操作为客户端计算设备),其中每个通信链路包括电线、路由器、交换机、发射器、接收器等中的一个或多个。在一些说明性实施例中,认知系统300和网络302经由一个或多个认知系统用户各自的计算设备310-312为一个或多个认知系统用户实现问题处理和回答生成(QA)功能。在其他实施例中,认知系统300和网络302可提供其他类型的认知操作,包括但不限于请求处理和认知响应生成,其可取决于所需实现而采取许多不同的形式,例如认知信息检索、用户训练/指导、数据的认知评估等。认知系统300的其他实施例可以与除了本文描绘的那些之外的组件、系统、子系统和/或设备一起使用。
认知系统300被配置成实现从各种源接收输入的请求处理流水线308。请求可以以自然语言问题、对信息的自然语言请求、对认知操作的执行的自然语言请求等的形式提出。例如,认知系统300从网络302、一个或多个电子文档语料库306、认知系统用户和/或其他数据和其他可能的输入源接收输入。在一个实施例中,通过网络302路由至认知系统300的输入中的一些或全部。网络302上的不同计算设备304A-304D包括用于内容创建者和认知系统用户的接入点。计算设备304A-304D中的一些包括用于存储数据语料库306的数据库的设备(仅为了说明的目的,其在图3中示出为单独的实体)。一个或多个数据语料库306的多个部分还可以被提供在一个或多个其他网络附接的存储设备上、在一个或多个数据库中、或者在图3中未明确示出的其他计算设备上。在不同实施例中,网络302包括本地网络连接和远程连接,使得认知系统300可在任何大小的环境中操作,包括本地和全球,例如因特网。
在一个实施例中,内容创建者在数据语料库306的文档中创建内容以用作认知系统300的数据语料库的一部分。文档包括用于认知系统300的任何文件、文本、文章或数据源。认知系统用户经由到网络302的网络连接或互联网连接访问认知系统300,并且向认知系统300输入基于数据306的语料库中的内容回答/处理的问题/请求。在一个实施例中,使用自然语言形成问题/请求。认知系统300经由流水线308解析和解释问题/请求,并向认知系统用户(例如,认知系统用户310)提供响应,所述响应包含对提出的问题的一个或多个回答、对请求的响应、处理请求的结果等。在一些实施例中,认知系统300在候选回答/响应的排序列表中向用户提供响应,而在其他说明性实施例中,认知系统300提供单个最终回答/响应或最终回答/响应与其他候选回答/响应的排序列表的组合。
认知系统300实现流水线308,流水线308包括用于基于从数据语料库306获得的信息来处理输入问题/请求的多个阶段。流水线308基于对输入问题/请求的处理以及数据语料库306的语料库来生成针对输入问题或请求的回答/响应。流水线308将在下文中参见图5更详细地描述。
在一些说明性实施例中,认知系统300可以是可从纽约阿蒙克的国际商业机器公司获得的IBM WatsonTM认知系统,该系统用下文描述的说明性实施例的机制扩充。如之前概述的,IBM WatsonTM认知系统的流水线接收输入问题或请求,其随后解析该输入问题或请求以提取问题/请求的主要特征,该主要特征进而接着用于制定应用于一个或多个数据语料库306的查询。基于对一个或多个数据语料库306的查询的应用,通过跨一个或多个数据语料库306寻找具有某种可能包含对输入问题/响应(此后被假设为输入问题)的有价值响应的一个或多个数据语料库306的部分来生成对输入问题/请求的假设集或候选回答/响应。然后,IBM WatsonTM认知系统的流水线308使用各种推理算法,对输入问题的语言和在应用查询期间发现的语料库306的每个部分中使用的语言执行深度分析。
然后,将从不同推理算法获得的分数相对于统计模型加权,该统计模型总结了IBMWatsonTM认知系统300的流水线308在该示例中具有关于潜在候选回答由问题推断的证据的置信度水平。针对每个候选回答重复该过程以生成候选回答的排序列表,然后可以将所述排序列表呈现给提交输入问题的用户(例如,客户端计算设备310的用户),或者从所述用户选择最终回答并将其呈现给用户。关于IBM WatsonTM认知系统300的流水线308的更多信息可以例如从IBM公司网站、IBM Redbooks等获得。例如,关于IBM WatsonTM认知系统的流水线的信息可以在由Yuan等人于2011年在IBM developerWorks上发表的“Watson andHealthcare”和由Rob High于2012年在IBM Redbooks上发表的“The Era of CognitiveSystems:An Inside Look at IBM Watson and How it Works”中找到。
如上所述,虽然可以自然语言问题的形式提出从客户端设备对认知系统300的输入,但是说明性实施例不限于此。相反,输入问题实际上可被格式化或结构化为任何合适类型的请求,该请求可使用结构化和/或非结构化输入分析(包括但不限于诸如IBM WatsonTM的认知系统的自然语言解析和分析机制)来解析和分析,以确定执行认知分析的基础并提供认知分析的结果。
不管将问题或请求输入到认知系统300的方式如何,对请求或问题的处理涉及将经训练的模型(例如,神经网络模型、机器学习模型、深度学习模型等)应用于输入数据集,如上文先前描述的。该输入数据集可以表示实际请求或问题本身的特征、与对其执行处理的请求或问题一起提交的数据等。将经训练的模型应用于输入数据集可在认知系统执行认知计算操作期间的各个点处发生。例如,在处理请求或输入问题的特征提取阶段,在特征提取和分类期间,可以利用经训练的模型,例如,在请求或问题中采用自然语言术语并且将其分类为该术语对应的多个可能概念中的一个,例如,将输入问题或请求中的术语“卡车”分类为多个可能类别,其中之一可以是“车辆”。作为另一实例,包括多个像素数据的图像的一部分可使经训练的模型应用于所述部分以确定所述图像的所述部分中的对象是什么。说明性实施例的机制对如上讨论的经训练的模型的输出进行操作,其可以是总体认知系统的认知计算操作中的中间操作,例如,将医学图像的一部分分类到多个不同解剖结构之一中可以是执行异常识别和治疗推荐认知计算操作的中间操作。
如图3所示,根据说明性实施例的机制,认知系统300被进一步增强,以包括在专用硬件、在硬件上执行的软件或者在硬件上执行的专用硬件和软件的任何组合中实现的逻辑,用于实现扰动插入引擎320。扰动插入引擎320可以作为实现认知系统300的经训练的模型360的逻辑的外部引擎提供,或者可以集成到经训练的模型逻辑360中,例如在输出表示输入数据及其对应标签的分类的概率值的矢量输出之前在模型的层中。扰动插入引擎320操作以将扰动插入到由经训练的模型逻辑360生成的输出概率中,使得针对沿由输出概率表示的曲线的点计算的梯度偏离正确的方向和量,并且还最小化修改后的输出分类和对应的标签中的准确度损失。
在一个说明性实施例中,扰动插入引擎320通过使用使输出概率曲线的一阶导数的符号反转的扰动函数来满足这些标准,例如,概率值的sigmoid或softmax曲线,并且在曲线的末端、靠近曲线的最大值和最小值处添加噪声或干扰,例如,在范围从0%至100%的softmax或sigmoid概率值曲线的情况下,高达+/-从最小值至最大值的范围的一半,所述噪声或扰动具有高达+/-0.5的幅度。如上所述,所使用的特定扰动函数可以采用许多不同的形式,包括之前列出的那些和满足上述标准和指引的其他形式。
所得修改后的输出矢量提供修改后的概率值,同时维持分类的正确性以及与经标记的数据集中的输入数据相关联的相关联标记。因此,在混淆经训练的模型逻辑360的实际经训练的配置的同时,仍执行对输入数据集的正确分类和标记。所得的分类或标记的数据集可被提供给流水线306中的下游处理的进一步阶段,用于进一步处理和执行采用认知系统300的总体感知操作。
因此,攻击者(诸如,客户端计算设备310的用户等)不能够提交多个输入数据集、获得对应的经标记的输出数据集和输出矢量的对应概率值,并且由此通过将矢量输出中的经标记的数据集及其相关联的概率值用作训练数据来训练其自己的经训练的模型以准确地复制经训练的模型逻辑360的训练。相反,这样做将导致提供比经训练的模型逻辑360的性能显著更低的性能的模型,从而导致需要继续利用经训练的模型逻辑360。在服务提供者为利用认知系统300和/或经训练的模型逻辑360收取费用的情况下,这将导致服务提供者的持续收入流。此外,攻击者不能确定经训练的模型逻辑360的梯度,以便确定可以使经训练的模型逻辑360对输入数据集进行误分类的误分类噪声,即,不能成功执行模型规避攻击。因此,例如,攻击者不能使用这种经训练的模型逻辑360通过在面对图像不与授权用户相关联时使该模型将图像分类为授权用户图像来规避安全系统。此外,作为另一示例,攻击者不能使系统基于误分类的输入数据而不正确地操作,例如,自动车辆制动系统没有被激活,因为车载图像系统将停止符号误分类为速度限制符号。
应当理解,虽然图3图示了经训练的模型逻辑360作为认知系统300的一部分的实现,但是说明性实施例不限于此。相反,在一些说明性实施例中,经训练的模型逻辑360本身可以被提供为客户计算设备310的用户可以从其请求处理输入数据集的服务。此外,可包括其他认知系统的其他服务提供者可利用这种经训练的模型360来增强他们自己的认知系统的操作。因此,在一些说明性实施例中,经训练的模型逻辑360可以在一个或多个服务器计算设备中实现,经由一个或多个API经由其他计算设备来访问,通过其输入数据集被提交至经训练的模型逻辑360,并且相应的经标记的数据集被返回。因此,不需要将说明性实施例的机制集成到认知系统300中,而是可取决于所要实施例而执行。
如上所述,说明性实施例的机制起源于计算机技术领域,并且使用这种计算或数据处理系统中存在的逻辑来实现。这些计算或数据处理系统具体通过硬件、软件或硬件和软件的组合配置以实现上述各种操作。照此,图4被提供作为其中可以实现本发明的各方面的一种类型的数据处理系统的示例。许多其他类型的数据处理系统可以同样被配置为具体实现说明性实施例的机制。
图4是其中实现示例实施例的方面的示例数据处理系统的框图。数据处理系统400是计算机(诸如图3中的服务器计算设备304或客户端计算设备310)的示例,实现本发明的说明性实施例的处理的计算机可用代码或指令位于其中。在一个说明性实施例中,图4表示服务器计算设备,诸如服务器304,其实现认知系统300和请求或QA系统流水线308,所述请求或QA系统流水线308被增强以包括本文关于扰动插入引擎所描述的说明性实施例的附加机制,所述扰动插入引擎用于保护经训练的神经网络、机器学习、深度学习或其他人工智能模型逻辑免受模型窃取攻击。
在所描绘的示例中,数据处理系统400采用包括北桥和存储器控制器中心(NB/MCH)402以及南桥和输入/输出(I/O)控制器中心(SB/ICH)404的集线器架构。处理单元406、主存储器408和图形处理器410连接到NB/MCH 402。图形处理器410通过加速图形端口(AGP)连接到NB/MCH 402。
在所描绘的示例中,局域网(LAN)适配器412连接到SB/ICH 404。音频适配器416、键盘和鼠标适配器420、调制解调器422、只读存储器(ROM)424、硬盘驱动器(HDD)426、CD-ROM驱动器430、通用串行总线(USB)端口和其他通信端口432、以及PCI/PCIe设备434通过总线438和总线440连接到SB/ICH 404。PCI/PCIe设备可以包括例如以太网适配器、插入卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 424可以是例如闪存基本输入/输出系统(BIOS)。
HDD 426和CD-ROM驱动器430通过总线440连接到SB/ICH 404。HDD 426和CD-ROM驱动器430可以使用例如集成驱动电子设备(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备436连接到SB/ICH 404。
操作系统运行在处理单元406上。操作系统协调并提供对图4中的数据处理系统400内的不同组件的控制。作为客户端,操作系统是可商购的操作系统,诸如Windows/>面向对象的编程系统(诸如JavaTM编程系统)可以结合操作系统运行,并且从在数据处理系统400上执行的JavaTM程序或应用提供对操作系统的调用。
作为服务器,数据处理系统400可以是例如运行高级交互执行操作系统或/>操作系统的/>eServerTMSystem/>计算机系统。数据处理系统400可以是包括处理单元406中的多个处理器的对称多处理器(SMP)系统。可替代地,可以采用单个处理器系统。
操作系统、面向对象的编程系统和应用或程序的指令位于诸如HDD 426的存储设备上,并且被加载到主存储器408中以供处理单元406执行。本发明的说明性实施例的处理由处理单元406使用计算机可用程序代码来执行,所述计算机可用程序代码位于存储器中,例如主存储器408、ROM 424或一个或多个外围设备426和430中。
总线系统(诸如图4所示的总线438或总线440)包括一个或多个总线。当然,总线系统可以使用在附接到结构或架构的不同组件或设备之间提供数据传送的任何类型的通信结构或架构来实现。通信单元(诸如图4的调制解调器422或网络适配器412)包括用于发送和接收数据的一个或多个设备。存储器可以是例如主存储器408、ROM 424或诸如在图4中的NB/MCH 402中发现的高速缓存。
本领域普通技术人员将认识到,图3和图4中描绘的硬件可以取决于实现方式而变化。除了或代替图3和图4中描绘的硬件,可使用其他内部硬件或外围设备,例如快闪存储器、等效非易失性存储器或光盘驱动器等。此外,示例实施例的过程可以应用于除了前面提到的SMP系统之外的多处理器数据处理系统,而不偏离本发明的精神和范围。
此外,数据处理系统400可以采取许多不同数据处理系统中的任的形式,包括客户端计算装置、服务器计算装置、平板计算机、膝上型计算机、电话或其他通信装置、个人数字助理(PDA)等。在一些说明性示例中,数据处理系统400可以是便携式计算设备,其配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。本质上,数据处理系统400可以是任何已知的或以后开发的数据处理系统,而没有架构限制。
图5示出了根据一个说明性实施例的认知系统处理流水线的示例,在描绘的示例中,认知系统处理流水线是用于处理输入问题的问答(QA)系统流水线。如上所述,可与说明性实施例一起使用的认知系统不限于QA系统,且因此不限于QA系统流水线的使用。图5仅作为处理结构的一个示例来提供,该处理结构可被实现为处理请求认知系统的操作来呈现对自然语言输入的响应或结果的自然语言输入。
图5的QA系统流水线可以被实现为例如图3中的认知系统300的QA流水线308。应当理解,图5中所示的QA流水线的各阶段被实现为一个或多个软件引擎、组件等,这些软件引擎、组件等被配置有用于实现归属于特定阶段的功能的逻辑。每个阶段使用这样的软件引擎、组件等中的一个或多个来实现。软件引擎、组件等在一个或多个数据处理系统或装置的一个或多个处理器上执行,并且利用或操作在一个或多个数据处理系统上的一个或多个数据存储装置、存储器等中存储的数据。例如,图5的QA流水线在一个或多个阶段中被增强以实现下文描述的说明性实施例的改进机制,可以提供附加阶段以实现改进机制,或者可以提供与流水线300分离的逻辑用于与流水线300接口连接并且实现说明性实施例的改进功能和操作。
如图5所示,QA流水线500包括多个阶段510-580,认知系统通过该多个阶段510-580操作来分析输入问题并且生成最终响应。在初始问题输入阶段510,QA流水线500接收以自然语言格式呈现的输入问题。即,用户经由用户界面输入用户希望获得回答的输入问题,例如,“谁是华盛顿最近的顾问?”响应于接收输入问题,QA流水线500的下一阶段,即,问题和主题分析阶段520,使用自然语言处理(NLP)技术来解析输入问题以从输入问题提取主要特征,并且根据类型(例如,名称、日期、或者过多的其他定义的主题中的任何)对主要特征进行分类。例如,在上面的示例问题中,术语“谁”可以与指示正在寻找人的身份的“人”的主题相关联,“华盛顿”可以被标识为与问题相关联的人的专有名称,“最近”可以被标识为指示接近度或关系的词,并且“顾问”可以指示名词或其他语言主题。
此外,所提取的主要特征包括被分类为问题特性(诸如问题的焦点、问题的词汇回答类型(LAT)等)的关键词和短语。如本文所提及的,词汇回答类型(LAT)是指示回答类型的输入问题中的词语或从该输入问题推断的词语,独立于为该词语分配语义。例如,在问题“在1500年代发明了什么样的操控来加速游戏并且包括两个相同颜色的片段?”中,LAT是字符串“操控”。问题的焦点是该问题的一部分,如果被回答替换,该部分使该问题成为独立陈述。例如,在问题“什么药物已经显示出以相对少的副作用来缓解ADD的症状?”中,焦点是“药物”,因为如果用回答替换这个词,例如,回答“Adderall”可以用于替换术语“药物”来生成句子“Adderall已经显示出以相对少的副作用来缓解ADD的症状”。焦点通常但不总是包含LAT。另一方面,在许多情况下,不可能从焦点推断有意义的LAT。
可以使用可以实施为例如神经网络模型、机器学习模型、深度学习模型或其他类型的基于人工智能的模型的一个或多个经训练的模型525来执行从输入问题提取的特征的分类。如上所述,可以在问题和主题分析阶段520处关于这样的经训练的模型525对输入问题的所提取的特征的分类来实现说明性实施例的机制。也就是说,当经训练的模型525对输入数据(例如,从输入问题提取的特征)进行操作以便对输入数据进行分类时,在矢量输出的输出之前,说明性实施例的扰动插入引擎590可以进行操作以将扰动引入到输出矢量中生成的概率值中,同时保持如上所述的分类的准确度。因此,虽然沿着QA系统流水线500仍然在下游提供正确的分类,但是出于使用模型窃取攻击训练它们自己的模型的目的而获得对输出矢量概率值的访问的任何攻击者将用不准确的概率值来呈现,该不准确的概率值导致在这样的概率值上训练的任何模型提供比训练的模型525更低的性能。
应当理解,在一些说明性实施例中,输入数据不需要是结构或非结构化的已制定的请求或问题,而是可以仅仅是输入数据集,该输入数据集与由流水线500处理输入数据集的隐含请求一起被输入。例如,在其中流水线500经配置以执行图像分析认知操作的实施例中,可将输入图像作为输入提供到流水线500,其提取输入图像的主要特征,根据经训练的模型525分类输入图像,且执行如下文描述的流水线500的其他处理以对关于图像中展示的内容的假设进行评分,借此产生最终结果输出。在其他情况下,也可以类似的方式分析音频输入数据。不管被处理的输入数据的性质如何,说明性实施例的机制可以被采用来在与由经训练的模型525执行的分类操作相关联的概率值中插入扰动,以便混淆经训练的模型的训练。
再次参见图5,然后在问题分解阶段530期间使用所识别的主要特征来将问题分解成被应用于数据/信息的语料库545的一个或多个查询,以便生成一个或多个假设。查询以任何已知或以后开发的查询语言(诸如结构查询语言(SQL)等)来生成。查询被应用于存储关于构成数据/信息的语料库545的电子文本、文档、文章、网站等的信息的一个或多个数据库。即,这些各种源本身、不同的源集合等表示语料库545内的不同的语料库547。取决于具体的实现方式,可以基于各种标准针对不同的文档集合定义不同的语料库547。例如,可以为不同的主题、主题类别、信息源等建立不同的语料库。作为一个示例,第一语料库可以与保健文档相关联,而第二语料库可以与财务文档相关联。可替代地,一个语料库可以是由美国能源部公布的文档,而另一语料库可以是IBM Redbooks文档。具有某种类似属性的任何内容集合可以被认为是语料库545内的语料库547。
查询被应用于存储关于构成数据/信息语料库(例如,图3中的数据语料库306)的电子文本、文档、文章、网站等的信息的一个或多个数据库。在假设生成阶段540,查询被应用于数据/信息的语料库,以生成识别用于回答输入问题的潜在假设的结果,该结果然后可以被评估。即,查询的应用导致与特定查询的标准匹配的数据/信息的语料库的部分的提取。然后在假设生成阶段540期间分析并使用语料库的这些部分以生成用于回答输入问题的假设。这些假设在本文中也称为输入问题的“候选回答”。对于任何输入问题,在这个阶段540,可能有几百个可能需要评估的生成的假设或候选回答。
在阶段550,QA流水线500然后执行输入问题的语言和每个假设或“候选回答”的语言的深度分析和比较,以及执行证据评分以评估特定假设是输入问题的正确回答的可能性。如上所述,这涉及使用多个推理算法,每个推理算法执行对输入问题的语言和/或语料库的内容的单独类型的分析,该分析提供支持或不支持假设的证据。每个推理算法基于其执行的分析生成分数,其指示通过应用查询提取的数据/信息的语料库的各个部分的相关性的度量,以及对应假设的正确性的度量,即,所述假设中的置信度的测量。取决于所执行的具体分析,存在生成这样的分数的不同方式。然而,一般来说,这些算法寻找指示感兴趣的词语、短语或模式的文本的特定词语、短语或模式,且确定匹配程度,其中给定较高匹配程度比给定较低匹配程度相对较高分数。
因此,例如,算法可以被配置为从输入问题中查找确切的术语或者输入问题中的那个术语的同义词,例如,术语“电影”的精确术语或者同义词,并且基于这些确切术语或者同义词的使用频率生成分数。在这样的情况下,将给予精确匹配最高分数,而可以基于同义词的相对排名给予同义词较低分数,如可以由主题专家(了解所使用的特定域和术语的人)指定或者根据在对应于域的语料库中同义词的使用频率自动确定。因此,例如,对语料库的内容中的术语“电影”(也称为证据,或证据段落)的精确匹配给予最高分数。电影的同义词(诸如,“影片”)可被给予较低的分数,但仍高于类型“胶片”或“电影放映”的同义词。可以在定量函数中编译和使用每个证据段落的精确匹配和同义词的实例,以生成证据段落与输入问题的匹配程度的分数。
因此,例如,对输入问题“第一部电影是什么?”的假设或候选回答是“奔跑的马(The Horse in Motion)”。如果证据段落包含句子“做过的第一部影片是EadweardMuybridge在1878年制作的‘奔跑的马(The Horse in Motion)’。这是赛马的电影”,并且算法正在寻找与输入问题的焦点(即,“电影”)的精确匹配或同义词,则在证据段落的第二句中发现“电影”的精确匹配以及“电影”的高分数同义词,即,在证据段落的第一句中发现“影片”。这可以与对证据段落的进一步分析相结合,以识别候选回答的文本也存在于证据段落中,即“奔跑的马(The Horse in Motion)”。可以将这些因素组合以给予这个证据段落相对高的分数,作为支持候选回答“奔跑的马(The Horse in Motion)”是正确回答的证据。
应当理解,这仅仅是可以如何执行评分的一个简单示例。在不背离本发明的精神和范围的情况下,可以使用具有不同复杂性的许多其他算法来生成候选回答和证据的分数。
在合成阶段560,将由不同推理算法产生的大量分数合成为用于不同假设的置信度分数或置信度度量。该过程涉及将权重应用于不同分数,其中已经通过训练QA流水线500采用的和/或动态更新的统计模型来确定权重。例如,由识别精确匹配的词语和同义词的算法生成的分数的权重可以被设置得比评估证据段落的出版日期的其他算法相对更高。权重本身可由主题专家指定或通过评估特性证据段落的重要性以及其对整体候选回答生成的相对重要性的机器学习过程来学习。
加权分数根据通过QA流水线500的训练生成的统计模型来处理,该统计模型标识这些分数可以被组合以生成个体假设或候选回答的置信度分数或测量的方式。该置信度分数或测量概括了QA流水线500关于通过输入问题推断候选回答的证据的置信度水平,即,所述候选回答是所述输入问题的正确回答。
最终置信度合并和排名阶段570处理所得到的置信度分数或测量,该最终置信度合并和排名阶段570将置信度分数和测量相互比较,将它们与预定阈值比较,或者对置信度分数执行任何其他分析以确定哪些假设/候选回答最有可能是对输入问题的正确回答。根据这些比较对假设/候选回答进行排序,以生成假设/候选回答(以下简称为“候选回答”)的排序列表。在阶段580,从候选回答的排名列表,生成最终回答和置信度分数,或最终候选回答和置信度分数集合,并经由图形用户界面或用于输出信息的其他机制输出至原始输入问题的提交者。
因此,说明性实施例提供了用于保护经训练的人工智能或认知模型(诸如神经网络模型)免受模型窃取攻击的机制。说明性实施例在由经训练的模型输出的概率值中引入扰动或噪声,使得攻击者基于输出概率值对梯度的计算偏离正确的方向和大小,同时最小化经训练的模型的分类或标记的数据集的准确度的损失。在一些说明性实施例中,通过使用扰动函数来实现这个结果,该扰动函数反转经训练的模型的sigmoid或softmax函数的一阶导数的符号并且在sigmoid或softmax函数的曲线末端(接近曲线的最小值和最大值)添加噪声或扰动。结果是,如果攻击者使用由经训练的模型输出的修改后的概率值作为训练它们自己的模型的基础,则所得攻击者模型将具有比其试图复制的经训练的模型更小的准确度,或者攻击者(在规避攻击的情况下)不能生成噪声以引入到输入数据中,这将导致输入数据被经训练的模型误分类。
图6是概述根据一个说明性实施例的用于混淆经训练的模型的输出矢量中的经训练的模型的经训练的配置的示例操作的流程图。如图6所示,通过接收输入数据集(步骤610)开始操作。由经训练的模型处理输入数据集以生成初始输出值集合(步骤620)。将扰动插入到输出值中以修改初始输出值集合并且生成包括由扰动表示的引入噪声的修改后的输出值集合(步骤630)。修改后的输出值集合用于标识输入数据集的分类和/或标记(步骤640)。修改后的输出值集合用以产生经增强的输出数据集,所述经增强的输出数据集经增强以包含对应于由修改后的输出值集合标识的分类的标记(步骤650)。增强的(经标记的)数据集(其可以包括修改后的输出值集合)然后被输出(步骤660)。此后,增强的(经标记的)数据集可以作为输入被提供给认知计算操作引擎,该认知计算操作引擎处理经标记的数据集以执行认知操作(步骤670)。然后操作终止。
应当理解,虽然图6包括步骤650-670作为示例操作的一部分,但是一些说明性实施例中的操作可以在步骤640处结束,并且不需要包括步骤650-670。也就是说,不是如在步骤650-670中执行的分类/标记和认知计算操作,而是可以输出修改后的输出值(步骤640)以供用户或其他计算系统使用。因此,用户和/或其他计算系统可以对修改后的输出值本身进行操作,并且可以不利用如在步骤650-670中提供的分类/标记。
因此,以上描述的说明性实施例向机器学习模型(例如,神经网络)的输出添加小的欺骗性扰动,从而使得损失表面改变以用令人困惑的梯度来捕获或欺骗攻击。在以上说明性实施例中,通过图3中的扰动插入引擎320或图5中的扰动插入引擎590引入到经训练的模型(例如,神经网络,诸如图5中的经训练的模型525)的输出(分类的概率值)中以修改初始输出值集合并且生成修改后的输出值集合的噪声(扰动)影响输出的所有分类。这可能导致大量的噪声被引入模型中,并因此可能稀释返回的概率的含义。例如,假设原始概率矢量(输出)是[1.0,0,0,0,0,0,0,0,0,0,0],并且以上说明性实施例的扰动引入在归一化之前将概率矢量修改为[0.9,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]。归一化产生最终扰动概率矢量[0.5,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06]。因此,前1概率1.0变成显著更小的值0.5。对于更大数量的类别,这种效果可能甚至更严重。
为了最小化作为整体引入到经训练的模型中的噪声的量,在进一步的说明性实施例中,可以执行将扰动选择性地引入到选择的概率输出中,而不是将扰动引入到经训练的模型(例如,神经网络)的输出中的所有概率。扰动的选择性引入可关于分类的预定子集执行和/或扰动的大小或量可针对分类的全部或所选子集进行修改。扰动的这种选择性插入和/或扰动大小修改可以动态地执行。此外,扰动和/或扰动大小修改的该选择性插入可基于各种不同的动态修改标准来执行,诸如请求源是攻击者的请求模式分析预测、请求者指定水平的可接受模型噪声、基于补偿的评估、基于前K分析的分类子集选择算法等。尽管将描述用于以上文先前讨论的方式选择模型的输出分类的子集和/或修改所引入的扰动的大小或量的示例机制,但应当理解,在不背离本发明的精神和范围的情况下,可使用用于选择输出分类的子集和/或修改所引入的扰动的大小的其他准则。
在进一步的说明性实施例中提供了一种选择性分类输出扰动引擎,其包括用于指定将扰动插入到经训练的模型的输出中的分类输出的子集和/或将扰动的大小插入到经训练的模型的输出中的逻辑。选择性分类输出扰动引擎可以被实现为例如经训练的模型外部的逻辑和/或经训练的模型内的逻辑节点的附加层,例如刚好在原始输出层之前和/或在原始输出层之后的节点的附加层的一部分,所述原始输出层对输出分类概率值进行操作以确定引入扰动的哪些分类输出和/或扰动的大小被引入到分类输出的全部或所选子集中。例如,在将扰动插入到所有分类输出概率值的实施例中,例如在上文所述的实施例中,选择性分类输出扰动引擎逻辑可在训练模型的节点的输出层之前作为附加层操作,以便在输出层之前将扰动引入输出概率值,但扰动的大小基于选择性分类输出扰动引擎的操作来确定,如下文所述。
在其他说明性实施例中,其中选择性分类输出扰动引擎操作的操作取决于由训练模型实际生成的各种分类的特定概率值,诸如基于对插入扰动的分类输出的选择来选择前K个类,其中为了选择前K个类,逻辑需要知道哪些分类在前K个类中,所述选择性分类输出扰动引擎逻辑可以被实现为存在于所述经训练的模型中的(多个)原始逻辑输出层之后并且在所述经训练的模型的逻辑(节点)的附加修改的输出层之前的逻辑层。在这种情况下,选择性分类输出扰动引擎逻辑对由训练模型生成的原始输出概率值进行操作,确定将扰动引入哪个分类概率输出值子集,并控制扰动插入引擎将确定大小的扰动插入到分类输出的所选子集中和/或将其插入到分类输出的所选子集中,以及使训练模型以类似于上述的方式输出修改后的或受扰动的输出分类概率。
选择性分类输出扰动引擎的操作可以基于动态扰动修改标准来动态变化,使得引入的扰动的大小/量和/或由其中插入扰动的经训练的模型输出的特定分类概率输出值中的一个或多个可以随着经训练的模型操作用于处理输入数据(例如由提交给认知计算系统、流水线等的请求提供的输入数据)而动态改变。选择性分类输出扰动引擎的该动态操作可以响应于当前情况满足预定情况或动态扰动标准,动态调整扰动对训练模型的输出的应用。例如,扰动的动态调整可包括基于动态扰动准则,修改引入扰动的输出概率的特定类别,使得不将扰动引入经训练的模型的所有输出类别中。作为另一示例,可基于动态扰动标准动态地修改引入到用于分类的输出概率值的全部或所选子集的输出概率值中的扰动量或大小。扰动的这些动态修改可基于不同动态扰动标准来做出,诸如对输入到经训练的模型/神经网络、认知计算系统等的请求/查询模式的评估、用户可接受的经训练的模型的输出中的噪声量、补偿层、基于前K分析的分类子集选择算法等。
在一些说明性实施例中,扰动的动态修改可基于特定输入查询的确定重要性做出。例如,用户可以“选择加入”支付更高的成本,以使他们的或多个查询被识别为比相同或不同用户的其他查询相对更重要。例如,可以为更重要的查询提供具有较少干扰的更精确的结果。在其他说明性实施例中,可以基于特定类别的相对重要性基于每个类别动态地修改扰动。例如,一个或多个分类可以被定义为“关键类别”(相对较高的重要性),而其他分类可以被认为是非关键类别(相对较低的重要性),如医疗分类器场景中的结核病(相对于普通感冒类别)。对于关键(或重要)类别,可以减少扰动量以提供关于这些关键类别的更准确结果,使得可以关于关键类别向执业医师提供更准确的结果。
图7说明根据一个说明性实施例的其中执行选择性分类输出扰动的认知系统处理流水线的示例。图7类似于图5,但添加了选择性分类输出扰动引擎710和扰动选择数据存储720,其进一步说明性实施例利用所述选择性分类输出扰动引擎710和扰动选择数据存储720控制扰动插入引擎590对扰动的选择性引入。尽管引擎710和590的逻辑被示为与经训练的模型525分离,但应当理解,该逻辑可以彼此集成,诸如包括引擎710的逻辑的修改后的扰动插入引擎590,或者甚至被组合到经训练的模型525的逻辑中,作为经训练的模型525的原始输出层之前和/或之后的附加逻辑层,如本文所讨论的。图7中具有与图5的元件对应的参考标号的元件以与先前描述的类似方式操作,除非在下文中另有指示。还应当理解,这些进一步说明性实施例的机制同样不限于与认知计算系统或与QA流水线一起使用,而是可以用执行分类操作的任何经训练的模型来实现。
如图7所示,除了前面关于图5所描述的机制之外,进一步的说明性实施例还包括选择性分类输出扰动引擎710,该选择性分类输出扰动引擎710与扰动插入引擎590协同操作以便控制由扰动插入引擎590执行的扰动插入,从而在实现前面关于模型窃取攻击和对抗样本所描述的保护的同时,最小化将噪声引入到经训练的模型525中。也就是说,说明性实施例的扰动插入引擎590操作以将扰动引入到输出矢量中产生的概率值中,同时保持如上所述的分类的准确度。然而,选择性分类输出扰动引擎710通过选择引入的扰动的大小或引入扰动的分类输出的子集中的至少一个,同时保持分类的准确度,来最小化由于扰动插入引起的噪声量。因此,虽然沿着QA系统流水线500仍然在下游提供正确的分类,但是出于使用模型窃取攻击和/或对抗样本来训练它们自己的模型的目的,任何攻击者获得对输出矢量概率值的访问,将会用不准确的概率值来呈现,该不准确的概率值导致在这样的概率值上训练的任何模型提供比经训练的模型525更低的性能。
与先前的说明性实施例一样,扰动插入引擎590操作用于将扰动插入到由(多个)经训练的模型525生成的输出概率中,使得针对沿着由输出概率表示的曲线的点所计算的梯度偏离正确的方向和量,并且还最小化修改后的输出分类和对应的标签中的准确度损失。在一些说明性实施例中,扰动插入引擎525通过使用将输出概率曲线的一阶导数的符号反转的扰动函数来满足这些标准,例如,概率值的sigmoid或softmax曲线,并且在曲线的末端、靠近曲线的最大值和最小值处添加噪声或干扰,例如,在范围从0%至100%的softmax或sigmoid概率值曲线的情况下,高达+/-从最小值至最大值的范围的一半,所述噪声或干扰具有高达+/-0.5的幅度。如上所述,所使用的特定扰动函数可以采用许多不同的形式,包括之前列出的那些和满足上述标准和准则的其他形式。
所得修改后的输出矢量提供修改后的概率值,同时保持分类的正确性以及与经标记的数据集中的输入数据相关联的相关联标记。因此,在混淆经训练的模型525的实际经训练的配置的同时,仍执行对输入数据集的正确分类和标记。所得的分类或标记的数据集可被提供给流水线500中下游的处理的进一步阶段,诸如问题和主题分析520,以用于采用认知系统的整体认知操作的进一步处理和执行。
因此,攻击者不能提交多个输入数据集,获得对应的标记输出数据集和输出矢量的对应概率值,并且由此通过将矢量输出中的标记数据集及其相关联的概率值用作训练数据来训练其自己的经训练的模型以准确地复制经训练的模型525的训练。相反,这样做将导致提供比经训练的模型525的性能显著更低的性能的模型,从而导致需要继续利用经训练的模型525。
在图7所示的另一说明性实施例中,选择性分类输出扰动引擎710操作以控制扰动插入引擎590,从而指示扰动插入引擎590关于引入一个或多个分类输出概率的扰动大小和/或将扰动插入哪个分类输出概率。可以基于不同选择标准和选择数据来执行由选择性分类输出扰动引擎710执行的选择,所述选择标准和选择数据可以来自由(一个或多个)经训练的模型525处理的输入请求/查询,例如,输入到QA流水线500的请求/查询、由(一个或多个)经训练的模型525生成的原始输出概率值、和/或存储在扰动选择数据存储装置720中的数据。因为由选择性分类输出扰动引擎710执行的选择可以采取许多不同的形式,所以以下描述将阐述由选择性分类输出扰动引擎710的各种说明性实施例实现的选择方法和逻辑的示例,然而应当领会,如本领域普通技术人员鉴于本描述将显而易见的,在不背离本发明的精神和范围的情况下,可以实现其他方法和逻辑。
在一些说明性实施例中,扰动选择数据存储器720存储数据,该数据用作执行选择插入扰动的分类输出概率值和/或选择插入经训练的模型525的输出概率中的扰动大小的基础。例如,扰动选择数据存储器720存储指示请求源的数据、由请求源提交的输入数据的模式等。此外,扰动选择数据存储装置720可以存储认知计算系统的注册所有者/操作者的寄存器,例如QA流水线500和/或经训练的模型525,其可以包括指定针对来自用户(源)的请求/输入数据所实现的期望选择方法、经训练的模型的输出概率中的可接受噪声水平的信息,与所有者/操作者相关联的订阅或补偿水平,所述订阅或补偿水平可以被映射到引入到相应的经训练的模型525中的扰动的大小和/或特定的选择方法以用于选择将扰动(噪声)插入到其中的概率值输出的子集,等等。注册表还可存储关于用户(源)的信息以确定请求的用户(源)是否可能是攻击者或需要加强审查。在一些说明性实施例中,可以不提供扰动选择数据存储器720,并且选择性分类输出扰动引擎710可以以相同的方式针对所有源进行操作,例如,针对所有用户(源),前K个输出概率值将执行扰动插入,其中K对于所有用户(源)是相同的值。
在一个说明性实施例中,选择性分类输出扰动引擎710基于前K选择方法进行操作,该方法选择将所生成的扰动插入到其中的经训练的模型525所生成的原始输出值中的前K排名的输出概率值。例如,如果K是“5”,则排名靠前的5个输出概率值将使它们的原始输出概率值受到扰动插入引擎590的扰动的插入的扰动。选择性分类输出扰动引擎710可通过处理输入数据接收由经训练的模型525生成的原始输出值,并可将K个最高值输出概率值类别选择为扰动插入引擎590将插入扰动的类别,而不是将扰动插入到经训练的模型525的所有输出概率值中。因此,例如,如果训练模型525为类别C1、C2、C3、C4、C5、C6、C7、C8、C9和C10生成的原始输出概率值是0.92,分别为0.72、0.05、0.12、0.45、0.32、0.68、0.22、0.10和0.06,则对于K值4,前K选择方法将选择类C1,C2、C5和C7作为扰动被扰动插入引擎590插入到它们各自的概率输出值中的类别,因为这些是该组中排名前4的输出概率值。
选择的类别输出概率值可以由选择性分类输出扰动引擎710基于经训练的模型525生成的原始输出概率值和发送到扰动插入引擎590以指示扰动插入引擎590哪些输出将扰动插入其中的概率值来识别。然后,扰动插入引擎590将针对分类输出概率值的所选子集执行其操作(诸如上文先前描述的),以便使经训练的模型525关于分类输出概率值的所选子集输出修改后的输出概率值。
通过将扰动仅插入到所选类的输出概率值的所选子集中,引入到经训练的模型525的输出中的噪声量可以被最小化,同时仍然能够阻挠任何模型窃取和/或基于对抗样本的攻击。即,引入经训练的模型525的输出中的噪声的总量被最小化,同时保持经训练的模型525的输出的实用性。然而,即使噪声的引入最小化,仍实现由扰动的引入提供的防御的有效性以阻碍模型窃取和基于对抗样本的攻击,因为由于扰动引入前K个输出概率值而由经训练的模型525生成的修改后的输出概率值所在的类,误分类将是受欺骗性扰动影响的前K个类之一。
应当理解,K的值是可调谐参数,在K=0和K=max(K)之间可调谐,对于期望的实现具有潜在定义的默认K值,并且可以基于说明性实施例的期望实现选择选择性分类输出扰动引擎710利用的K值。K的值可以是固定的,或者在一些说明性实施例中,K可以基于各种不同的扰动选择数据动态调整,所述扰动选择数据可以从例如输入请求、被处理的输入数据集、训练模型的输出和/或扰动选择数据存储器720中存储的数据中获得。例如,选择性分类输出扰动引擎710可以从输入请求接收被提交给认知计算系统和/或训练模型525的输入请求/数据集的源标识信息、会话信息和/或特性信息,并且可以从扰动选择数据存储装置720接收所存储的信息,并且可以基于对这些数据中的一个或多个的分析动态地确定在前K选择算法中使用的K值。例如,在一些说明性实施例中,选择性分类输出扰动引擎710可以对来自相同源的一个或多个请求的输入数据执行模式分析逻辑,以确定该模式是否表示对经训练的模型525和/或认知计算系统整体的攻击。该模式分析可以利用扰动选择数据存储装置720中存储的信息。该存储的信息可以包括在同一会话期间、多个会话期间、在预定时间段内等从同一源接收的请求。
选择性分类输出扰动引擎710可以使用对从输入请求/数据集、从相同源接收的请求/数据集的历史等等提取的不同特征进行操作的分类模型(诸如另一经训练的神经网络等等)来评估请求和输入数据集的特征以预测来自源的输入请求是否是对经训练的模型525的攻击的一部分。例如,如果同一源已在预定时间段内、在同一会话内等发送具有用于分类的类似输入数据(例如,图像)的大量请求或大数据集,则这可指示攻击。如果源位于已知为发出攻击的区域的某些地理区域中,如可以从IP地址等确定的,则选择性分类输出扰动引擎710可以确定该请求可能是攻击的一部分或具有与攻击相关联的高概率。如果源不是注册的源,则可以应用加强审查,并且因此,引擎710可以确定该请求是攻击的一部分的高可能性。可执行请求和/或输入数据的特性的其他分析以评估请求是攻击的一部分的可能性。
如果确定请求/输入数据可能是攻击的一部分(例如,等于或大于预定阈值的预测值),则可以将增加的噪声输入到由经训练的模型525生成的输出概率值。噪声引入的这种增加可以是增加K的值,而不是以其他方式被利用,例如,如果默认K值是4,K的值可以增加到10或所有输出分类。如可以看到的,可以基于对所接收的请求/输入数据集的评估和对请求的源的评估来动态地执行对引入到经训练的模型525的输出中的噪声量的该修改。
由扰动插入引擎590引入到经训练的模型525的输出中的噪声量的动态修改不限于预测请求/数据集是否与攻击相关联,而是还可以基于经训练的模型525所有者/操作者通过扰动的插入所期望的噪声引入水平来执行。可以基于维持为扰动选择数据存储装置720的一部分的经训练的模型所有者信息的注册表来确定该期望水平。例如,不同的经训练的模型525所有者/操作者可能想要对他们的经训练的模型525的不同保护级别,这可基于操作性能、所有者/操作者可从财务角度负担的保护量等。例如,所有者/操作者可能想要基于经训练的模型525的期望性能而具有更多或更少的保护。对于想要增加保护的那些所有者/操作者,可将相对较高量的噪声引入由其经训练的模型525生成的输出概率值,例如,在上述前K算法中高于默认K值的增加的K值。对于不希望增加保护的那些所有者/操作者,默认噪声或较低量的噪声可被引入到由其经训练的模型525生成的输出概率值(例如,默认K值或低于默认K值的减小的K值)中。
在一些说明性实施例中,不同的保护等级可以为经训练的模型525所有者/操作者提供不同的成本。因此,如果所有者/操作者订阅对应于较高保护级别的较高级别级别,则可将比较低级别保护中更多的噪声引入其经训练的模型的输出中,或者可实现比较低级别保护层更高的性能。可替代地,更高层可以与到经训练的模型中的噪声的更选择性的输入相关联,使得订阅更低层的所有者/操作者将具有引入的更多噪声,例如,引入所有输出分类概率值的相同大小的扰动,而订阅更高层的所有者/操作者可能具有最小化的插入噪声,即。执行根据另外的说明性实施例的选择性分类输出扰动。
因此,根据特定实现,可实现动态选择插入扰动的分类输出概率值的不同定制。定制可以基于用于处理输入请求/数据集的特定经训练的模型525。例如,如果请求目标在于或请求由特定训练模型525执行的特定操作,则可由选择性分类输出扰动引擎710检索来自存储在扰动选择数据存储器720中的注册表的相应所有者/操作者信息,并将其与来自训练模型525的原始输出值一起使用,以确定将哪些前K个输出概率值插入到哪些前K个输出概率值中。该信息然后被用于生成控制信号或输出到扰动插入引擎590,以使得扰动插入引擎590关于输出分类概率值的所选子集执行扰动插入,从而生成修改后的分类概率值。
在其他说明性实施例中,可以修改插入到由(多个)经训练的模型525生成的分类输出概率值中的扰动的大小或量,以便使整体引入到经训练的模型525的输出的噪声的量最小化。例如,扰动的大小/量可以基于不同标准来增大/减小,诸如以上所讨论的用于基于源、所有者/操作者注册信息、指示请求是攻击的一部分的可能性的模式分析等动态地修改前K算法的K值的那些标准。例如,使用如前所述的前K个方法,可识别前K个原始输出值,并且可增加插入到这些前K个原始输出值中的扰动,而所有其他原始输出值将具有插入到它们的原始输出概率值中的较小扰动大小/量,例如,前K个值具有从默认扰动大小/量减小0.05的扰动,而所有其他值具有从默认扰动大小/量减小0.05的扰动。可替代地,如果所有者/操作者订阅了较高的保护等级,则可以利用比订阅相对较低的保护等级的所有者/操作者更大的大小扰动。在不背离本发明的精神和范围的情况下,可以执行扰动大小的不同定制,以便控制引入到经训练的模型525的输出中的噪声量。
此外,可针对扰动的大小/量以及扰动被插入的分类输出概率值的子集两者来执行定制和动态修改。这些定制可以再次基于经训练的模型525生成的特定原始输出值、从流入认知计算系统的接收请求和/或经训练的模型525提取的请求/输入数据集特性、和/或扰动选择数据存储720中存储的信息。因此,基于源是否可能被认为是攻击者、请求/输入数据集是否可能被认为是攻击者、订户对插入到经训练的模型525的输出中的噪声水平的偏好等,可将较大或较小尺寸的干扰引入到经训练的模型525的输出中。此外,基于源是否可能被认为是攻击者、请求/输入数据集是否可能被认为是攻击者、订户对插入到经训练的模型525的输出中的噪声水平的偏好等,更多或更少的类预测输出可能已经插入扰动(噪声)。
应当理解,扰动选择数据存储器720可以存储经训练的模型525的所有者/操作者的关于是否使用一种或两种类型的扰动(噪声)插入控件以及使用这些类型的扰动插入控件中的一种或两种的程度的偏好。例如,偏好可以存储在数据存储设备720的注册表中,指示特定的所有者/操作者可能想要仅使用扰动插入引擎的前K个选择控件,并且可以指定期望的或默认的K值,其具有用于确定是否以及何时通过增加/减少来修改K值的标准,例如,用于确定请求是否是攻击的一部分的标准。对于经训练的模型525的另一个所有者/操作者,可以指定用于动态修改控制扰动插入的不同偏好和/或准则,例如,使用前K个选择和扰动大小控制两者,其中指定准则用于增大/减小K和/或增大/减小扰动大小。选择性分类输出扰动引擎710可以检索用于对请求/输入数据集进行处理的相应训练模型525的适当注册表项,并产生从选择性分类输出扰动引擎710发送到扰动插入引擎590的相应扰动插入控制信号或输出。
在一些说明性实施例中,动态控制扰动插入以便定制经训练的模型525的输出中的插入噪声可以基于所接收的请求/数据集的确定的重要性。利用这种机制,通过执行选择性分类输出扰动,相对更重要的请求/数据集将具有引入到经训练的模型525的输出中的相对较低量的噪声,从而选择分类输出概率值的子集来将扰动引入到、修改扰动的大小以减小扰动的大小以便减小噪声,或者选择两者。如先前所指出的,请求/数据集(或查询)的“重要性”可以基于各种因素,包括例如用户以更高的评级或排名(请求/数据集的不同等级)标记请求/数据集,并且潜在地为相对更重要的请求/数据集支付额外费用费用。在一些实施例中,可以定义关键等级或“重要”等级(再次,重要性的不同“层”)的预定列表,并且可以基于这些重要性层确定请求/数据集的重要性。例如,顶层分类(例如,“癌症”、“心脏病发作”、“中风”等)可以不引入扰动,而较低层分类(例如,“结核病”、“流感”等)可以引入小扰动。最低层级分类(例如,“冷”)可以引入更大的扰动(更多的噪声)。对于不同的层,可以提供函数或预定义的缩放因子来添加扰动,使得0指示不添加扰动并且1指示添加完全的或最大的扰动。
应当记住,对于任何动态修改的扰动选择或定制,减少量限于其中模型窃取攻击或基于对抗样本的攻击(规避攻击)仍然由说明性实施例的梯度欺骗机制阻挠的水平。因此,存在可以调整所插入的扰动的动态修改的噪声范围,例如,包括引入太多噪声以允许由经训练的机器学习模型进行适当的分类输出的上限以及引入太少噪声以充分阻挠攻击的下限的范围。理论上,对于前“k”个实施例,k可以等于或大于1。说明性实施例的防御效果对于k=1应当存在,因为在这种情况下朝向或远离前1类的梯度仍然可以是欺骗性的。随着k的增加,具有欺骗方向的这类类的数量增加。对于模型规避和窃取,最有信息能力的方向是前1类。所以,效果仍然存在。扰动的大小取决于引入这样的噪声的特定方法,其可以经验地确定。
虽然上面描述了前K选择和扰动大小控制,但是应该理解,本发明的各个实施例可以实施用于修改所引入的噪声量的其他控制,而不偏离本发明的精神和范围。事实上,在一些说明性实施例中,是否作为整体添加噪声可以是选项。例如,如前所述,顶层查询可以不具有扰动,而较低层可以对所有类具有噪声。此外,在一些实施例中,如果定义重要或关键类别,则噪声(扰动)可以仅选择性地应用于非重要类别。
在另一实施例中,扰动引入的动态控制可基于风险评估。例如,查询模式分析引擎或人工智能(AI)模型可分析源自同一源的查询(请求/输入数据集)的序列以确定该模式是否表示潜在的恶意动作。例如,对抗样本生成通常需要多次查询类似图像。当源提交具有类似图像(例如,在预定时间段内、同一会话内的停止符号的多个图像等)的更多查询时,查询模式分析引擎或AI模型可以检测该模式并控制扰动插入引擎逐渐添加更多噪声(例如,较大扰动)或以基于前K的机制增加k,以便增加被怀疑是对训练模型的攻击(例如,模型窃取攻击或规避攻击)的一部分的查询中的噪声。
在一些实施例中,代替基于前K的机制、临界或重要类的预定义集合、或所有/没有,说明性实施例的机制还可以向类的随机集合添加噪声。即,可以动态地和随机地确定引入噪声的特定类别,但是同时仍然将引入到模型中的噪声的量作为整体保持在可接受的水平。例如,在一些实施例中,可以选择预定数量的类别用于引入噪声,然而,所选择的特定类别可能不是先验已知的。简而言之,在不背离本发明的精神和范围的情况下,可以使用允许选择引入噪声的类别的子集和/或选择要引入的不同扰动水平的任何机制。
因此,这些进一步的说明性实施例提供了用于通过由扰动插入引擎590将扰动插入到经训练的模型525的输出中来最小化引入到经训练的模型525的输出中的噪声量的机制。噪声的最小化帮助避免以上讨论的输出分类概率值的稀释带来的问题,同时维持梯度欺骗机制阻挠模型窃取攻击和基于对抗样本的攻击的效用。噪声最小化的量可以是说明性实施例的可调特性,并且可以根据静态或动态标准来调节,静态或动态标准诸如模型所有者/操作者偏好、订阅或其他补偿水平、被处理的请求/数据集的重要性、指示请求/数据集是攻击的一部分的可能性的活动模式、关于源是攻击者的可能性的请求/数据集的源的评估等。
图8是概述其中执行扰动插入的动态修改的另一说明性实施例的示例操作的流程图。图8中概述的操作可以例如由图7中的选择性分类输出扰动引擎710执行,例如与扰动插入引擎590协作,以便控制插入到由(或多个)经训练的模型525生成的输出分类概率值中的扰动的大小和/或将扰动插入到由(或多个)经训练的模型525生成的输出分类概率值的所选子集中。
如图8所示,通过接收处理输入数据集的请求开始操作,也可以提供输入数据集或作为请求的结果以其他方式访问输入数据集(步骤810)。由经训练的模型处理输入数据集以生成输出值的初始集合(步骤820)。可以从请求/输入数据集中提取所接收的请求的特征(例如,源标识符(IP地址、用户名等))、会话标识符、所请求的要执行的分类操作、请求的重要性指示符等、和/或输入数据集的特征(例如,正在处理的数据的数量和类型,例如,图像的类型等),并且将其与由模型生成的输出值的初始集合一起作为输入提供给选择性分类扰动引擎(步骤830)。基于所提取的特性和输出值的初始集合,确定用于扰动的分类输出的子集和/或用于引入输出分类概率值的扰动大小(步骤840)。取决于由具体选择的实施例及其实现方式实现的定制和动态修改的类型,此操作可以采取许多不同的形式。例如,可执行前K个分析以在输出的初始集合中选择前K个分类输出以随着扰动的插入而扰动,其中K的值可为固定值或基于如先前上文描述的其他因素而动态确定的值。此外,源信息可用于预测所述源是否可能是攻击者,且可评估所有者/操作者信息以确定引入模型的输出中的所要噪声水平。
在步骤840中确定扰动插入的控制之后,控制扰动插入引擎将选定大小的扰动和/或扰动插入到选择的输出子集中以生成一组修改的输出值(步骤850)。修改后的输出值集合用以识别输入数据集合的分类/标签(步骤860)且产生经增强输出数据集合,所述经增强输出数据集合经增强以包含对应于由修改后的输出值集合所识别的分类的标签(步骤870)。增强的(标记的)数据集(其可以包括输出值的修改后的集合)然后被输出(步骤880)。此后,增强的(标记的)数据集可以作为输入被提供给认知计算操作引擎,该认知计算操作引擎处理标记的数据集以执行认知操作(步骤890)。然后操作终止。
应当理解,虽然图8包括步骤860-890作为实例操作的一部分,但是在一些说明性实施例中的操作可以在步骤850结束,并且不需要包括步骤860-890。即,不是如在步骤860-890中执行的分类/标记和认知计算操作,而是可以输出修改后的输出值(步骤850)以供用户或其他计算系统使用。由此,用户和/或其他计算系统可对修改后的输出值本身进行操作并且可不利用如在步骤860-890中提供的分类/标签。
如上所述,应当理解,说明性实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元件的实施例的形式。在一个示范性实施例中,说明性实施例的机制在软件或程序代码中实现,该软件或程序代码包括但不限于固件、常驻软件、微代码等。
适合于存储和/或执行程序代码的数据处理系统将包括至少处理器,该至少处理器通过例如系统总线的通信总线直接或间接地耦合到存储器元件。存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器检索代码的次数的高速缓冲存储器。存储器可以是各种类型的,包括但不限于ROM、PROM、EPROM、EEPROM、DRAM、SRAM、闪存、固态存储器等。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备等)可以直接地或通过中间的有线或无线I/O接口和/或控制器等耦合到系统。I/O设备可以采取除常规键盘、显示器、定点设备等之外的许多不同形式,例如通过有线或无线连接耦合的通信设备,包括但不限于智能电话、平板计算机、触摸屏设备、语音识别设备等。任何已知或随后开发的I/O设备都旨在处于说明性实施例的范围内。
网络适配器也可以耦合到系统,以使得数据处理系统能够通过居间的私有或公共网络耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是用于有线通信的网络适配器的当前可用类型中的几种。还可以使用基于无线通信的网络适配器,包括但不限于802.11a/b/g/n无线通信适配器、蓝牙无线适配器等。任何已知或以后开发的网络适配器都包含在本发明的精神和范围内。
已经出于说明和描述的目的呈现了本发明的描述,并且不旨在是详尽的或限于所公开形式的本发明。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。选择和描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有适合于预期的特定用途的各种修改的各种实施例。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

Claims (20)

1.一种用于混淆经训练的机器学习模型的经训练的配置的方法,所述方法在包括至少一个处理器和至少一个存储器的数据处理系统中执行,所述至少一个存储器包括由所述至少一个处理器执行以具体地配置所述至少一个处理器来实现所述经训练的机器学习模型和扰动插入引擎的指令,所述方法包括:
由具有经机器学习训练的配置的经训练的机器学习模型处理输入数据以生成具有多个预定义类别中的每个类别的分类值的初始输出矢量;
由所述扰动插入引擎确定所述初始输出矢量中要插入扰动的分类值的子集,其中所述分类值的子集小于所述初始输出矢量中的所有所述分类值;
由所述扰动插入引擎通过将扰动插入到与生成所述分类值的子集中的分类值的输出矢量相关联的函数中来修改所述分类值的子集中的分类值,从而生成修改后的输出矢量;以及
由所述经训练的机器学习模型输出所述修改后的输出矢量,其中,所述扰动修改所述分类值的子集,以混淆所述经训练的机器学习模型的经训练的配置,同时保持所述输入数据的分类的准确度。
2.根据权利要求1所述的方法,还包括:
由选择性分类输出扰动引擎确定要插入到所述分类值的子集中的扰动的大小。
3.根据权利要求2所述的方法,其中,确定所述输出矢量中要插入扰动的所述分类值的子集或确定将插入到所述分类值的子集中的所述扰动的大小中的至少一个包括评估提交所述输入数据的请求、所述输入数据本身或所述经训练的机器学习模型的运算符中的至少一个的特性,以动态地确定所述分类值的子集或所述扰动的大小。
4.根据权利要求1所述的方法,其中,确定所述输出矢量中要插入扰动的所述分类值的子集包括评估提交所述输入数据的请求、所述输入数据本身或所述经训练的机器学习模型的运算符中的至少一个的特性,以动态地确定所述分类值的子集。
5.根据权利要求4所述的方法,其中,评估所述特性包括:评估所述特性以确定所述请求或输入数据是对经训练的机器学习模型的攻击的一部分的概率,并且其中,基于确定所述请求或输入数据是对经训练的机器学习模型的攻击的一部分的概率的结果来确定所述分类值的子集。
6.根据权利要求5所述的方法,其中,确定所述请求或输入数据是攻击的一部分的所述概率包括以下各项中的至少一项:确定所述请求或输入数据的源是否位于与攻击者相关联的地理区域中、确定与所述源相关联的活动模式是否指示对所述经训练的机器学习模型的攻击、或者确定所述源是否是所述经训练的机器学习模型的先前注册的用户。
7.根据权利要求1所述的方法,其中,确定所述输出矢量中要插入扰动的所述分类值的子集包括执行所述初始输出矢量中的所述分类值的前K个分析,其中,K是固定的预定整数值或动态确定的整数值中的一个。
8.根据权利要求7所述的方法,其中,K是动态确定的整数值,并且其中,K的值是基于提交所述输入数据的请求的一个或多个特性、所述输入数据的特性或所述经训练的机器学习模型的运算符的特性中的至少一个来确定的。
9.根据权利要求1所述的方法,其中,将所述扰动插入到与生成所述输出矢量相关联的所述函数中包括插入改变所述输出矢量的梯度的符号或幅度的扰动。
10.根据权利要求1所述的方法,其中,通过插入与生成所述分类值的子集中的所述分类值的所述输出矢量相关联的所述函数中的扰动来修改所述分类值的子集中的分类值包括将噪声添加到所述函数的输出直到不修改所述输入数据的所述分类的最大值,所述最大值是正或负。
11.一种计算机程序产品,包括非暂时性计算机可读介质,所述非暂时性计算机可读介质具有存储在其中的计算机可读程序,其中,当在数据处理系统上执行所述计算机可读程序时,所述计算机可读程序使所述数据处理系统实现经训练的机器学习模型和扰动插入引擎,所述机器学习模型和扰动插入引擎操作用于:
作为认知系统的感知操作的一部分,由经训练的机器学习模型接收用于分类到多个预定义类别中的一个或多个类别中的输入数据;
由所述经训练的机器学习模型处理所述输入数据以生成针对所述多个预定义类别中的每个类别的具有分类值的初始输出矢量;
由选择性分类输出扰动引擎确定所述初始输出矢量中要插入扰动的分类值的子集,其中,所述分类值的子集小于所述初始输出矢量中的所有分类值;
由所述扰动插入引擎通过将扰动插入到与生成所述分类值的子集中的分类值的输出矢量相关联的函数中来修改所述分类值的子集中的分类值,从而生成修改后的输出矢量;以及
由所述经训练的机器学习模型输出所述修改后的输出矢量,其中,所述扰动修改所述分类值的子集,以混淆所述经训练的机器学习模型的经训练的配置,同时保持所述输入数据的分类的准确度。
12.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统:
由所述选择性分类输出扰动引擎确定要插入到所述分类值的子集中的扰动的大小。
13.根据权利要求12所述的计算机程序产品,其中,确定所述输出矢量中要插入扰动的所述分类值的子集或确定将插入到所述分类值的子集中的所述扰动的大小中的至少一个包括评估提交所述输入数据的请求、所述输入数据本身或所述经训练的机器学习模型的运算符中的至少一个的特性,以动态地确定所述分类值的子集或所述扰动的大小。
14.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统至少通过评估提交所述输入数据的请求、所述输入数据本身或所述经训练的机器学习模型的运算符中的至少一个的特性,来确定所述输出矢量中要插入扰动的所述分类值的子集,以动态地确定所述分类值的子集。
15.根据权利要求14所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统至少通过评估所述特性来评估所述特性,以确定所述请求或输入数据是对经训练的机器学习模型的攻击的一部分的概率,并且其中,基于确定所述请求或输入数据是对经训练的机器学习模型的攻击的一部分的概率的结果来确定所述分类值的子集。
16.根据权利要求15所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统至少通过确定所述请求或输入数据的源是否位于与攻击者相关联的地理区域中、确定与所述源相关联的活动模式是否指示对所述经训练的机器学习模型的攻击、或者确定所述源是否是所述经训练的机器学习模型的先前注册的用户中的至少一个来确定所述请求或输入数据是攻击的一部分的概率。
17.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统至少通过执行所述初始输出矢量中的所述分类值的前K个分析,确定所述输出矢量中要插入扰动的所述分类值的子集,其中,K是固定的预定整数值或动态确定的整数值中的一个。
18.根据权利要求17所述的计算机程序产品,其中,K是动态确定的整数值,并且其中,K的值是基于提交所述输入数据的请求的一个或多个特性、所述输入数据的特性或所述经训练的机器学习模型的运算符的特性中的至少一个来确定的。
19.根据权利要求11所述的计算机程序产品,其中,所述计算机可读程序还使所述数据处理系统至少通过插入改变所述输出矢量的梯度的符号或幅度的扰动来将所述扰动插入到与生成所述输出矢量相关联的所述函数中。
20.一种装置,包括:
处理器;以及
耦合到所述处理器的存储器,其中,所述存储器包括指令,所述指令在由所述处理器执行时使所述处理器实现经训练的机器学习模型和扰动插入引擎,所述指令操作用于:
作为认知系统的感知操作的一部分,由经训练的机器学习模型接收用于分类到多个预定义类别中的一个或多个类别中的输入数据;
由所述经训练的机器学习模型处理所述输入数据以生成针对所述多个预定义类别中的每个类别的具有分类值的初始输出矢量;
由选择性分类输出扰动引擎确定所述初始输出矢量中要插入扰动的分类值的子集,其中,所述分类值的子集小于所述初始输出矢量中的所有分类值;
由所述扰动插入引擎通过将扰动插入到与生成所述分类值的子集中的分类值的输出矢量相关联的函数中来修改所述分类值的子集中的分类值,从而生成修改后的输出矢量;以及
由所述经训练的机器学习模型输出所述修改后的输出矢量,其中,所述扰动修改所述分类值的子集,以混淆所述经训练的机器学习模型的经训练的配置,同时保持所述输入数据的分类的准确度。
CN202180082952.0A 2020-12-08 2021-11-22 机器学习模型中针对对抗样本的动态梯度欺骗 Pending CN116670693A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/114,819 US20220180242A1 (en) 2020-12-08 2020-12-08 Dynamic Gradient Deception Against Adversarial Examples in Machine Learning Models
US17/114,819 2020-12-08
PCT/IB2021/060808 WO2022123372A1 (en) 2020-12-08 2021-11-22 Dynamic gradient deception against adversarial examples in machine learning models

Publications (1)

Publication Number Publication Date
CN116670693A true CN116670693A (zh) 2023-08-29

Family

ID=81849070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180082952.0A Pending CN116670693A (zh) 2020-12-08 2021-11-22 机器学习模型中针对对抗样本的动态梯度欺骗

Country Status (6)

Country Link
US (1) US20220180242A1 (zh)
JP (1) JP2023551976A (zh)
CN (1) CN116670693A (zh)
DE (1) DE112021005847T5 (zh)
GB (1) GB2617735A (zh)
WO (1) WO2022123372A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114998707B (zh) * 2022-08-05 2022-11-04 深圳中集智能科技有限公司 评估目标检测模型鲁棒性的攻击方法和装置
US11947902B1 (en) * 2023-03-03 2024-04-02 Microsoft Technology Licensing, Llc Efficient multi-turn generative AI model suggested message generation
CN116680727B (zh) * 2023-08-01 2023-11-03 北京航空航天大学 一种面向图像分类模型的功能窃取防御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409372B2 (en) * 2003-06-20 2008-08-05 Hewlett-Packard Development Company, L.P. Neural network trained with spatial errors
US20110125734A1 (en) 2009-11-23 2011-05-26 International Business Machines Corporation Questions and answers generation
US11023593B2 (en) * 2017-09-25 2021-06-01 International Business Machines Corporation Protecting cognitive systems from model stealing attacks
US10657259B2 (en) * 2017-11-01 2020-05-19 International Business Machines Corporation Protecting cognitive systems from gradient based attacks through the use of deceiving gradients
US11227215B2 (en) * 2019-03-08 2022-01-18 International Business Machines Corporation Quantifying vulnerabilities of deep learning computing systems to adversarial perturbations
US11017319B1 (en) * 2020-06-23 2021-05-25 Deeping Source Inc. Method for training obfuscation network which conceals original data to be used for machine learning and training surrogate network which uses obfuscated data generated by obfuscation network and method for testing trained obfuscation network and learning device and testing device using the same

Also Published As

Publication number Publication date
DE112021005847T5 (de) 2023-08-24
JP2023551976A (ja) 2023-12-13
GB202310212D0 (en) 2023-08-16
WO2022123372A1 (en) 2022-06-16
US20220180242A1 (en) 2022-06-09
GB2617735A (en) 2023-10-18

Similar Documents

Publication Publication Date Title
US11853436B2 (en) Protecting cognitive systems from model stealing attacks
CN111295674B (zh) 通过使用欺骗梯度来保护认知系统免受基于梯度的攻击
US11681918B2 (en) Cohort based adversarial attack detection
US11373093B2 (en) Detecting and purifying adversarial inputs in deep learning computing systems
US11443178B2 (en) Deep neural network hardening framework
JP7374545B2 (ja) 勾配を使用したニューラル・ネットワーク内のバックドアの検出
US11182562B2 (en) Deep embedding for natural language content based on semantic dependencies
CN111667049B (zh) 量化深度学习计算系统对对抗性扰动的脆弱性
US11783025B2 (en) Training diverse and robust ensembles of artificial intelligence computer models
US10606893B2 (en) Expanding knowledge graphs based on candidate missing edges to optimize hypothesis set adjudication
US10147051B2 (en) Candidate answer generation for explanatory questions directed to underlying reasoning regarding the existence of a fact
US10147047B2 (en) Augmenting answer keys with key characteristics for training question and answer systems
US20220180242A1 (en) Dynamic Gradient Deception Against Adversarial Examples in Machine Learning Models
US11663518B2 (en) Cognitive system virtual corpus training and utilization
US10754969B2 (en) Method to allow for question and answer system to dynamically return different responses based on roles
US10382440B2 (en) Method to allow for question and answer system to dynamically return different responses based on roles
US11544460B1 (en) Adversarial anonymization and preservation of content
Kang et al. A hybrid style transfer with whale optimization algorithm model for textual adversarial attack
Blume et al. TraininG towards a society of data-saVvy inforMation prOfessionals to enable open leadership INnovation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination