
用于预防对ai单元进行攻击的防御生成器、方法以及计算机可读存储介质
技术领域
1.本技术涉及一种用于动态生成至少一个ai防御模块的防御生成器、一种针对ai单元的对抗攻击的防御系统、一种动态生成ai防御模块的方法、一种预防对ai单元进行攻击的方法,以及一种计算机可读存储介质。
背景技术:2.现有技术中已知大多数机器学习方法都容易受到对抗性干扰。因此,对对抗性干扰的鲁棒性是机器学习方法开发中的主要挑战。
3.当要分类的数据以人类观察者无法注意到变化的方式发生变化时,就会发生对抗性干扰,但不可能再通过ai单元进行正确分类。因此,可能会发生多次错误分类。
4.在图像分类的情况下,例如在图像数据的分割中,对抗性干扰可能是由输入图像上的叠加噪声引起的。这种噪声可以以人类观察者无法识别的方式插入到输入图像中。
5.然而,对抗性干扰不会发生在自然环境中,即通常提供的传感器数据中。对抗性干扰发生的一种情况是当ai单元受到攻击时。这意味着攻击者会修改提供给ai单元进行分类的数据,使其无法正确分类。这会导致重大的安全风险,尤其是在高度自动化驾驶等安全性至关重要的应用方面。例如,如果在高度自动驾驶中发生错误分类,车辆可能无法识别停车标志或错误识别停车标志,也有可能车辆在红灯时不停车,对道路交通的其他参与者构成极大危险。
6.因此,目标之一是降低对抗性攻击的风险。有一些孤立的方法可以实现这一目标,但它们是针对特定攻击量身定制的。这意味着,到目前为止,只能在攻击发生时制定对策。
7.但是,众所周知,利用对抗性干扰对ai实体进行攻击的可能性有无限种。
8.因此,本技术的目的是提供一种预防ai单元免受对抗攻击的方法。特别地,本技术的目的是识别对抗攻击。更特别地,本技术的目的是设计一种针对对抗攻击具有鲁棒性的ai单元。更具体地,本技术的目的是使为ai单元生成无限数量的防御模块成为可能。
技术实现要素:9.本技术的目的通过根据权利要求1所述的一种用于动态生成至少一个ai防御模块的防御生成器、根据权利要求10所述的一种针对ai单元的对抗攻击的防御系统、根据权利要求11所述的一种动态生成ai防御模块的方法,根据权利要求12所述的一种预防针对ai单元进行攻击的方法,以及根据权利要求14所述的一种计算机可读存储介质,得以实现。
10.具体地,上述目的通过一种动态生成至少一个ai防御模块的防御生成器来实现,该防御生成器包括以下内容:-分块单元,用于确定模型数据的至少一个分块,其中模型数据与ai单元相关联,并且至少一个分块表示模型数据的至少一个子集;-聚合单元,用于确定聚合数据,其中聚合数据将至少一个,特别是数学上的关键
值分配给至少一个分块;-分布单元,用于确定聚合数据的分布函数;-推理单元,用于使用分布函数确定至少一个推理配置;-数据转换单元,用于使用至少一个推理配置为ai单元生成至少一个ai防御模块,其中至少一个ai防御模块用于对ai单元的输入数据集执行以下步骤:ο确定对ai单元的攻击是否可能与输入数据集相关联;和/或ο使用数据转换来确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联。
11.本技术的核心是确定模型数据的分布函数。本技术基于模型数据属于模型流形的假设。换句话说,模型数据具有相似的统计行为。因此,对于包括例如来自rgb相机的图像的输入数据集,可以确定输入数据集的数据是否属于对抗攻击。例如,如果可以在输入数据集中检测到统计异常,则说明输入数据集的数据属于对抗攻击。
12.此外,本技术还包括可以为输入数据集确定第二输入数据集的可能性,该输入数据集没有统计异常,并因此不能分配给对ai单元的攻击。因此,可以再次过滤掉由对抗攻击插入原始数据的噪声。
13.本技术不限于任何特定类型的ai单元。例如,ai单元可以是人工神经网络、贝叶斯分类器、马尔可夫逻辑单元或任何其他类型的分类器。
14.总的来说,本技术提供了一种为任何对抗攻击生成防御措施的方法。这些防御措施由ai单元的防御模块实施。因此,ai单元的防御模块可以是可执行程序代码。该程序代码可以是编译形式或非编译形式。还可以想到,ai单元的防御模块可实现为ai单元的附加组件。因此,在进行分类或回归任务之前,ai单元可以使用ai单元的防御模块来确定ai单元是否受到攻击,并通过数据转换使其无害。
15.例如,模型数据可以形成为张量。至少一个分块可以形成张量的子集。例如,至少一个分块可以表示一维张量,该一维张量包括模型数据张量的维度的子集。模型数据可以形成为一维或多维。
16.在一个实施例中,模型数据可以形成为具有至少一个颜色通道,特别是三个颜色通道,优选红-绿-蓝的图像。
17.如果模型数据形成为图像,则至少一个分块可以表示相应颜色通道的图像部分。
18.根据所描述的实施例,可以利用局部依赖性。因此,模型数据可以划分为很多个分块,这些分块一起形成一个分块集。
19.例如,图像中紧密间隔的像素值之间存在依赖性。如果两个像素之间的距离很大,则几乎没有依赖性。同样,单词的字母之间也存在很大的依赖性。另一方面,不同单词甚至不同段落的字母之间几乎没有任何依赖性。因此,可以分别处理输入数据的不同分块。这可以实现并行化,并从而实现更高效的执行。
20.在一个实施例中,分块单元可以用于接收分块指示,其中,特别地,分块指示可以是用户可定义的,优选地,分块指示可以表示内核大小、步幅和/或偏移量,并且分块单元可以用于通过使用分块指示来确定至少一个分块。
21.内核大小可以表示至少一个分块的大小,具体地,内核大小可以包括x轴的指示、y轴的指示和/或z轴的指示。步幅或步长可以具体说明在扫描输入数据集时生成新分块的步
长。可以定义偏移量,使得步长的偏移量不会创建小于其他分块的分块。例如,如果使用大小为3
×
3像素的内核扫描大小为10
×
10像素的输入图像,并为该内核定义了三个像素的步长,就会出现小于其他分块的分块。在这种情况下,需要两个像素的偏移量。
22.在一个实施例中,模型数据可以指定图像数据、音频数据、传感器数据、文本数据和/或至少一个人工神经网络特征检测器。
23.模型数据可以包括各种各样的数据。除了已经提到的图像数据,也有可能包括语音数据、传感器数据或文本数据。但是,也可以使用ai单元的一部分作为模型数据,而不是要分类的数据。
24.因此,已证明对抗性干扰会导致人工神经网络的激活功能出现异常模式。
25.因此,在一个实施例中,人工神经网络、尤其是卷积神经网络的特征检测器可以形成模型数据。
26.在一个实施例中,聚合单元可用于接收聚合指示,特别是用户可定义的聚合指示,其中聚合指示和/或至少一个关键值可以分别表示至少一个分块的奇异值分解、卷积、平均值、中值和/或方差,并且其中聚合单元可以用于根据聚合指示来确定聚合数据。
27.根据所描述的实施例,聚合单元可能用于,例如使用过滤器对输入数据集的数据进行卷积,以确定聚合数据。这可以通过离散傅里叶变换,然后是乘法和随后的积分来实现,使得卷积对应于频谱中的乘法,然后是积分。
28.在一个实施例中,聚合单元可用于对至少一个分块执行奇异值分解。在分块具有多个维度的情况下,分块可以表示为块矩阵,其中块矩阵的每个块对应于至少一个分块的一个维度。
29.已经证明对抗性干扰会产生异常模式,特别是在矩阵的较低奇异值中。因此,模型数据中的对抗性干扰可以通过奇异值分解来检测。
30.在一个实施例中,还可以确定至少一个分块的平均值、中值和/或方差。在这种情况下,聚合数据可以形成为统计值的向量。
31.在一个实施例中,聚合单元可用于从分块单元接收分块指示,其中聚合单元可用于从至少一个分块中减去分块指示以确定聚合数据。
32.至少一个分块可以指定多个值。例如,分块可以指定多个亮度值。分块同样可以指定多个字母,使得分块可以指定一段文本。
33.在上述实施例中,同样可以考虑从至少一个分块中减去中值、方差或平均值。如果提供多个分块,则从一个分块中减去上述数值可能意味着,如果该至少一个分块形成为张量,则从该张量的每个数据元素中减去所有分块/张量的平均值和/或中值。可以确定至少一个分块或张量的所有数据元素或所有分块/张量的中值、方差和/或平均值。
34.减去统计值的优点是可以使来自不同区域的分块具有可比性。
35.在一个实施例中,防御生成器可以用于接收目标定义,特别是用户可定义的目标定义,并且推理单元可以用于根据目标定义来确定推理配置。
36.在这方面,数据转换单元可用于根据推理配置来选择执行下列操作:确定对ai单元的攻击是否可以与输入数据集相关联;通过使用数据转换确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联。
37.因此,通过目标定义可以控制ai防御模块的行为。因此,为用户定义ai防御模块的
行为提供了一种更简单的方法。
38.在一个实施例中,分布单元可用于接收分布指示,特别是用户可定义的分布指示,其中分布单元还可以用于根据分布指示来确定分布函数,其中分布指示可以指示显式或隐式分布函数。
39.因此,可以通过分布指示来指示概率分布的计算方法,从而使数据分布指示概率分布。在这种情况下,可以通过分布指示来指示隐式或显式分布函数。
40.通过显式分布函数,可以确定转移矩阵。转移矩阵可以,例如指示马尔可夫链。也可以想到,吉布斯分布由显式分布函数确定。
41.转移矩阵的矩阵元素可以各自对应于聚合数据的数据。转移矩阵可以为每个矩阵元素指定对应矩阵元素取特定值的概率或概率分布。因此可以想到,如果输入数据集指定了图像数据,则为每个像素分配相邻像素具有特定亮度值的概率。
42.例如,可以通过quilt或自然聚合来实现隐式分布函数。在使用quilt的方法中,确定从输入数据到模型数据的距离。例如,可以使用l2度量或其他度量来确定距离。如果距离大于预定阈值,则可以推断出对ai单元的攻击。此外,可以基于所使用的度量,用模型数据中最接近的分块替换输入数据的分块以确定第二输入数据集。在这种情况下,模型数据不再具有对抗性干扰,因此可以替换输入数据中未受干扰的分块。
43.在一个实施例中,推理单元可以用于接收至少一个阈值,特别是用户可定义的阈值,并且可以根据至少一个阈值来确定推理配置,其中至少一个阈值可以指示当超过该至少一个阈值时,ai防御模块进行数据转换。
44.在一个实施例中,例如,如上所述,可以将阈值与距离进行比较。这意味着ai防御模块可以用于将阈值与输入数据或可以指示输入数据的子集的分块和至少一个分块之间的距离进行比较。
45.在一个实施例中,ai防御模块还可以用于基于上述比较(例如,当距离大于阈值时)进行数据转换。
46.在一个实施例中,ai防御单元可以用于基于上述比较(例如,如果距离大于阈值)确定对ai单元的攻击是否可以与输入数据集相关联。
47.除了距离之外,还可以想到,ai防御单元用于确定模型数据的所谓的整体概率值。然后可以将阈值与该整体概率值进行比较。
48.在一个实施例中,用于生成第二输入数据的ai防御单元可以用于基于上述比较对输入数据或至少一个分块执行平滑处理。输入数据或至少一个分块的平滑处理可能导致对抗性干扰不再对ai单元产生影响。
49.在一个实施例中,推理单元可以用于接收重构指示,其中推理单元可以用于根据重构指示来确定推理配置,其中重构指示可以指示数据转换是否涉及整个模型数据、模型数据的随机子集和/或模型数据的基于重要性的选择。
50.因此,通过所描述的实施例,同样可以仅重构输入数据的一部分。这使设备的整体工作效率更高,如果只需要考虑部分输入数据,也可以避免错误。
51.因此,在一个实施例中,ai防御单元可以用于将输入数据分解成如上所述的至少一个分块。在重构过程中只能考虑某些分块。因此,在图像数据的情况下,可以单独检查各个图像区域,以便ai防御单元在每种情况下针对这些图像区域分别计算出,尤其是数学上
的关键数值。该实施例考虑了这样一个事实,例如,具有均匀蓝色的天空在数学-视觉平均中具有与例如显示道路的图像区域不同的特性。可以静态确定图像区域或与这些图像区域对应的分块。进一步可以想到,考虑到图像属性,图像区域或分块可由ai防御单元动态确定。
52.在一个实施例中,第二输入数据集没有对抗性干扰。这意味着具有第二输入数据的ai单元按预期运行。
53.在一个实施例中,数据转换可以形成为采样方法。
54.使用采样方法,可以确定第二输入数据集,以便在第二输入数据集中不再存在对抗性干扰。
55.上述目的通过一种针对ai单元的对抗攻击的防御系统得到进一步实现,该防御系统包括:-输入单元,用于接收输入数据和/或输入模型作为模型数据;-防御生成器,特别是如上文所述的,用于接收模型数据并生成至少一个ai防御模块;-ai单元,用于在执行回归和/或分类之前使用至少一个ai防御模块,以便ο确定对ai单元的攻击是否可以与ai单元的输入数据集相关联;和/或ο使用数据转换来确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联,并在回归和/或分类中使用第二输入数据集。
56.因此,还可以设想,由防御生成器生成的至少一个ai防御模块用于针对防御系统中的ai单元的攻击。这样,可以以有效和安全的方式针对ai单元的攻击。
57.特别地,上述目的还通过一种动态生成ai防御模块的方法来实现,该方法包括以下步骤:-确定模型数据的至少一个分块,其中模型数据与ai单元相关联,并且至少一个区块指示模型数据的至少一个子集;-确定聚合数据,其中分配至少一个分块的聚合数据,特别是数学上的关键值;-确定聚合数据的分布函数;-使用分布函数确定至少一个推理配置;-使用至少一个推理配置生成ai单元的至少一个ai防御模块,其中至少一个ai防御模块特别适合用于ai单元的输入数据集,以便:ο确定对ai单元的攻击是否可以与输入数据集相关联;和/或ο使用数据转换确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联。
58.在一个实施例中,该方法可以包括接收分块指示,特别是用户定义的分块指示,其中特别地,分块指示可以是用户可定义的,优选地,分块指示可以指定内核大小、步幅和/或偏移量。
59.在这方面,确定至少一个分块可以使用分块指示来确定。可以根据ai单元的操作来选择内核大小。例如,可以选择内核大小使得ai单元的操作不会因为用ai防御模块替换ai单元的输入数据中的分块而受到影响。
60.在一个实施例中,该方法可以包括接收聚合指示,其中聚合指示可以指示至少一
个分块的至少一个关键值,其中至少一个关键值可以表示至少一个分块的奇异值分解、卷积、平均值、中值和/或方差。
61.在一个实施例中,确定聚合数据可以包括从至少一个分块中减去数学比率。
62.在一个实施例中,该方法可以包括:-接收目标定义,特别是用户定义的目标定义;-根据目标定义来确定推理配置。
63.在一个实施例中,该方法可以包括接收聚合指示,特别是用户定义的聚合指示,其中至少一个关键值和/或聚合指示可以分别表示至少一个分块的奇异值分解、卷积、平均值、中值和/或方差,其中可以根据聚合指示来确定聚合数据。
64.在一个实施例中,确定聚合数据可以包括从至少一个分块中减去聚合数据。
65.在一个实施例中,该方法可以包括接收目标定义,特别是用户定义的目标定义,其中可以根据目标定义来确定推理配置。
66.此外,该方法可以包括根据推理配置来选择,特别是是否执行以下操作:确定对ai单元的攻击是否可以与输入数据集相关联;和/或使用数据转换确定第二输入数据集,其中第二输入数据集不能与对ai单元的攻击相关联。
67.在一个实施例中,该方法可以包括接收分布指示,特别是用户定义的分布指示,表示显式或隐式分布函数。在这种情况下,可以根据分布信息来确定分布函数。
68.在一个实施例中,该方法可以包括接收至少一个阈值,特别是用户定义的阈值,其中至少一个阈值可以表示当超过该至少一个阈值时,ai防御模块进行数据转换。
69.在一个实施例中,该方法可以包括接收重构指示,特别是用户定义的重构指示,其中重构指示可以表示数据转换是否涉及整个模型数据、模型数据的随机子集和/或模型数据基于重要性的选择。在这方面,可以根据重构指示来确定推理配置。
70.在一个实施例中,数据转换可以形成为一个采样方法。
71.特别地,上述目的还通过一种用于防止对ai单元进行攻击的方法得到进一步实现,该方法包括以下步骤:-特别地,使用上文所述的防御生成器,根据上文所述的方法,生成至少一个ai防御模块;-通过使用至少一个ai防御模块来确定ai单元的输入数据集是否可以与对ai单元的攻击相关联;和/或;-通过使用至少一个ai防御模块来确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联,并且在回归和/或分类中使用第二输入数据集。
72.在一个实施例中,该方法可以包括:-接收目标定义,尤其是用户定义的目标定义;-根据目标定义来确定推理配置;-根据目标定义来选择是否执行下列操作:ο确定对ai单元的攻击是否可以与输入数据集相关联;和/或ο通过使用数据转换来确定第二输入数据集,其中对ai单元的攻击不能与第二输入数据集相关联。
73.特别地,上述目的通过包含指令的计算机可读存储介质得到进一步实现,该指令
由至少一个处理器执行时,使至少一个处理器实施如上所述的方法。
74.可获得与上述方法、上述防御生成器和上述系统有关内容中描述的相似或相同的优点。
75.在这一点上需明确指出的是,本技术公开的结合系统描述的所有方法步骤也是上述方法和计算机可读存储介质的必要步骤,反之亦然。特别地,关于防御生成器和/或系统描述的细节也适用于上述方法和计算机可读存储介质,反之亦然。
76.进一步的实施例从从属权利要求中是显而易见的。
附图说明
77.在下文中,通过示例性实施例更详细地解释本技术,其中:
78.图1示出了示例图像的分类原理图。
79.图2示出了具有对抗性干扰的示例图像的叠加原理图。
80.图3示出了具有对抗性干扰的示例图像的分类原理图。
81.图4示出了ai防御系统的示意图。
82.图5示出了人工神经网络的示意图。
83.图6示出了输入图像的细分示意图。
84.图7示出了将输入图像划分为不同分块的示意图。
85.图8示出了确定多个分块的概率分布的示意图。
具体实施方式
86.图1示出了输入图像1的分类原理图。在图1的示例性实施例中,输入图像1示出了停车标志的示意图。因此,例如,在高度自动驾驶的情况下,输入图像1可能已经被,例如,车辆的摄像系统捕获。
87.为了实现高度自动驾驶,需要对输入图像1的各个图像分量进行分类。这意味着必须分配每个像素,确定其是否属于特定对象或属于哪个对象,或者像素是否显示背景,例如天空。
88.在所示的示例性实施例中,对于输入图像1的每个像素,可能有四个简化的类别3、3'、3”、3
””
。提供了用于对像素进行分类的分类单元2,其可以设计为,例如,人工神经网络。然而,也可以想到,分类单元2可设计为支持向量机或贝叶斯网络。
89.分类单元2在训练阶段针对特定分类任务进行训练。在训练分类单元2时,使用训练数据集最小化成本函数。训练数据集包括示例图像和相应的相关分类。因此,训练数据集提供了所谓的地面真相(ground truth)。
90.通常,分类单元2可以以适当的可靠性对各个像素进行图像分割或分类。
91.图2示出了对抗性干扰的情况。输入图像1与攻击图像4叠加。叠加的结果是受干扰的输入图像5。对于人类观察者来说,受干扰的输入图像5与输入图像1无法区分。
92.图3示出了当要对受干扰的输入图像5进行分类时分类单元2的行为。因此,分类单元2不会像图1的情况那样将受干扰的输入图像5分配给类别3',而是分配给类别3”'。因此,出现了错误的分类。
93.因此,有可能在人类用户无法在数据中识别其原因的情况下,专门干扰分类单元
2。因此,在高度自动驾驶期间,存在对车辆中使用的分类单元2进行攻击,从而引发事故的风险。
94.然而,类似的问题出现在ai的所有领域,例如文本识别、音频识别或语音识别。
95.图4示出了包括目标定义单元11、输入数据单元13和防御生成器20的防御系统10。
96.目标定义单元11用于,例如通过图形用户界面或通过通信接口,接收用户输入,表示要达到的防御系统10的目标。
97.用户输入可以表示要进行对抗攻击的检测。这意味着仅待确定输入数据14是否具有对抗性干扰。
98.定义目标的另一种方式是消除对抗性干扰。
99.在图4的示例性实施例中,目标定义单元11根据用户输入来确定目标定义12,其详细说明是否要进行检测或过滤或重构。
100.目标定义12被提供给输入数据单元13,输入数据单元13进一步接收输入数据集14。在所示的示例性实施例中,输入数据集14包括多个图像数据。在一个可能的示例性实施例中,预处理输入数据集14的图像数据,使其具有相同的大小。在另一示例性实施例中,输入数据集14的图像数据各自具有不同的大小。在一个示例性实施例中,输入数据单元13用于如所描述的那样预处理图像数据。应当理解,输入数据集14不限于图像数据,并且可以包括任何可能形式的数据。
101.一般而言,并且与任何特定示例性实施例无关,输入数据集14可以包括不表现出对抗性干扰的数据。
102.在一个示例性实施例中,输入数据集14包括人工神经网络30(参见图5)的多个特征检测器33、35、37。在这种情况下,特征检测器33、35、37可以形成为分配有激活函数的矩阵。该矩阵可以存储激活函数的权重。例如,激活函数可能是sigmoid函数、线性整流函数(relu)或双曲正切函数(tanh)。
103.输入数据集14也可以由用户通过图形用户界面来选择。同样可以想到的是,输入数据集14通过通信接口接收,例如通过使用api的互联网。
104.此外,输入数据集14可能具有范围约束。范围约束表示仅要查看输入数据集14的剩余部分。例如,输入数据集14可以表示仅要查看图像的下部。如果希望仅在图像的某些区域中找到重要特征,这将特别有用。因此,用户能够将关于输入数据集14的先验知识存储在输入数据集14本身中。
105.输入数据单元13使用目标定义12和输入数据集14确定模型数据15。模型数据15由防御生成器20接收。防御生成器20具有分块单元21、聚合单元22、分布单元23、推理单元24和数据转换单元25。
106.分块单元21用于将模型数据15分成至少一个分块26,并由此确定一组分块53。如上所述,通过将模型数据15分成单独的分块26、53,可以利用局部依赖性。为了创建至少一个分块26或分块集53,可以扫描模型数据15。例如,输入数据集14和/或模型数据15可以存储为多维张量。
107.分块单元21可以用于扫描模型数据15。这意味着模型数据15按顺序划分为分块26。为此,分块单元21可以用于接收分块指示211。分块指示211可以指示表示分块26的大小的内核定义。除了内核定义之外,分块指示还可以指示步幅和偏移量。步幅说明在每个扫描
步骤之间跨越模型数据15的多少数据元素,例如像素。如前面详细描述的,偏移量确保了分块的大小和步长不会导致内核在扫描期间超出数据的末尾。
108.随后,至少一个分块26由聚合单元22接收。聚合单元22基本上用于确定将至少一个分块26映射到包含实数的有限维向量空间的聚合数据27。
109.聚合单元22用于接收聚合指示221,该聚合指示221表示将如何处理至少一个分块26以确定聚合数据27。在这点上,聚合单元22可以执行各种操作以确定聚合数据27。在所示的示例性实施例中,聚合指示221表示至少一个分块26的标识将用来确定聚合数据27。这意味着模型数据15本身的值被用作聚合数据27。
110.聚合单元22将聚合数据27传递给分布单元23。分布单元23用于从聚合数据27确定分布函数28(也参见图8)。分布函数28表示输入数据集14或模型数据15的不同特征的分布。分布单元23用于接收分布指示231。分布指示231表示是否要隐式或显式地确定分布函数28。
111.显式意味着存在可用于计算分布函数28的某个分布函数。隐式意味着只能间接确定分布函数28,例如通过输入数据和模型数据15之间的l2距离。
112.随后,推理单元24接收分布函数28并用于确定推理配置29。另外,推理单元接收至少一个阈值241和重构指示242。至少一个阈值241表示在进行比较时是否进行检测或者重构。重构指示242表示要进行的数据转换是否涉及整个模型数据15、模型数据15的随机子集和/或模型数据15的基于重要性的选择。
113.推理单元24用于确定推理配置29,即ai防御模块16如何操作或配置,以确定对抗性干扰是否存在于模型数据15或输入数据集14中,或者确定不包括对抗性干扰的第二输入数据集14。
114.推理配置29由数据转换单元25接收,数据转换单元25使用推理配置29生成至少一个ai防御模块16。至少一个ai防御模块16随后可用于检测输入数据中的对抗性干扰或确定没有对抗性干扰的第二输入数据集。
115.因此,至少一个ai防御模块16可以用作,例如ai单元30的附加组件,使得在任何分类或回归之前,进行检查以确定对抗性干扰是否存在于ai单元的输入数据中。
116.ai防御单元16根据防御生成器20的结果处理ai单元的输入数据。这意味着ai防御单元16用于根据分块指示211将输入数据划分为至少一个分块。进一步地,ai防御单元16用于为至少一个分块确定聚合指示221对应的聚合数据,并然后利用聚合数据和分布指示231确定分布函数。
117.例如,ai防御单元16检查输入数据的分布函数偏离分布单元23确定的分布函数28的程度。ai防御单元16还用于将确定的偏差与阈值241进行比较。基于上述比较,可以确定ai单元30的输入数据集是否具有对抗性干扰。
118.可以理解,利用防御生成器20可以生成多个具有不同配置的ai防御模块16,从而可以检测或消除大量的对抗性干扰。在这方面,多个ai防御模块可以并行处理来自ai单元30的输入数据,从而实现高效执行。
119.进一步地,ai防御单元16用于使用分布函数28和数据转换为输入数据确定与输入数据对应、没有对抗性干扰的第二输入数据集。例如,此处可以使用基于采样的重构方法。
120.图5描述了人工神经网络30的结构,该人工神经网络30被设计为卷积神经网络
(cnn)并表示可能的ai单元30。在输入层31中,读入将要处理的数据。例如,图像像素的rgb值。在第一卷积32中,在输入数据层31上进行内核扫描以创建第一特征检测器33。特征检测器33可以各自用于检测特定数据模式,例如图像中的边缘或角落。
121.可以使用特征检测器或特征检测器33的权重和神经元作为防御系统10或防御生成器20的模型数据15。
122.在第二卷积34中,通过所谓的池化或子采样来执行特征检测器的缩减,从而生成第二特征检测器35。在接下来的步骤中,在进一步的卷积36中生成第三特征检测器37。cnn的最后一层38是完全连接的(完全连接层)。在输出层39或soft max层中,每个值都被分配一个属于某个类的概率。
123.图6示出了改进防御系统20的操作的另一种方式。图6示出了输入图像40,其可以是输入数据14的一部分。输入图像40示出了停车标志46、车道标记44、44'、中心线45和云43。在自动驾驶应用中,现在可以更多地利用这一事实,即与自动驾驶任务相关的信息只能在图像的某些区域中找到。
124.在图6所示的示例性实施例中,所有相关信息都布置在下部图像部分42中。在分界线47之上,即在上部图像部分41中,没有与驾驶车辆相关的信息。
125.可以以这样的方式利用这种划分,即在输入数据单元13中,以删除不相关的图像部分,即上部图像部分的方式对输入数据14进行预处理。
126.图7再次举例说明将输入图像50或模型数据15划分成多个分块52、52'、52”、52”'。
127.图7示出了使用分块指示51将输入图像50或模型数据15分成四个分块52、52'、52”、52”'。扫描输入图像50时,按行从左上到右下进行扫描。这意味着:分块52首先被创建。然后,创建分块52',接着创建分块52”,最后创建分块52”'。因此,可以以有效的方式创建至少一个分块26或一组分块53。
128.图8示出了分布函数28、65的确定60。图8示出了分块集61,其中在分块集61的分块的每个数据字段中存储有亮度值62,其范围是0到255中的整数。使用分块集61和分布指示66,现在可以确定分布函数63以确定分布65。
129.在所示的示例性实施例中,使用分块集61,确定转换概率,即当前数据字段右侧的数据字段中的值呈现特定亮度值。该值也称为总体概率值。这意味着256个值被存储在分布65的每个数据字段中。因此,分布65指定概率分布。
130.现在使用分布65,可以确定输入数据5是否包含对抗性干扰。可以检查分布65的转换概率是否能解释输入数据5。在这种情况下,可以设置阈值,该阈值可以指示输入数据的值可被分块集61解释的最小概率。如果概率高于阈值,不存在对抗性干扰。如果概率低于阈值,则存在对抗性干扰。
131.应该注意的是,当单独考虑或以任何组合考虑时,上述所有部分对本技术都是必要的,但不是必不可少的,尤其是附图中所示的细节。
132.附图标记列表1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入图像2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分类单元3,3',3”,3”'
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
图像类4
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
攻击图像5ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
测试数据集/受干扰的输入图像10
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
防御系统11
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
目标定义单元12
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
目标定义13
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入数据单元14
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入数据集15
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
模型数据16
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
ai防御模块20
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
防御生成器21
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分块单元22
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
聚合单元221
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
聚合指示23
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布单元231
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布指示24
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
推理单元241
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
阈值242
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
重构指示25
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
数据转换单元26,53,61
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分块/分块集27
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
聚合数据28
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布函数29
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
推理配置30
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
ai单元/卷积神经网络(cnn)31
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入层32
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一卷积33
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一特征检测器34
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二卷积35
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二特征检测器36
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第三卷积37
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第三特征检测器38
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
soft max层39
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输出层40
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入图像41
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
上/第一图像部分42
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
下/第二图像部分43
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
云44,44'
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
车道标记45
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
中心线46
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
路标
47
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分割线50
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输入图像51,211
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分块指示52、52'、52”、52
””ꢀꢀ
图像分块60
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布计算62
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
亮度值63
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布函数64
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
转移矩阵65
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
概率分布66
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
分布选择