通过使用局部线性度正则化训练更安全的神经网络的制作方法

文档序号:28183774发布日期:2021-12-25 01:19阅读:106来源:国知局
通过使用局部线性度正则化训练更安全的神经网络的制作方法

1.本说明书涉及训练安全的、即对恶意行为者的攻击鲁棒的神经网络。


背景技术:

2.神经网络是机器学习模型,它采用非线性单元的一层或多层来预测所接收到的输入的输出。除了输出层之外,一些神经网络包括一个或多个隐藏层。每个隐藏层的输出被用作对于在网络中下一层(即,下一个隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值从所接收到的输入生成输出。


技术实现要素:

3.本说明书描述了一种系统,该系统实现为在一个或多个位置的一个或多个计算机上的计算机程序,该系统训练神经网络以抵抗对抗性攻击。
4.根据一方面,提供了一种训练具有多个网络参数的神经网络的方法,以特别是提供更安全的神经网络(一种增加神经网络的安全性的方法)。该方法可以包括获得多个训练输入,并且对于多个训练输入中的每一个,获得该训练输入的相应目标输出。该方法可以进一步包括在多个训练输入中的每一个上训练神经网络。该训练可以包括使用神经网络并根据网络参数的当前值处理训练输入中的每一个以为训练输入中的每一个生成相应的网络输出。该训练可以进一步包括通过评估损失函数来计算每个训练输入的相应损失。损失函数可以测量以下两者之间的差:(i)神经网络通过处理输入

输出对中的输入生成的输出和(ii)输入

输出对中的输出。计算训练输入中每一个的损失可以包括评估在输入

输出对处的损失函数,该输入

输出对包括训练输入和用于训练输入的目标输出。该训练可以进一步包括从多个可能的扰动中识别最大非线性扰动。最大非线性扰动可以是以下扰动,对于该扰动,当在输入

输出对上评估时损失函数是最非线性的,该输入

输出对包括(i)通过将可能的扰动应用于给定的训练输入而生成的扰动训练输入和(ii)用于给定训练输入的目标输出。该训练可以进一步包括通过执行神经网络训练过程的迭代来确定对神经网络参数的当前值的更新,以减少训练输入的相应损失并减少所识别的最大非线性扰动的损失函数的非线性度。
5.该方法可以包括以下特征。训练输入可以是图像。识别最大非线性扰动可以包括初始化扰动。
6.对于一个或多个迭代中的每一个,该识别可以进一步包括以下特征(单独的或组合的):对于训练输入中的每一个,通过将扰动应用于训练输入来生成相应的扰动训练输入。对于训练输入中的每一个,使用神经网络并根据网络参数的当前值处理扰动的训练输入,以为扰动的训练输入生成网络输出。对于训练输入中的每一个,使用用于扰动的训练输入的网络输出,确定局部线性度度量相对于扰动并在训练输入的扰动的输入处评估的梯度。该局部线性度度量可以测量损失函数在输入

输出对上评估时的非线性程度,该输入

输出对包括(i)扰动的训练输入和(ii)用于训练输入的目标输出。该识别可以进一步包括
通过对训练输入的梯度求平均来生成局部线性度度量的平均梯度。该识别可以进一步包括使用平均梯度更新扰动。该识别可以进一步包括选择在一次或多次迭代的最后一次迭代之后的扰动作为最大非线性扰动。
7.局部线性度度量可以是以下两者之间的绝对差:(1)在包括(i)扰动的训练输入和(ii)用于训练输入的目标输出的输入

输出对处评估的损失函数;以及(2)在输入

输出对处评估的损失函数的一阶泰勒展开式。确定对神经网络参数的当前值的更新可以包括:执行神经网络训练过程的迭代以最小化局部线性度正则化损失函数,该损失函数至少测量多个训练输入和相应损失和所识别的最大非线性扰动的非线性。
8.执行神经网络训练过程的迭代可以包括:针对多个训练示例中的每一个,确定相对于局部线性度正则化损失函数的网络参数的相应梯度。该执行可以进一步包括从多个训练示例的相应梯度确定相对于网络参数的平均梯度。执行可以进一步包括根据平均梯度确定对网络参数的当前值的更新。执行可以进一步包括通过将更新应用于网络参数的当前值来生成网络参数的更新值。
9.局部线性度正则化损失函数可以包括测量多个训练示例的平均损失的第一项。局部线性度正则化损失函数可以包括第二项,其测量在以下两者之间的绝对差的跨多个训练输入的平均值:(i)在输入

输出对处评估的损失函数,该输入

输出对包括1)利用最大非线性扰动扰动的训练输入和2)用于训练输入的目标输出;以及,(ii)在输入

输出对处评估的损失函数的一阶泰勒展开式,该输入

输出对包括1)利用最大非线性扰动扰动的训练输入和2)用于训练输入的目标输出。局部线性度正则化损失函数可以包括第三项,该第三项测量在最大非线性扰动和相对于在输入

输出对处评估的损失函数的训练输入的梯度之间的点积的绝对值的跨多个训练输入的平均值,该输入

输出对包括训练输入和用于训练输入的目标输出。
10.该方法可以被用于调整现有神经网络以提高神经网络的安全性。
11.根据另一方面,提供了一种系统,该系统包括一个或多个计算机和一个或多个存储设备,该存储设备存储指令,该指令在由一个或多个计算机执行时使该一个或多个计算机执行上述方法方面的操作。
12.根据另一方面,提供了一种存储指令的一个或多个计算机存储介质,该指令当由一个或多个计算机执行时使该一个或多个计算机执行上述方法方面的操作。
13.应当理解,在一个方面的上下文中描述的特征可以与另一方面的特征组合。
14.能够实施在本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
15.通过如本说明书中所述训练神经网络,神经网络变得比使用传统手段训练的神经网络更安全,即,因为训练的神经网络变得比使用传统手段训练的神经网络更不容易受到对抗性攻击。当恶意攻击者故意向神经网络提交输入以试图引起不期望的行为,即,以使神经网络生成不正确的输出时,对抗性攻击发生。例如,攻击者可能向图像分类神经网络提交输入,这些输入在人眼看来属于一个对象类别,但已经被轻微扰动以试图使神经网络对输入进行错误分类。因此,由于系统变得更能抵抗这些类型的攻击,包括神经网络的计算机系统的安全性被提高。
16.在一个示例中,该系统可以是生物特征认证系统。神经网络可以被配置为识别面
部图像、指纹、语音模式或其他类型的生物特征数据。对抗性攻击可能试图使神经网络对输入的生物特征数据进行错误分类。在另一个示例中,该系统可以是网络安全系统。神经网络可以被配置为检测网络上的恶意或可疑数据。对抗性攻击可能试图使神经网络无法检测到此类数据。在另一个示例中,该系统可以是自动驾驶车辆或机器人系统。神经网络可以被配置为控制其操作。对抗性攻击可能采取恶意信号或环境改变的形式,例如改变的道路标志,以试图使神经网络提供与否则会被预期不同的控制输出。
17.用于训练神经网络对对抗性攻击具有更强的抵抗力的常规技术,例如对抗性训练技术,显著增加了计算资源消耗,例如,处理器周期和训练过程消耗的时钟时间。当下述时尤其是真的:神经网络很复杂,即,具有大量参数,并且对于网络的输入是高维的,例如,具有相对高分辨率的图像,这是许多工业应用所需要的。
18.然而,所描述的技术匹配甚至超过这些传统技术的性能,同时具有更高的计算效率,至少部分地因为识别最大非线性扰动需要比使用现有技术查找强大对抗性扰动所需的少得多的计算密集和耗时的梯度步骤。
19.在附图和以下描述中阐述本说明书中描述的主题的一个或多个实施例的细节。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得明显。
附图说明
20.图1示出了示例神经网络训练系统。
21.图2是用于训练神经网络的示例过程的流程图。
22.图3是用于识别给定批次的最大非线性扰动的示例过程的流程图。
23.图4示出了围绕特定训练输入的损失函数的非线性度。
24.各图中相同的附图标号和标记表示相同的元件。
具体实施方式
25.图1示出了示例神经网络训练系统100。神经网络训练系统100是在一个或多个位置的一个或多个计算机上实现为计算机程序的系统的示例,其中,能够实现下面描述的系统、组件和技术。
26.神经网络训练系统100是在训练数据140上训练神经网络110以确定神经网络参数(称为网络参数118)的训练值的系统。
27.神经网络110能够被配置为接收任何种类的数字数据输入作为网络输入并生成任何种类的网络输出,即,基于网络输入的任何种类的得分、分类或回归输出。
28.特别地,所描述的技术能够被用于训练神经网络110以执行需要接收连续输入,即,能够采用来自某个预定范围的任何值的输入的任何任务。
29.例如,如果对于神经网络的输入是已经从图像中提取的图像或特征,则神经网络为给定图像生成的输出可以是图像分类输出,其包括对象类别组中的每一个的分数,每一个分数表示图像包含属于该类别的对象的图像的估计的可能性。
30.作为另一示例,如果神经网络的输入是图像,则神经网络针对给定图像生成的输出可以是识别给定图像内的对象位置的对象检测输出。
31.作为另一示例,如果对于神经网络的输入是图像,则神经网络为给定图像生成的
输出可以是图像分割输出,该图像分割输出为给定输入图像的每个像素识别来自可能的类别组的在像素所描绘的场景所属的类别。
32.作为另一示例,如果对于神经网络的输入是表征与代理交互的环境的状态的传感器数据,例如,图像数据、位置数据或由机器人或其他代理的传感器捕获的其他传感器数据,则由神经网络数据生成的输出能够是用于控制代理的控制策略,例如,定义能够由代理执行的可能动作上的概率分布的数据。作为特定示例,传感器数据能够是来自图像、距离或位置传感器或来自致动器的数据。例如,在机器人的情况下,传感器数据可以包括表征机器人当前状态的数据,例如以下一项或多项:关节位置、关节速度、关节力、扭矩或加速度,例如,重力补偿扭矩反馈以及机器人持有的物品的全局或相对位姿。传感器数据还可以包括,例如,感测到的电子信号,诸如电机电流或温度信号;以及/或者,例如来自相机或lidar传感器的图像或视频数据,例如来自代理的传感器的数据或来自与环境中的代理分开定位的传感器的数据。
33.神经网络110能够具有适合于由神经网络110处理的网络输入类型的任何架构。例如,当模型输入是图像时,神经网络110能够是卷积神经网络。
34.由系统100用于训练神经网络110的训练数据140包括多批训练输入142,并且包括用于每个训练输入的相应的目标输出144。每批能够包括例如64、128、256、或512个输入。任何给定训练输入142的目标输出144是由神经网络110应当通过对标记的训练输入执行特定机器学习任务而生成的输出。
35.通常,系统100中的训练引擎150通过对成批的训练输入执行迭代训练过程来训练神经网络110。在每次迭代时,训练引擎150接收(i)由神经网络110根据网络参数118的当前值为在对应于训练迭代的批次中的训练输入142生成的网络输出114,和(ii)对于批次中的训练输入142的目标输出144。训练引擎150使用网络输出114和目标输出144来更新网络参数118的当前值。
36.更具体地,常规地,训练引擎150将训练神经网络110以最小化损失函数,该损失函数测量以下两者之间的差:(i)通过处理输入

输出对中的输入而由神经网络110生成的输出;和(ii)输入

输出对中的输出。在常规训练中,每个输入

输出对中的每个输入将是训练输入142之一并且输出将是用于训练输入的目标输出144。
37.损失函数能够是适合神经网络正在被训练以执行的任务的任何机器学习损失函数。例如,当任务是图像分类时,损失函数能够是交叉熵损失函数。
38.因此,损失函数在本说明书中将被称为“任务损失函数”。
39.然而,为了使经训练的神经网络110更安全,即,更不易受到对抗性攻击,训练引擎150使用扰动引擎160使训练正则化。换言之,训练引擎150改为在局部线性度(linearity)正则化损失函数上训练神经网络110,该局部线性度正则化损失函数包括与任务损失函数相对应的一项和测量在批次中的训练输入附近的任务损失函数的非线性度的一个或多个附加正则化项。
40.特别地,在每次迭代时,扰动引擎160从多个可能的扰动中识别批次的最大非线性扰动。
41.本说明书中使用的扰动是值集,这些值(i)与训练输入具有相同的维度,即,其包括给定训练输入中每个值的对应值,并且(ii)具有不超过阈值的范数,例如,欧几里得范数
或无穷范数。通过逐元素添加扰动和训练输入,能够将扰动应用于训练输入。
42.例如,当输入是图像时,范数是无穷范数,并且像素取值范围在0到255之间,4/255的阈值意味着将随机选择的扰动应用于训练输入导致训练输入的每个像素在0到255的范围内被独立地上下扰动最多4个单位。
43.作为另一示例,当输入是图像时,范数是无穷范数,并且像素取值范围在0到255之间,6/255的阈值意味着将随机选择的扰动应用于训练输入导致训练输入的每个像素在0到255的范围内被独立地上下扰动最多6个单位。
44.最大非线性扰动是(来自被扰动160考虑的多个可能扰动中的)下述扰动,对于该扰动,任务损失函数当在输入

输出对处被评估时最非线性的,该输入

输出对包括:(i)通过将可能的扰动应用于给定的训练输入而生成的扰动的训练输入;和(ii)用于给定训练输入的目标输出。
45.在给定的迭代处,训练引擎150然后通过执行神经网络训练过程的迭代来确定对网络参数118的当前值的更新以最小化局部线性度正则化损失函数,即,减少训练输入的损失(如由任务损失函数所测量的)并减少由扰动引擎160识别的最大非线性扰动的任务损失函数的非线性度。
46.下面参考图2

4更详细地描述执行训练的迭代和识别最大非线性扰动。
47.训练引擎150能够继续执行训练过程的迭代以更新网络参数118的值直到满足训练的终止标准,例如,已经执行了指定次数的训练迭代、指定的时间量已经过去或者网络参数118已经收敛。
48.一旦神经网络110已经被训练,系统100就能够提供指定用于处理新网络输入的训练网络的数据。即,系统100能够,例如,通过向用户设备输出或通过存储在系统100可访问的存储器中来输出网络参数118的训练值,以供稍后在使用训练网络处理输入时使用。
49.替代地或除了输出训练的网络数据之外,系统100能够实例化具有网络参数118的训练值的神经网络110的实例,例如,通过由系统提供的应用程序接口(api)接收要被处理的输入,使用经过训练的神经网络110来处理接收到的输入以生成网络输出,并且然后响应于接收到的输入提供生成的网络输出。
50.图2是用于训练神经网络的示例过程200的流程图。为方便起见,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的神经网络训练系统,例如,图1的神经网络训练系统100,能够执行过程200。
51.系统能够针对多个不同批次多次执行过程200,以从模型参数的初始值确定网络参数的训练值,即,能够在迭代训练过程的不同训练迭代中重复执行过程200以训练神经网络。
52.系统获得多个训练输入,并且对于多个训练输入中的每一个,获得用于训练输入的相应目标输出(步骤202)。
53.然后系统在多个训练输入中的每一个上训练神经网络。
54.特别地,系统使用神经网络并根据网络参数的当前值来处理每个训练输入,以为每个训练输入生成相应的网络输出(步骤204)。
55.系统计算每个训练输入的相应损失(步骤206)。
56.特别地,系统通过评估输入

输出对的任务损失函数来计算给定训练输入的相应
损失,该输入

输出对包括给定训练输入和用于给定训练输入的目标输出。
57.也就是说,系统在输入

输出对处,其包括给定训练输入和用于给定训练输入的目标输出,评估损失函数,该损失函数测量以下两者之间的差:(i)神经网络通过处理输入

输出对中的输入而生成的输出;和(ii)输入

输出对中的输出。
58.系统从多个可能的扰动中识别最大非线性扰动(步骤208)。
59.如上所述,最大非线性扰动是(来自可能的扰动的)下述扰动,对于该扰动,任务损失函数在输入

输出对处被评估时是最非线性的,该输入

输出对包括(i)通过将扰动应用于给定的训练输入而生成的扰动训练输入;和(ii)用于给定训练输入的目标输出。
60.在下面参考图3进行描述了识别最大非线性扰动。
61.该系统通过执行神经网络训练程序的迭代来确定对神经网络参数的当前值的更新,以减少训练输入的相应损失并减少所识别的最大非线性扰动的损失函数的非线性度(步骤210)。
62.特别地,系统能够执行神经网络训练过程的迭代以最小化局部线性度正则化损失函数,该函数至少测量多个训练输入的相应损失和所识别的最大非线性扰动的非线性度。
63.特别地,系统能够例如通过反向传播来确定相对于多个训练示例中的每一个的局部线性度正则化损失函数的网络参数的相应梯度,并且从多个训练示例的相应梯度确定相对于网络参数的平均梯度,即,通过计算相应梯度的平均值。
64.然后,系统能够例如通过下述方式从平均梯度确定对网络参数当前值的更新:将更新规则,例如,学习率、adam优化器更新规则或rmsprop更新规则,应用于梯度以生成更新。
65.系统然后通过将更新应用到网络参数的当前值,即,通过减去或添加,来生成网络参数的更新值。
66.通常,局部线性度正则化损失函数包括测量多个训练示例的平均损失的一项,以及基于所识别的最大非线性扰动的一项或多项。例如,局部线性度正则化损失函数能够是多项的和或加权和。
67.特别地,批次i的平均损失项能够被表达如下:
[0068][0069]
其中,b是批次i中训练输入的总数,l表示任务损失函数,是在输入

输出对处评估的任务损失函数,该输入

输出对包括批次i中的第j个训练输入和用于批次i中第j个训练输入的目标输出
[0070]
为了在识别的最大非线性扰动下测量任务损失函数的非线性度,局部线性度正则化损失函数能够包括第二项,该第二项测量在以下两者之间的绝对差的跨多个训练输入的平均值:(i)在输入

输出对评估的任务损失函数,该输入

输出对包括1)利用最大非线性扰动所扰动的训练输入和2)用于训练输入的目标输出;和(ii)在输入

输出对上进行评估的任务损失函数的一阶泰勒展开式,该输入

输出对包括1)利用最大非线性扰动而扰动的训练输入和2)用于训练输入的目标输出。特别地,第二项能够被表达为:
[0071]
其中,
[0072][0073]
并且其中,δ是识别的最大非线性扰动,λ是分配给第三项的权重。
[0074]
在某些情况下,除了第二项之外,局部线性度正则化损失函数还能够包括第三项,该第三项测量在最大非线性扰动被应用于训练输入时的损失变化,如损失的梯度相对于训练输入所预测的那样。
[0075]
特别地,第三项能够是在以下两者之间的点积绝对值的跨多个训练输入的平均值:(i)最大非线性扰动和(ii)在输入

输出对处评估的相对于损失函数的训练输入的梯度,该输入

输出对包括训练输入和用于训练输入的目标输出。换句话说,第三项能够被表达为:
[0076][0077]
其中,μ是分配给第三项的权重。
[0078]
通过将第二项和可选的第三项合并到局部线性度正则化损失函数中,即,加上对应于任务损失函数的项,系统能够以计算上有效率的方式训练系统以对对抗性攻击鲁棒。
[0079]
图3是用于识别给定批次的最大非线性扰动的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的神经网络训练系统,例如,图1的神经网络训练系统100,能够执行过程300。
[0080]
系统初始化扰动(步骤302)。例如,系统能够从具有不超过阈值的范数的可能扰动中随机均匀地采样扰动。
[0081]
系统然后执行步骤304

312的一次或多次迭代。迭代的次数能够在训练之前被固定,或能够在训练开始时通过超参数搜索被确定。例如,迭代次数可以等于1、2、4、8或16。
[0082]
对于每个训练输入,系统通过将扰动(从当前迭代起)应用于训练输入来生成相应的扰动训练输入(步骤304)。如上所述,系统能够通过添加,即逐元素添加,扰动和训练输入来对输入施加扰动。
[0083]
对于每个训练输入,系统使用神经网络并根据网络参数的当前值处理从训练输入生成的扰动的训练输入,以生成用于扰动的训练输入的网络输出(步骤306)。
[0084]
对于每个训练输入,系统使用用于扰动的训练输入的网络输出来确定在训练输入的扰动输入处进行评估的相对于扰动的局部线性度度量的梯度(步骤308)。
[0085]
通常,局部线性度度量测量损失函数在输入

输出对处被评估时的非线性程度,该输入

输出对包括(i)扰动的训练输入和(ii)用于训练输入的目标输出。
[0086]
作为一个特定的示例,局部线性度度量能够是在以下两者之间的绝对差:(1)在输入

输出对处评估的损失函数,该输入

输出对包括(i)扰动的训练输入和(ii)用于训练输入的目标输出;和(2)在输入

输出对处评估的损失函数的一阶泰勒展开式。换句话说,用于给定训练输入x和扰动δ的局部线性度度量g能够满足:
[0087]
[0088]
其中,l(x+δ)是在输入

输出对处评估的损失函数,该输入

输出对包括(i)扰动的训练输入和(ii)用于训练输入的目标输出,l(x)是在输入

输出对处评估的损失函数,该输入

输出对包括(i)训练输入和(ii)用于训练输入的目标输出,并且是l(x)相对于训练输入x的梯度。
[0089]
该系统能够使用传统的梯度计算技术,例如,通过反向传播计算相对于扰动的度量的梯度。
[0090]
系统通过对用于训练输入的局部线性度度量的梯度求平均来生成局部线性度度量的平均梯度(步骤310)。
[0091]
系统使用所平均的梯度更新扰动(步骤312)。通常,系统能够将梯度下降技术应用于平均梯度和当前扰动以生成更新的扰动。
[0092]
例如,梯度下降技术能够是投影梯度下降(pgd)技术,其更新扰动如下:
[0093]
δ

proj(δ

sx optimizer(gradient)),
[0094]
其中,gradient是平均梯度,s是步长超参数,并且optimizer是被应用于平均梯度的更新规则,例如,adam更新规则或rmsprop更新规则。
[0095]
作为另一个示例,该技术能够是快速梯度签名的方法(fgsm)技术,如ian j goodfellow、jonathon shlens和christian szegedy,explaining and harnessing adversarial examples(解释和利用对抗性示例).arxiv预刊arxiv:1412.6572,2014.中所描述的。
[0096]
在完成步骤304

312的所有迭代之后,系统选择一次或多次迭代的最后一次迭代之后的扰动作为最大非线性扰动(步骤314)。
[0097]
因此,与用于训练神经网络以对对抗性攻击更加鲁棒的一些现有技术一样,所描述的技术也需要执行内部最优化以识别满足某些标准的扰动。然而,与这些现有技术相比,所描述的技术需要更少的优化步骤(步骤304

312的迭代次数)才能有效训练神经网络以对对抗性攻击鲁棒。因为随着内部最优化步骤数量的增加,内部最优化成为训练过程计算密集程度的主导因素,所以通过执行更少的最优化步骤,所描述的训练技术变得比现有技术在计算上更有效率。
[0098]
特别地,因为执行优化步骤以找到最大的非线性扰动,并且因为这种非线性扰动然后被用于通过损失函数中的一个或多个单独的正则化项来正则化神经网络的训练,所以能够以比现有技术高得多的计算有效的方式实现对对抗性攻击鲁棒,该现有技术,例如,执行内部最优化以识别导致任何可能的扰动的任务损失的最大变化的对抗性扰动。
[0099]
替代地,如果使用相同数量的优化步骤来使用所描述的技术和现有技术训练网络,则训练后的神经网络如果使用该所描述的技术进行训练则可以对对抗性攻击,即来自强对手和弱对手的攻击两者,更加鲁棒。
[0100]
在一个示例中,对于具有4/255阈值的网络,使用所描述的技术进行110个训练时期的总训练时钟时间为7小时。相比之下,使用具有相同内部最优化步骤数的传统对抗训练,110个时期的总训练时钟时间为36小时。因此,实现了训练时间上的五倍的加速。在训练后,尽管训练时间上的加速,但使用所描述的技术训练的网络对对抗性攻击表现出更好的鲁棒性。
[0101]
图4示出了围绕特定训练输入的任务损失函数的非线性度。
[0102]
特别地,图4示出了围绕特定训练输入的任务损失的表面的4个可视化。
[0103]
可视化410示出了当已经使用具有一个内部最优化步骤(adv

1)的对抗性训练(“adv”)训练神经网络时的围绕特定训练输入的任务损失的表面。可视化420示出了当已经使用具有相同数量(即,一个)的内部最优化步骤(llr

1)的所描述的技术(“llr”)训练神经网络时的围绕特定训练输入的任务损失的表面。
[0104]
从可视化420和410中能够看出,在使用llr训练后的损失表面远比使用具有相同内部最优化步骤数量的adv的训练后更线性。
[0105]
当使用具有两个内部最优化步骤(adv

2)的对抗性训练训练神经网络时,可视化430示出了围绕特定训练输入的任务损失的表面。可视化440示出了当已经使用具有相同数量(即两个)内部优化步骤(llr

2)的所描述的技术训练神经网络时的围绕特定训练输入的任务损失的表面。
[0106]
同样,从可视化440和430中能够看出,在使用llr训练后的损失表面远比使用具有相同内部最优化步骤数量的adv的训练后更线性。此外,通过比较可视化430和可视化420能够看出,当使用llr进行训练时,在一个内部最优化步骤后的损失表面比在使用adv训练时在两个内部优化步骤后更线性。
[0107]
产生更线性的损失表面避免了训练后的神经网络仅对弱攻击鲁棒,即,但在强对抗性攻击,例如,由于梯度混淆,情况下崩溃。特别地,当网络学会通过使损失表面高度复杂和非线性来欺骗基于梯度的攻击时,一种形式的梯度混淆发生。反过来,非线性度阻止基于梯度的最优化方法在小数量迭代中找到对抗性扰动,从而降低训练的有效性。相比之下,当损失表面在训练示例附近是线性的,也就是说通过局部梯度信息很好地预测损失表面时,梯度混淆不能够发生。因此,由于所描述的技术能够以较少的内部最优化步骤中生成更线性的损失表面,因此使用所描述的技术的训练产生比使用其他现有技术训练的网络对强和弱对抗性攻击都更加鲁棒的训练后的神经网络。
[0108]
本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置为执行特定操作或动作的一个或多个计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在运行中使系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
[0109]
本说明书中描述的主题和功能操作的实施例能够被实现在数字电子电路中、在有形地体现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中或在它们的一个或多个的组合中。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,编码在有形非暂时性程序载体上的用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。替代地或另外,程序指令能够被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以用于传输到合适的接收器装置以供数据处理装置执行。
[0110]
术语“数据处理装置”指代数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置也能够是
或进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,所述装置能够可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0111]
计算机程序,其也被称为程序、软件、软件应用、app、模块、软件模块、脚本或代码,能够以任何形式的编程语言被编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言,并且该计算机程序能够以任何形式被部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不需要对应于文件系统中的文件。程序能够被存储在保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本、在专用于所涉及的程序的单个文件中或者在多个协同文件中,例如,存储一个或多个模块、子程序或代码部分的文件。计算机程序能够被部署为在一个计算机上或在位于一个地点或分布在多个地点并通过通信网络互连的多个计算机上执行。
[0112]
在本说明书中,术语“数据库”广泛用于指代任何数据的集合:数据不需要以任何特定方式进行结构化,或者根本不需要结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括多个数据的集合,每个数据的集合可以被不同地组织和访问。
[0113]
类似地,在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将被专用于特定的引擎;在其他情况下,多个引擎能够在同一台计算机或多个计算机上被安装和运行。
[0114]
本说明书中描述的过程和逻辑流程能够由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流也能够由专用逻辑电路(例如fpga或asic)或专用逻辑电路和一个或多个编程计算机的组合来执行。
[0115]
适合于执行计算机程序的计算机能够基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,该一个或多个大容量存储设备用于存储数据,例如,磁盘、磁光盘或光盘。然而,计算机不需要具有这样的设备。此外,计算机能够被嵌入在另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,此处仅举几例。
[0116]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及,cd rom和dvd

rom盘。
[0117]
为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有用于向用户显示信息的显示设备,例如,crt(阴极射线管)或lcd(液晶显示器)监视器,和键盘以及指示
设备,例如,鼠标或轨迹球,的计算机上实现,用户能够通过其向计算机提供输入。其他类型的设备能够被用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过下述方式来与用户交互:向用户使用的设备发送文档和从用户使用的设备接收文档;例如,响应于从web浏览器接收的请求将网页发送到用户设备上的web浏览器。此外,计算机能够通过向个人设备,例如,运行消息收发应用的智能电话,发送文本消息或其他形式的消息并且从用户接收响应消息作为回报来与用户交互。
[0118]
用于实现机器学习模型的数据处理装置还能够包括,例如,专用硬件加速器单元,用于处理机器学习训练或生产,即,推断、工作负载,的公共和计算密集部分。
[0119]
机器学习模型能够使用机器学习框架被实现和部署,例如,tensorflow框架、microsoftcognitivetoolkit框架、apachesinga框架或apachemxnet框架。
[0120]
本说明书中描述的主题的实施例能够被实现在计算系统中,该计算系统包括诸如作为数据服务器的后端组件,或者包括诸如应用服务器的中间件组件,或者包括诸如具有图形用户界面、web浏览器或app的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,用户能够通过其与本说明书中描述的主题的实现交互。系统的组件能够通过任何形式或介质的数字数据通信被互连,例如,通信网络。通信网络的示例包括局域网(“lan”)和广域网(“wan”)(例如,因特网)。
[0121]
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端

服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备,例如,出于向与作为客户端的设备交互的用户显示数据和从用户接收用户输入的目的。能够在服务器处从所述设备接收在用户设备处生成的数据,例如,用户交互的结果。
[0122]
虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也能够在单个实施例中被组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中被实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下能够从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0123]
类似地,虽然在附图中描绘了操作并且以特定顺序在权利要求中叙述了操作,但是这不应该被理解为要求以所示的特定顺序或按顺次的顺序执行这种操作,或者执行所有图示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常能够被集成在单个软件产品中或打包成多个软件产品。
[0124]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作能够以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附
图中描绘的过程不一定需要所示的特定顺序或顺次顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1