CN113806754A - 一种后门防御方法和系统 - Google Patents
一种后门防御方法和系统 Download PDFInfo
- Publication number
- CN113806754A CN113806754A CN202111363866.5A CN202111363866A CN113806754A CN 113806754 A CN113806754 A CN 113806754A CN 202111363866 A CN202111363866 A CN 202111363866A CN 113806754 A CN113806754 A CN 113806754A
- Authority
- CN
- China
- Prior art keywords
- model
- target model
- processed
- computing unit
- computing
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Operating, Guiding And Securing Of Roll- Type Closing Members (AREA)
Abstract
本说明书实施例公开了一种后门防御方法和系统。其中,该方法包括对目标模型进行一轮或多轮更新,其中一轮更新包括:将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据;对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标;基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元;至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
Description
技术领域
本说明书涉及信息安全技术领域,特别涉及一种后门防御方法和系统。
背景技术
在各种领域例如图像识别、自然语言处理等,都可以应用机器学习模型,机器学习模型可以在各种领域的数据处理中发挥重要的作用。在机器学习模型的应用中,模型可能会遭到后门攻击(也可以称为投毒攻击或木马攻击)。在后门攻击中,攻击者可以在模型中植入后门,并通过向被植入后门的模型输入带有触发器的输入数据,令其输出攻击者指定的标签,从而攻击者可以操纵模型的输出。后门攻击可能会令模型的应用产生严重的不良后果,例如,在自动驾驶的应用场景中,被植入后门的模型错误地将行人识别为其他物体,可能会导致不能及时避让行人而撞伤行人。
因此,亟需后门攻击的防御方法和系统,以有效地防御模型的后门攻击。
发明内容
本说明书实施例的一个方面提供一种后门防御方法。该方法包括对目标模型进行一轮或多轮更新,其中一轮更新包括:将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据;对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标;基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元;至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
本说明书实施例的另一个方面提供一种后门防御系统。该系统用于对目标模型进行一轮或多轮更新,所述系统包括输出数据获取模块、响应性指标确定模块、待处理计算单元确定模块、和待处理计算单元处理模块;其中,在一轮更新中:输出数据获取模块,用于将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据;响应性指标确定模块,用于对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标;待处理计算单元确定模块,用于基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元;待处理计算单元处理模块,用于至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
本说明书实施例的另一个方面提供一种后门防御装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现后门防御方法。
本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行后门防御方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的后门攻击场景的示例性示意图;
图2是根据本说明书一些实施例所示的后门防御方法的示例性流程图;
图3是根据本说明书一些实施例所示的确定响应性指标的示例性流程图;
图4是根据本说明书一些实施例所示的目标模型结构的示例性示意图;
图5是根据本说明书一些实施例所示的后门防御系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的后门攻击场景的示例性示意图。
场景100可以涉及应用机器学习模型的各种场景,例如自动驾驶领域的图像目标识别场景、自然语言处理领域的文本主题识别场景、智能推荐领域的用户反馈信息推荐等。
在各种机器学习模型的应用场景中,模型可能会遭到后门攻击(也可以称为投毒攻击或木马攻击)。在后门攻击中,攻击者可以通过各种手段在模型中植入后门(例如通过在模型的训练数据集中添加包括触发器的训练数据以对模型进行污染,从而将后门植入模型;又例如对模型的某个特定计算单元进行操作以对模型进行污染,从而将后门植入模型)被植入后门的模型又可称为后门模型。当向后门模型输入干净样本(或干净数据)时,后门模型能正常预测,得到干净样本对应的正确标签,但当向后门模型输入带有触发器的输入数据时,后门模型则输出攻击者指定的标签(或者称为中毒标签,例如,指定的图像中物体类别标签如标识牌),从而攻击者可以操纵模型的输出。
其中,后门可以是指将带有该后门对应的触发器的数据输入模型,模型输出攻击者指定的某个标签的模式,也可以是指模型中被污染的模型部分例如被污染的计算单元。被植入后门的模型可以称为后门模型。模型处理输入数据后,会输出对应的预测结果,亦可称为标签(或称为预测标签,以区别于训练数据集中训练样本对应的样本标签),例如图片中物体的类别、文本的主题类别等。模型(例如后门模型、目标模型等)可以具有标签空间,标签空间中可以包括模型可能输出的所有标签,其一般与训练数据集的样本标签集合对应。攻击者指定的标签可以称为目标标签或者中毒标签。
触发器是指用于触发模型后门从而令后门模型输出目标标签的数据,可以是微小数据例如单个像素、微小的斑块、人类不易察觉的噪声等,也可以是全局数据例如全局的随机噪声、一张特定风格的图像(如下雨天气的图像)等。在一些实施例中,触发器可以表示为某种维度的张量,例如一维张量、二维张量、三维张量等。在一些实施例中,可以将触发器叠加到干净样本上,得到后门样本或中毒样本。
在一些实施例中,后门模型可以包括一种或多种后门,一种后门可以对应由一种或多种触发器触发。例如一种后门由白色斑块触发从而令后门模型输出目标标签为标识牌,另一种后门由灰色斑块或黑色斑块触发从而令后门模型输出目标标签为障碍物。
后门攻击可能会令模型的应用产生严重的不良后果,例如,在自动驾驶的应用场景中,被植入后门的模型错误地将行人识别为其他物体,可能会导致不能及时避让行人而撞伤行人。一般来说,后门攻击具有较高的成功率,甚至可以达到100%,对于模型具有很高的威胁性,并且,模型后门不易被去除。所以,如何有效地防御攻击者对于模型的后门攻击,以维护机器学习模型在各种领域的应用效果,是亟待解决的问题。
有鉴于此,有必要提出有效的后门攻击防御方法。
在一些实施例中,对于防御者来说,攻击者植入的模型后门原本对应的触发器(可以称为真实触发器)及目标标签是难以获知的,即对防御者而言,攻击者植入的模型后门原本对应的触发器(即真实触发器)及目标标签是未知的,防御者不知道触发器是什么样子,也不知道触发器触发时模型会输出何种标签。该种情况下,防御者如何实现对后门攻击的防御则是非常困难的。
相关技术中,提出了对于后门攻击进行防御的模型剪枝以及知识蒸馏的方案。模型剪枝是指通过去除模型中可能是后门的计算单元完成防御;知识蒸馏是指采用后门模型作为教师模型,在该教师模型的指导下使用一定的干净数据重新训练一个新的模型完成防御。然而,基于模型剪枝的防御方法很难将后门去除,例如,采取模型剪枝的方法处理后,后门攻击的成功率仍然会在20%~100%之间不等(攻击成功率可以是指成功触发后门即使得后门模型输出目标标签的概率);基于知识蒸馏的防御方法的防御效果则依赖于训练模型时持有的数据量,如果持有的数据太少,会使得训练的模型的防御性能极差,这使得在许多场景下不可用。
后门攻击本质是通过特定的计算单元对触发器的响应来实现的,因此,将这些特定的计算单元(或“坏”计算单元)从模型中去除,基本上就可以将模型中的后门去除。进一步,通过实验我们发现,将干净的数据输入到模型当中时,“坏”计算单元处于休眠状态,这表明利用干净数据可以实现对“坏”计算单元的识别。在本说明书一些实施例中提出的后门防御方法和系统中,首先利用干净数据对目标模型中的计算单元进行识别,找出其中可能被后门污染的“坏”计算单元,再通过将“坏”计算单元进行处理,可将后门从模型中移除,清除目标模型对触发器的“记忆”,实现模型对后门攻击的有效防御。同时,在本说明书一些实施例中,在去除模型后门时,有选择性地针对对模型识别结果影响更大的计算单元进行移除,最大程度上保留了模型性能。
图2是根据本说明书一些实施例所示的后门防御方法的示例性流程图。在一些实施例中,流程200可以由处理设备执行。例如,流程200可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。流程200可以包括以下操作。
在本说明书实施例中所披露的后门防御方法可以通过对目标模型进行一轮或多轮更新实现。为了便于说明,在本说明书实施例中,主要对一轮更新中所包括的步骤进行了描述,多轮更新所包括的步骤可以以此类推。
步骤202,将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据。在一些实施例中,步骤202可以由输出数据获取模块510执行。
干净数据可以是指未添加触发器的训练数据。本说明书对目标模型的类型,或者相关样本的类型不作限制,示例性的,干净数据可以是图像数据、音频数据或文本数据等。
目标模型可以是指具有一种或多种后门的后门模型。
计算单元可以是指目标模型中用于对输入的数据进行计算的节点。例如,执行线性操作的计算节点、执行卷积操作的计算节点等。
在一些实施例中,部分计算单元可以为目标模型中一个或多个网络层中的计算单元。例如,目标模型可以为包括多个网络层的模型,比如,多个网络层可以分别是全连接层、卷积层、残差网络等。当目标模型为神经网络模型时,计算单元可以为神经元。神经元可以看作是神经网络模型中基本的计算单元,对于卷积层、全连接层等网络层而言,其也可以由多个神经元组成。神经元内部的模型参数可以包括连接权重(在不混淆的前提下也可称为权重)以及阈值。其计算原理包括,神经元接收到其他一个或多个神经元传递过来的输出数据,对当前神经元来说为输入信号,这些输入信号基于连接权重进行加权求和,得到当前神经元的总输入值,该神经元将总输入值与阈值进行比较,如求差,最后通过激活函数处理该差值,得到该神经元的输出数据。不难理解,对于任一模型输入数据,模型中的每个计算单元都会有对应的输出数据。
如图4所示,图4是根据本说明书一些实施例所示的目标模型结构的示例性示意图。在400中,410表示输入的干净数据,420表示目标模型的输出(例如,对干净数据的预测结果,可以是对图像中的物体的分类,语音识别结果等),430表示目标模型的输出层,440和450分别表示目标模型内部的网络层。部分计算单元则可以是指网络层440和网络层450中的计算单元(部分计算单元或所有计算单元),网络层中的小圆圈表示计算单元,一个小圆圈表示一个计算单元。在一些实施例中,至少部分计算单元还可以包括目标模型中所有的计算单元。
在一些实施例中,部分计算单元所在的一个或多个网络层与目标模型的输出层的间隔不超过预设层数。例如,预设层数为5,则一个或多个网络层为与输出端临近的第1层至第5层中的任意一层或其组合。预设层数可以由人工指定,例如,可以由人工指定为3层。也可以根据目标模型的网络层的总数进行确定或网络层的层数对目标模型的性能的影响确定。间隔是指该网络层与输出层之间的网络层数量,比如,网络层450与输出层430之间的间隔为1,只隔了一个网络层440,又比如,网络层440与输出层430相邻,可以认为两者之间的网络层数量为0。
通过设置预设层数,可以在提高目标模型对后门攻击防御能力的同时,尽可能的保留目标模型的模型性能。例如,在深度神经网络模型中,其浅层(靠近输出端的网络层)和深层(靠近输入端的层)分别负责识别特别特征和一般特征,而触发器往往是一个特定的特征,这也就意味着,后门通常是位于靠近输出端的网络层的神经元,而越靠近输出层的网络层,其提取的特定特征对输出结果的影响可能越大,因此,为了在去除后门的同时最大程度的保留模型的性能,可以基于平衡性能与后门防御二者综合确定预设层数的大小。更多的说明可以参见步骤208的描述,此处不再赘述。
输出数据则是指计算单元对输入其中的数据的计算结果。每一个计算单元对于每一个输入的干净数据都有一个对应的输出数据。在将多个干净数据输入至目标模型后,可以获取得到与每个神经元对应的多个输出数据。比如,有10个训练数据,至少一部分神经单元的数量为500,则将1个训练数据输入目标模型后,会得到500个输出数据,每个神经元1个输出数据,将2个训练数据输入目标模型后,会得到1000个输出数据,每个神经元2个输出数据,在将10个训练数据输入至目标模型后,则会得到5000个输出数据,每个神经元对应有10个输出数据。
步骤204,对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标。在一些实施例中,步骤204可以由响应性指标确定模块520执行。
响应性指标可以反映计算单元对输入数据的响应特性,通过计算单元对干净数据的响应特性可以甄别出可能被后门污染的计算单元。在一些实施例中,可以基于某计算单元对多个输入数据响应得到的多个输出数据来确定响应性指标。示例性的,可以基于所述多个输出数据间的差异确定其响应性指标。
在一些实施例中,响应性指标可以是所述多个输出数据的方差或信息熵中的一种或多种。方差和信息熵为基于灵敏度的度量指标的代表性类型,方差可以评估多个数据的发散程度,信息熵可以测量多个数据的冗余程度,都可以反映计算单元对干净数据的偏差变化。在一些实施例中,响应性指标也可以包括其他基于差异(或称为灵敏度)的度量,如绝对差。
在一些实施例中,处理设备可以基于部分神经计算单元中的每一个所对应的输出数据,基于各类型的响应性指标所对应的计算公式(比如,方差计算公式、绝对差计算公式、信息熵计算公式等),计算得到响应性指标。
步骤206,基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元。在一些实施例中,步骤206可以由待处理计算单元确定模块530执行。
待处理计算单元可以是指需要对该计算单元的模型参数进行调整的计算单元。
在一些实施例中,处理设备可以根据各个计算单元所对应的响应性指标的大小,从至少部分计算单元中确定出一个或多个待处理计算单元。例如,参见图4,假设至少部分计算单元为网络层440和网络层450中的计算单元,根据响应性指标的大小,可以从该部分计算单元中确定出一个或多个待处理计算单元,确定出的待处理计算单元可以如图4中描黑的小圆圈所示。
在一些实施例中,当响应性指标仅包括一种指标时,例如,方差、绝对差或信息熵中的一种,则处理设备可以直接基于响应性指标的大小,确定待处理计算单元。当响应性指标包括两种或以上指标时,处理设备可以对计算单元所对应的多种响应性指标分配权重,通过加权求和的方式确定最终的响应性指标的大小,然后再基于最终的响应性指标的大小,确定待处理计算单元。可以理解的是,在目标模型对输入的干净数据的计算中,对于干净数据的偏差变化相对较小的计算单元通常对干净数据的贡献较小,因为输出对于输入的变化近似恒定,这表明计算单元可能是冗余的,或为坏计算单元。
在一些实施例中,处理设备可以基于预设比例,从至少部分计算单元中选择响应性指标最低的若干计算单元,作为所述待处理计算单元。作为示例,可以将各计算单元基于响应性指标升序排列,然后选择排名靠前的预设比例数量的计算单元作为待处理计算单元。预设比例可以预先指定,例如,指定预设比例为百分之五十、百分之四十、百分之三十等。例如,仍参见图4,预设比例可以是指网络层440和网络层450所有计算单元的一定比例。
在一些实施例中,在对目标模型进行更新的不同轮次更新中预设比例可以相同。
在一些实施例中,在对目标模型进行更新的不同轮次更新中预设比例可以不同,且所述预设比例与更新次数负相关。例如,在第一轮更新时,网络层440中的待处理计算单元的预设比例为百分之五十、网络层450中的待处理计算单元的预设比例为百分之四十。在第二轮更新时,网络层440中的待处理计算单元的预设比例降低为百分之四十,网络层450中的待处理计算单元的预设比例降低为百分之三十。
在一些实施例中,处理设备可以基于以下公式(1)确定预设比例的大小。
其中,r为选择待处理计算单元的预设比例,r0表示初始预设比例,m表示对目标模型进行更新的总轮次,n表示对目标模型已经进行更新的次数。
步骤208,至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。在一些实施例中,步骤208可以由待处理计算单元处理模块540执行。
如前述,待处理计算单元可能是冗余的,也可能是“坏”的。不管其是冗余还是“坏”的,通过对待处理计算单元进行处理,最终是可以净化目标模型中被后门污染的计算单元,增强其对后门攻击的防御能力。在一些实施例中,对待处理计算单元进行处理可以是指对该待处理计算单元的模型参数进行调整。在一些实施例中,模型参数可以包括该计算单元的权重和/或阈值。
在一些实施例中,对待处理计算单元进行处理后,可以降低待处理计算单元对目标模型输出结果的影响力,进而达到增加目标模型对后门攻击的防御能力的目的。
在一些实施例中,对待处理计算单元进行处理可以是减小待处理计算单元的模型参数的绝对值,或将其模型参数置为0。当模型参数的绝对值减小时,其对模型的输出结果的影响将相应减小,同理,将模型参数置为0后,其将不再对模型的输出结果产生影响。
在一些实施例中,处理设备可以通过对待处理计算单元的模型参数施加约束项的方式,以对待处理计算单元对应的模型参数进行调整,进而在促使其遗忘掉“触发器”记忆的同时,保留其对干净数据的预测性能。
在一些实施例中,处理设备可以通过调整目标模型的模型参数,以减小目标函数值。在一些实施例中,目标函数可以由第一损失函数和约束项构成。目标函数与第一损失函数和约束项正相关,其中,第一损失函数反映目标模型对应于干净数据的输出结果与干净数据的标签之间的差异,如第一损失函数可以是交叉熵损失函数或平方差损失函数,基于第一损失函数对模型进行微调,可以减小对待处理计算单元进行处理对模型的性能带来的损失;约束项反映待处理计算单元的模型参数的绝对值大小,通过约束项对待处理计算单元的模型参数进行调整,可以减小该待处理计算单元对目标模型输出结果的影响力。
在一些实施例中,目标函数可以如以下公式(2)所示。
其中,Cross(yi,F(xi))表示第一损失函数,表示约束项,α为平衡第一损失函数和约束项的超参数,M为待处理计算单元集合,Wj为第j个待处理计算单元的模型参数,n为输入的干净数据的数量,i表示第i个干净数据,F(xi)为目标模型对于输入的干净数据的预测结果,yi为输入的干净数据对应的标签。
在一些实施例中,在对目标模型的迭代更新过程中,当迭代次数达到预设值时,可停止更新,或者当目标模型的性能指标低于预设性能阈值时,停止更新。性能指标可以是模型预测的准确度。
在一些实施例中,在不同轮次更新中,所述至少部分计算单元所在的网络层不同,且靠后的更新轮次中至少部分计算单元所在的网络层相对靠前的更新轮次中至少部分计算单元所在的网络层更远离目标模型的输出层。该实施例可以理解为一种动态的待处理计算单元处理方式。比如,在第一轮更新时,先处理最为靠近输出端的网络层(比如,图4中的网络层440)中的待处理计算单元(即,将最为靠近输出端的网络层中的计算单元作为所述至少部分计算单元,进行待处理单元筛选以及净化),同时在处理完之后测试模型性能,若目标模型的性能还未低于预设性能阈值时,则在下一轮的更新中,处理该网络层的前一层(比该网络层更远离输出层一些,如图4中的网络层450)。在目标模型性能未低于预设性能阈值之前,随着更新轮次的增加,所处理的待处理计算单元所在的网络层将越来越远离输出层,使得除了浅层的计算单元能够被净化外,较深的网络层中的计算单元也能够被净化,在目标模型的性能低于预设性能之前,目标模型对后门攻击的防御能力相应持续增强,由此目标模型对后门攻击的防御能力可以得到有效地提升,在此同时,目标模型的性能也得到了保留。
在本说明书一些实施例中,通过将干净数据输入目标模型,获取目标模型各计算单元的输出数据所对应的响应性指标的方式,基于计算单元对干净数据的偏差变化来确定待处理计算单元,进而对待处理计算单元进行处理,有效地提高了模型对后门攻击的防御能力。同时,在对待处理计算单元进行处理的过程中,通过净化模型中部分计算单元的方式,最大程度上的保留了目标模型的性能,达到了在对后门攻击有很好的防御能力的同时,减少目标模型的性能损失的目的。
图3是根据本说明书一些实施例所示的确定响应性指标的示例性流程图。在一些实施例中,流程300可以由处理设备执行。例如,流程300可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程300。流程300可以包括以下操作。
步骤302,获取该计算单元在前一轮更新中的响应性指标。
例如,假设目标模型的总的更新轮次为10,当前已经更新了5轮,每一轮的响应性指标表示为s1、s2、s3、s4、s5,当前轮为第六轮更新,则计算单元的前一轮更新中的响应性指标为s5。
步骤304,基于该计算单元在当前轮更新中的所述多个输出数据,确定初始响应性指标。
初始响应性指标是指基于当前轮更新中该计算单元的多个输出数据计算得到的响应性指标。
在一些实施例中,处理设备可以直接基于响应性指标的计算方式和多个输出数据,计算得到初始响应性指标。
步骤306,对所述前一轮更新中的响应性指标与所述初始响应性指标进行加权求和,得到该计算单元在当前轮更新的响应性指标。
在一些实施例中,处理设备可以基于指数加权平均的方式,对前一轮更新中的响应性指标与初始响应性指标进行加权求和,得到该计算单元在当前轮更新的响应性指标。
示例性地,处理设备可以基于以下公式(3)进行加权求和。
其中,sn为计算单元在当前轮更新的响应性指标,β为权重系数,取值在0-1之间,示例性地取值可以为0.1,s(n-1)为前一轮更新中的响应性指标,θn为初始响应性指标。
通过以上实施例中的方式获取当前轮更新的响应性指标时,各轮更新的响应性指标的加权随着轮次的增加而递减,越近轮次的响应性指标的加权越重,但历史轮次的数据也给予到了一定的权重。理论上,一个计算单元对干净数据的重要性应该由所有的干净数据同时衡量,但是这样做成本过高(如需要大量的干净数据或干净样本,以达到较好的更新效果),而在本实施例中,通过将多个干净数据分多个批次已经对模型进行迭代更新,且每轮更新的响应性指标累积有之前轮次的响应性指标的值,有效地减少了小批量数据的偏差,极大地提高了更新过程的有效性。比如,干净数据的总量为10000,可以将10000个数据划分为多个批次的小批量数据,每个批次的小批量数据可以对应一轮更新,每一个当前轮的响应性指标,都有累积之前轮次的响应性指标的值,也就是说,实现了对目标模型的多轮迭代更新,同时将所有的干净数据都有引入到响应性指标的求取中,提高了更新效率。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如添加预处理步骤和存储步骤等。
图5是根据本说明书一些实施例所示的后门防御系统的示例性模块图。如图5所示,系统500可以包括输出数据获取模块510、响应性指标确定模块520、待处理计算单元确定模块530和待处理计算单元处理模块540。
输出数据获取模块510可以用于将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据。
在一些实施例中,所述至少部分计算单元为目标模型中一个或多个网络层中的计算单元。所述一个或多个网络层与目标模型输出层的间隔不超过预设层数。
响应性指标确定模块520可以用于对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标。
在一些实施例中,所述响应性指标反映多个输出数据间的差异。所述响应性指标包括方差、绝对差和信息熵中的一种或多种的组合。
在一些实施例中,响应性指标确定模块520还可以用于获取该计算单元在前一轮更新中的响应性指标;基于该计算单元在当前轮更新中的所述多个输出数据,确定初始响应性指标;对所述前一轮更新中的响应性指标与所述初始响应性指标进行加权求和,得到该计算单元在当前轮更新的响应性指标。
待处理计算单元确定模块530可以用于基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元。
在一些实施例中,待处理计算单元确定模块530还可以用于基于预设比例,从所述至少部分计算单元中选择响应性指标最低的若干计算单元,作为所述待处理计算单元。
在一些实施例中,不同轮次更新中预设比例不同。
在一些实施例中,所述预设比例与更新次数负相关。
待处理计算单元处理模块540可以用于至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
在一些实施例中,待处理计算单元处理模块540还可以用于降低所述待处理计算单元对目标模型输出结果的影响力。
待处理计算单元处理模块540还可以用于减小所述待处理计算单元的模型参数的绝对值,或将其模型参数置为0。
待处理计算单元处理模块540还可以用于调整目标模型的模型参数,以减小目标函数值;所述目标函数与第一损失函数和约束项正相关,其中第一损失函数反映目标模型对应于干净数据的输出结果与干净数据的标签之间的差异,约束项反映待处理计算单元的模型参数的绝对值大小。
关于以上所示的系统的各模块的具体描述,可以参考本说明书流程图部分,例如,图2至图3的相关说明。
应当理解,图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于后门防御系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,输出数据获取模块510、响应性指标确定模块520、待处理计算单元确定模块530和待处理计算单元处理模块540可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,待处理计算单元确定模块530和待处理计算单元处理模块540可以是两个模块,也可以是一个模块同时具有确定和处理功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)有效地提高了目标模型对后门攻击的防御能力;(2)尽可能的在提高目标模型后门攻击防御能力的同时,保留了目标模型的模型性能;(3)通过动量加权求和的方式获取响应性指标,提高了更新过程的有效性。实验数据表明,通过本说明书实施例对目标模型进行更新,可以其性能损耗控制在3%以内并将攻击成功率降低到10%以下。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (13)
1.一种后门防御方法,包括对目标模型进行一轮或多轮更新,其中一轮更新包括:
将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据;
对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标;
基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元;
至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
2.根据权利要求1所述的方法,所述响应性指标反映多个输出数据间的差异。
3.根据权利要求1所述的方法,所述响应性指标包括以下中的一种或多种的组合:方差、绝对差和信息熵。
4.根据权利要求1所述的方法,所述至少部分计算单元为目标模型中一个或多个网络层中的计算单元;所述一个或多个网络层与目标模型输出层的间隔不超过预设层数。
5.根据权利要求1或4所述的方法,所述基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元,包括:
基于预设比例,从所述至少部分计算单元中选择响应性指标最低的若干计算单元,作为所述待处理计算单元;不同轮次更新中预设比例不同;所述预设比例与更新次数负相关。
6.根据权利要求1所述的方法,所述至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力,包括:
降低所述待处理计算单元对目标模型输出结果的影响力。
7.根据权利要求1所述的方法,所述至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力,包括:
减小所述待处理计算单元的模型参数的绝对值,或将其模型参数置为0。
8.根据权利要求1所述的方法,所述至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力,包括:
调整目标模型的模型参数,以减小目标函数值;
所述目标函数与第一损失函数和约束项正相关,其中第一损失函数反映目标模型对应于干净数据的输出结果与干净数据的标签之间的差异,约束项反映待处理计算单元的模型参数的绝对值大小。
9.根据权利要求1所述的方法,所述对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标,还包括:
获取该计算单元在前一轮更新中的响应性指标;
基于该计算单元在当前轮更新中的所述多个输出数据,确定初始响应性指标;
对所述前一轮更新中的响应性指标与所述初始响应性指标进行加权求和,得到该计算单元在当前轮更新的响应性指标。
10.根据权利要求1所述的方法,还包括:当目标模型的性能指标低于预设性能阈值时,停止更新;
在不同轮次更新中,所述至少部分计算单元所在的网络层不同,且靠后的更新轮次中至少部分计算单元所在的网络层相对靠前的更新轮次中至少部分计算单元所在的网络层更远离目标模型的输出层。
11.根据权利要求1所述的方法,所述目标模型为神经网络模型,所述计算单元为神经元。
12.一种后门防御系统,所述系统用于对目标模型进行一轮或多轮更新,所述系统包括输出数据获取模块、响应性指标确定模块、待处理计算单元确定模块、和待处理计算单元处理模块;其中,在一轮更新中:
输出数据获取模块,用于将多个干净数据输入目标模型,获取目标模型中至少部分计算单元的多个输出数据;
响应性指标确定模块,用于对于至少部分计算单元中的每一个,基于其多个输出数据确定该计算单元对多个干净数据的响应性指标;
待处理计算单元确定模块,用于基于所述响应性指标,从所述至少部分计算单元中确定一个或多个待处理计算单元;
待处理计算单元处理模块,用于至少对所述待处理计算单元进行处理,以增加所述目标模型对后门攻击的防御能力。
13.一种后门防御装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363866.5A CN113806754A (zh) | 2021-11-17 | 2021-11-17 | 一种后门防御方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363866.5A CN113806754A (zh) | 2021-11-17 | 2021-11-17 | 一种后门防御方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806754A true CN113806754A (zh) | 2021-12-17 |
Family
ID=78898650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111363866.5A Pending CN113806754A (zh) | 2021-11-17 | 2021-11-17 | 一种后门防御方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806754A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860826A (zh) * | 2016-11-17 | 2020-10-30 | 北京图森智途科技有限公司 | 一种低计算能力处理设备的图像数据处理方法及装置 |
CN112163638A (zh) * | 2020-10-20 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 图像分类模型后门攻击的防御方法、装置、设备及介质 |
CN113204745A (zh) * | 2021-04-12 | 2021-08-03 | 武汉大学 | 基于模型剪枝和逆向工程的深度学习后门防御方法 |
CN113343225A (zh) * | 2021-06-23 | 2021-09-03 | 浙江工业大学 | 一种基于神经通路的深度学习的中毒防御方法及装置 |
-
2021
- 2021-11-17 CN CN202111363866.5A patent/CN113806754A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860826A (zh) * | 2016-11-17 | 2020-10-30 | 北京图森智途科技有限公司 | 一种低计算能力处理设备的图像数据处理方法及装置 |
CN112163638A (zh) * | 2020-10-20 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 图像分类模型后门攻击的防御方法、装置、设备及介质 |
CN113204745A (zh) * | 2021-04-12 | 2021-08-03 | 武汉大学 | 基于模型剪枝和逆向工程的深度学习后门防御方法 |
CN113343225A (zh) * | 2021-06-23 | 2021-09-03 | 浙江工业大学 | 一种基于神经通路的深度学习的中毒防御方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102644947B1 (ko) | 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들 | |
Suliman et al. | A review on back-propagation neural networks in the application of remote sensing image classification | |
CN111310814A (zh) | 利用不平衡正负样本对业务预测模型训练的方法及装置 | |
CN111523686B (zh) | 一种模型联合训练的方法和系统 | |
CN110428042B (zh) | 往复地缩放神经元的连接权重和输入值来挫败硬件限制 | |
CN113259331B (zh) | 一种基于增量学习的未知异常流量在线检测方法及系统 | |
US20220170751A1 (en) | Method for defining a path | |
CN112765607B (zh) | 一种神经网络模型后门攻击检测方法 | |
KR20190109121A (ko) | 시계열 데이터의 분석 및 예측을 위한 통합적인 딥러닝 시스템 | |
CN113792289B (zh) | 一种后门攻击的防御方法和系统 | |
CN113826125A (zh) | 使用无监督数据增强来训练机器学习模型 | |
WO2022078062A1 (en) | Adversarial interpolation backdoor detection | |
Mattila et al. | Inverse filtering for hidden Markov models with applications to counter-adversarial autonomous systems | |
US11475236B2 (en) | Minimum-example/maximum-batch entropy-based clustering with neural networks | |
Ko et al. | Controlled dropout: A different dropout for improving training speed on deep neural network | |
CA3098085C (en) | Legendre memory units in recurrent neural networks | |
EP4009239A1 (en) | Method and apparatus with neural architecture search based on hardware performance | |
CN114679341A (zh) | 结合erp系统的网络入侵攻击分析方法、设备及介质 | |
CN112949746B (zh) | 应用于用户行为分析的大数据处理方法及人工智能服务器 | |
Marček et al. | The category proliferation problem in ART neural networks | |
CN113806754A (zh) | 一种后门防御方法和系统 | |
CN111062477B (zh) | 一种数据处理方法、装置及存储介质 | |
Krichmar et al. | Explainable artificial intelligence and neuroscience: cross-disciplinary perspectives | |
CN111079574B (zh) | 一种训练神经网络的方法及系统 | |
US10657458B2 (en) | Method and system for forecasting |
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 |