智能计算平台应用开发(高级)-智能计算机应用平台开发人工智能高级应用软件开发测试-高级人工智能产品测试_第1页
智能计算平台应用开发(高级)-智能计算机应用平台开发人工智能高级应用软件开发测试-高级人工智能产品测试_第2页
智能计算平台应用开发(高级)-智能计算机应用平台开发人工智能高级应用软件开发测试-高级人工智能产品测试_第3页
智能计算平台应用开发(高级)-智能计算机应用平台开发人工智能高级应用软件开发测试-高级人工智能产品测试_第4页
智能计算平台应用开发(高级)-智能计算机应用平台开发人工智能高级应用软件开发测试-高级人工智能产品测试_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章人工智能高级应用软件

开发测试智能计算软件产品开发边缘计算高级人工智能产品测试高级人工智能产品测试在初级与中级中已经介绍了基础人工智能软件产品测试,算法性能测试相关的内容。除了初级和中级中提到的内容外,人工智能产品测试还需要了解算法的开销和算法的安全性。开销测试人工智能的产品的开销测试与一般的软件产品不同,人工智能的开销测试包括了样本开销、时间开销、存储开销3个方面。开销测试样本开销时间开销存储开销开销测试——样本开销样本开销样本开销是指某种人工智能相关的算法,在进行训练过程中,如果要取得能够在工业领域应用的效果,需要的最少样本数目。样本开销测试则是通过测试的方法,得出该算法模型效果达到要求的最低样本数目的过程。在实际应用工程中,有标记的数据往往比较稀缺,而获取额外的标签数据又是一项大的开支。如何使用最少的样本达成要求的算法模型效果就是样本开销测试所关心的问题。为了减少样本开销,最常用的方法是数据增强。开销测试——样本开销数据增强特指对有限的训练数据通过某种变换得到更多数据的过程。在深度学习中,因为将大量包含一种或多种相同属性的训练数据统称为数据集,所以这时数据增强也称数据集增强。数据集增强的目的主要有扩充数据的量和提高数据的质量两个。根据数据类型不同,数据增强所使用的方法也就不同:如文本数据,其包含的信息通常被认为是离散的,故数据增强的主要思路在于利用一些数据分析挖掘技术对文本数据中的词义进行替换、关键词序调整或引入噪声词语;但对于图像数据而言,数据增强则可以直接运用一些常见的图像处理或图像增强算法对图像数据扩充或质量改善。因此,常见的图像增强技术通常可以用于数据增强。开销测试——时间开销时间开销人工智能算法按照任务的阶段可以分为训练任务和预测任务。按照其响应要求,可以分为实时响应任务和非实时响应任务。一般情况下,训练任务为非实时响应任务,预测任务为实时响应任务。测试一个人工智能算法的执行时间通常有两种方法:运行后统计和运行前分析估算。开销测试——时间开销使用运行后统计的方法进行算法时间开销测试必须收集以下3个方面的信息。算法的任务阶段:训练任务,抑或预测任务。算法的响应要求:实时响应,还是非实时响应。算法的响应时长上限:针对非实时响应类任务,需要明确算法的响应时长上限。在算法的任务阶段、响应要求、响应时长上限3个方面信息均具备的情况下,即可进行算法的时间开销测试。开销测试——时间开销其中,前2种策略仅适用于训练任务。如果算法在测试时不满足要求采取的主要策略减少算法的迭代次数。减少样本数目。降低算法复杂度,神经网络算法减少隐藏层。提升训练所用服务器的CPU、GPU主频以及核心数。使用效率更高的程序语言或者框架。开销测试——时间开销运行后统计的方法不利于较大范围内的算法比较。运行前分析估算的方法则与许多因素有关,包括算法本身选用的策略、问题的规模、书写程序的语言和机器执行指令的速度等。为便于比较算法本身的优劣,应排除其它影响算法效率的因素。从算法中选取一种对于所研究的问题来说是基本操作的原操作,以该基本操作重复执行的次数作为算法的时间量(原操作在所有该问题的算法中都相同)。开销测试——时间开销一个算法运行时间通过时间复杂度来表征。上式表示随问题规模n的增大,算法执行时间的增长率和

的增长率相同。开销测试——存储开销存储开销存储开销指的是某种人工智能算法在训练、预测过程中使用的内存、硬盘大小。影响算法的存储开销的主要因素包括数据集大小、算法的类型、数据类型等。测试一个人工智能算法的存储开销同样有两种方法:第一种为测试中统计,第二种是测试前分析估算。使用测试中统计的方法进行算法存储开销测试必须在算法执行过程中记录或者保存存储开销信息,并在算法运行结束后分析与总结。开销测试——存储开销一个算法存储开销通过空间复杂度来表征。上式表示空间复杂度,空间复杂度可以作为算法所需存储空间的量度。若额外空间相对于输入数据量来说是常数,则称此算法为原地工作。原地工作的意思是一个算法需要少量的辅助空间,且其大小不随问题规模的大小而改变。若所占空间量依赖于特定的输入,则除特别指明外,均按最坏情况来分析。安全测试机器学习模型是人工智能系统进行感知和决策的核心部分,其应用过程主要包含训练和预测两个重要阶段。目前,机器学习模型安全问题可以主要分为以下3类。诱导攻击:攻击者通过向训练数据加入毒化数据等手段,影响模型训练过程,进而起到干扰模型的工作效果。逃逸攻击:攻击者在正常样本的基础上人为地构造异常输入样本,致使模型在分类或决策时出现错误,达到规避检测的攻击效果。探索攻击:攻击者试图推断机器学习模型是如何工作的,包括对模型边界的预测、训练数据的推测等。安全测试根据攻击类型,可以推测出的攻击手段主要有数据投毒、模型后门、对抗样本、模型逆向和模型萃取5种。攻击手段每种方法的定义及其应对措施表。攻击手段解释应对措施数据投毒攻击者通过修改训练数据内容和分布,来影响模型的训练结果考虑污染数据和正常数据分布差异,方法主要包括鲁棒性机器学习以及数据清洗模型后门通过训练得到的、深度神经网络中的隐藏模式。当且仅当输入为触发样本时,模型才会产生特定的隐藏行为;否则,模型工作表现保持正常输入过滤、神经元裁剪安全测试攻击手段每种方法的定义及其应对措施表。攻击手段解释应对措施对抗样本对输入数据构造肉眼难以发现的轻微扰动,可导致基于深度神经网络识别器输出错误的结果直接对抗训练、梯度掩模、对抗样本检测模型逆向根据训练数据与非训练数据的拟合差异来窥探训练数据隐私差分隐私、联邦学习模型萃取通过发送轮询数据并查看对应的响应结果,推测机器学习模型的参数或功能,复制一个功能相似甚至完全相同的机器学习模型对模型参数或者输出结果进行近似处理、向损失函数添加新的正则化项安全测试其中对抗样本是目前算法安全所遭遇最严峻的问题。对抗样本的生成方法有多种,但是究其根本都有一定的操作流程。总体而言,对抗样本的生成与检测可以按照如下步骤完成。用正常的样本数据训练网络分类器。向原始图片中加入扰动。将处理过的对抗样本输入到分类器中进行分类,得到分类误差。对抗训练,得到分类误差而测试对抗样本的鲁棒性。重复进行第(3)步。安全测试常见对抗样本生成技术L-BFGSFGSMJSMADeepfoolDEMalGAN安全测试——L-BFGSSzegedy等人使用有约束L-BFGS算法来求解,将问题进行了下式所示的转换。上式中,

为一个与模型和标签有关的损失函数。由于神经网络一般是非凸的,上述损失函数最终得到一个近似值。对于每一个常量,重复优化求解这个最小化问题,每一个值都能找到一个满足问题的可行解,通过执行全局的线性搜索,最终找到满足距离最小的对抗样本。安全测试——L-BFGSSzegedy等人在MNIST、ImageNet和YouTube这3个数据集和多种网络下进行了大量的实验,部分实验结果如下图,第1、4列为原始图像,第2、5列为扰动图像,第3、6列为对抗样本图像。实际进行预测时,对抗样本图像都被分类器预测为鸵鸟。安全测试——L-BFGSL-BFGS要求模型和目标函数的梯度可求解,这限制了模型和目标函数的多样性,需要解决一系列代价昂贵的惩罚性优化问题,使得这种技术在产生对抗样本时的计算代价很高。安全测试——FGSM

安全测试——FGSM在GoogLeNet的ImageNet数据集上使用快速梯度符号法生成的对抗样本如下图。通过添加一个足够小的扰动量,最终改变了GoogLeNet的图像分类结果。图片来源:刘小垒,罗宇恒,邵林,张小松,朱清新.对抗样本生成及攻防技术综述[J].计算机应用研究,4-7.安全测试——JSMA

安全测试——JSMA通过给对抗样本生成算法提供零输入(全黑图像),产生的对抗样本如下图所示,每个样本的类别从左到右分别是0~9。可以看出,部分对抗样本可以由人眼识别出其对应的目标类别。图片来源:刘小垒,罗宇恒,邵林,张小松,朱清新.对抗样本生成及攻防技术综述[J].计算机应用研究,4-7.安全测试——DeepfoolDeepfool是针对L2距离算法优化的非目标性攻击方法,如右图。第二行为Deepfool生成的对抗样本图像和对应的扰动,第三行为快速梯度符号法生成的对抗样本图像和对应的扰动,可以看出DeepFool产生的扰动更小。安全测试——Deepfool该方法先假设神经网络是完全线性的,将其转换为超平面将每个类别分开,从分析上推导出这个问题的最优解,同时生成了与之对应的对抗样本。实际上,神经网络并不是线性的,初始问题需要被继续分解,直到满足分段线性,然后再重复这个过程。最终当分段搜索结束时,才会得到问题的最优解,进而生成一个真正的对抗样本。该算法实际上是限定神经网络下的超平面问题,在非神经网络模型上的应用相当有限,算法的通用性较低,需要大量的时间分析模型的特性。安全测试——DE

安全测试——DE通常的对抗样本生成方法允许扰动所有的像素,然后对所有像素的变化量之和进行整体约束来构造目标函数,而这里所考虑的攻击方式是相反的,其只关注被修改像素的数量,但不限制单个变化量的大小。成的对抗样本如右图。安全测试——DE进化类算法不要求模型的梯度可求解,这是此类算法的优点,该算法实际上集中于解决单像素的对抗样本生成问题,对于目标函数并没有做优化,在其他距离算法下,该算法的对抗样本生成效果有限。安全测试——MalGANHu等人提出了基于MalGAN的恶意软件对抗样本生成方法。恶意软件检测算法通常集成到防病毒软件中或托管在云端,因此对攻击者来说是一个黑盒模型,很难知道恶意软件检测使用的分类器以及分类器的参数。Hu等人通过向黑盒模型输入各种特征的样本,利用原始样本和黑盒模型所产生的输出来训练一个辨别器,再用辨别器指导生成器来产生对抗样本。安全测试——MalGAN对于恶意软件检测系统来说,真正率(TPR)是指恶意软件的检测成功率。经过对抗样本攻击之后,TPR的减少可以反映恶意软件样本成功绕过检测算法的概率。实际上,MalGAN算法强调整个样本集的正确率,而不关心单个样本的相似度,这意味着每个样本所需的扰动可能很大,产生的对抗样本的相似度可能很低。这就导致该算法在实际应用中具有较大局限性。自动化测试除了使用QuickTestProfessional、RationalRobot、TestComplete和Selenium这些传统的自动化测试工具外,还可以使用人工智能辅助测试。在测试工作中,人工智能能够辅助的工作主要有测试数据生成、测试用例生成两部分。自动化测试——测试数据生成随着软件规模的逐渐增大和软件复杂度的不断提升,传统手工编写测试数据的方法已不再适用。高效可行的测试数据自动生成方法不仅能保证测试覆盖率,还可以较大程度降低测试成本,对自动化的软件测试来说意义重大。目前,测试数据自动生成方法主要有动态、静态和智能优化3类方法。动态法有迭代松弛法、试探法、程序插桩法等;静态法有符号执行法、随机法;智能优化算法有禁忌搜索算法、蚁群算法、遗传算法等。自动化测试——测试数据生成例如,在游戏设计中,通常都有大量的角色,因此其数据量也是非常巨大的。人工智能技术可以对游戏进行测试,以及收集游戏数据。例如,可以利用人工智能技术在游戏中创建不同的角色,并且执行不同的任务,从而来检测游戏功能是否完善。通过这种方式可以运用人工智能技术在同一时间建立多个角色进行测试,节省了大量的人力、物力,并且在测试中通过人工智能技术控制也比人力测试更加全面。在游戏测试中,人工智能技术除了能够对游戏进行测试外,甚至还能针对漏洞进行修补,从而使得游戏功能更加完善。自动化测试——测试用例生成人工智能能够辅助生成测试用例,从而更好地发现程序中潜在的错误。在此情况下,由测试人员提供大量的输入和输出数据进行人工智能技术训练,最终使人工智能可以根据特定的需求进行测试计划和测试执行,并对测试结果进行合理总结。自动化测试——测试用例生成工程测试人工智能技术能应用在大型的工程测试中,借助计算机强大的计算能力,能够较大程度地减少因人为失误而造成的失误。例如,在航空航天工程中,专家系统使得人工智能技术具备了航天专家的知识和经验,通过专家系统编写测试用例,可以弥补工作人员在专业知识方面的缺陷,保证测试具有更高的准确性。自动化测试——测试用例生成性能测试软件的性能包括很多个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论