符号执行和本地解释Automated Test Generation to Detect Individual Discrimination in AI Models

本文介绍了一种结合符号执行和局部可解释性技术生成测试输入的方法,旨在揭示黑盒AI模型中的潜在歧视。该方法在12个基准测试中生成的成功案例数量是THEMIS方法的3.72倍,展示了其在测试非可解释模型的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用符号执行和本地可解释性来生成测试输入。关键思想是使用本地解释,特别是本地可解释模型不可知解释来确定驱动决策的因素是否包括受保护的属性。评估表明,在12个基准测试中,该方法生成的成功测试用例是THEMIS的3.72倍。文章中开发了一种新的动态符号执行和局部解释的组合,以生成非可解释模型的测试用例。局部解释器的使用将为黑盒 AI 模型的基于路径的分析开辟许多途径。

 

符号执行 (Symbolic Execution)是一种程序分析技术,它可以通过分析程序来得到让特定代码区域执行的输入。顾名思义,使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。例子如下:

可解释性的意思是这个模型的决策能不能被人理解。

每个转换条件是一个谓词,在论文中谓词相当于特征 ,每个特征可能存在不同的值,通过对值的转换产生不同的测试用例。首先是将谓词设置为二进制的变量,根据不同的变量组合生成不同的测试路径,然后根据路径选择合适的具体value值。生成二进制路径的过程被称为符号执行,通过路径倒推具体值的过程称为本地解释。

论文创新在于符号执行和本地解释的过程,同时,文中训练数据用到了随机选取,定向搜索和非定向搜索三种方式。试验表明,一般情况下是:定向搜索>随机搜索>非定向搜索。但也会出现极少数的情况是非定向搜索>随机种子>定向搜索,由此说明了非定向和定向搜索都是重要的。数据处理中也用到了K-means聚类,数据表明聚类选择特征比迭代的效果好。在选择特征时用到了置信度,定向搜索时倾向于低置信度,非定向搜索时倾向于高置信度。同样,如果两条实例中除了某一个受保护的属性不一样,其他属性都相同,却造成了不同的输出,则说明该属性是存在歧视性的。

THEMIS 从域中选择所有属性的随机值,以确定系统是否在个体之间进行歧视。AEQUITAS 分两个阶段生成测试用例。第一阶段通过对输入空间进行随机采样来生成测试用例。第二阶段开始时,将第一阶段产生的每个判别输入作为输入,并对其进行扰动,以产生更多的测试用例。这两种技术的目的都是为了产生更多的测试输入。尽管上述这两种技术适用于任何黑盒系统,但这篇论文的实验表明,它们会遗漏许多这样的非保护属性值组合,而这些组合可能存在单独的判别。还希望覆盖模型更多样化的路径,以生成更多的测试输入。

 

本文目的是对特征空间进行系统化搜索,以覆盖更多的空间,而不需要太多的冗余。存在基于符号评估的技术,通过系统地探索程序中的不同执行路径来自动生成测试输入。这种方法避免了生成多个输入,因为这些输入倾向于探索相同的程序路径。这类技术本质上是白盒技术,利用约束求解器的能力来自动创建测试输入。符号执行从一个随机输入开始,分析路径生成一组路径约束条件(即输入属性的条件),并迭代地切换(或否定)路径中的约束条件,生成一组新的路径约束条件。然后,它使用约束求解器对所得的路径约束进行求解,以生成一个新的输入,这个输入可能会把控制带到新的路径上。我们的想法是使用这种动态符号执行来生成测试输入,这有可能导致发现 ML 模型中的个体歧视。然而,现有的这种技术已经被用来生成可解释程序的程序输入。主要挑战是如何将这种技术应用于不可解释的机器学习模型。

 

全局搜索迎合了路径覆盖率的要求,有助于发现初始的判别输入集。为了实现这一点,我们使用种子数据与符号执行,同时考虑本地模型中存在的近似,并智能地使用与本地模型中获取的路径约束相关的置信度。此外,局部搜索的目的是寻找越来越多的判别性输入。它从初始的可用判别路径集开始,并生成属于附近执行路径的其他输入,从而系统地进行局部解释,同时依靠对抗性鲁棒性属性。

### 回答1: yolov5中的test.pydetect.py是两个Python脚本,用于在训练好的模型上进行目标检测。 test.py主要用于测试模型的性能,可以通过设置不同的参数来测试不同的模型,例如模型的大小、批量大小、数据集等。它会输出模型的精度、召回率F1分数等指标,以及检测结果的可视化图像。 detect.py则是用于实际的目标检测应用,它可以读取图像或视频文件,并在其中检测出目标物体。它也可以设置不同的参数,例如置信度阈值、非极大值抑制等,以控制检测结果的准确性速度。它会输出检测结果的可视化图像,并可以将结果保存到文件中。 ### 回答2: YOLOv5是一种高效的目标检测算法,它可以在高分辨率下快速、准确地检测多个物体。在YOLOv5中,test.pydetect.py是两个非常重要的文件,下面我就分别对它们进行介绍: 一、test.py test.py是YOLOv5中的一个重要文件,它主要用于在给定的权重下测试模型的精度。 在使用test.py时,需要指定检测的图片或视频路径,还需要输入模型权重路径。同时还可以设置一些参数,例如置信度阈值非极大值抑制阈值等。test.py还提供了一些可视化的选项,例如显示结果框、预测框、类别等。 使用test.py可以对训练好的模型进行测试,检查它的准确度可靠性,有助于我们更好地选择调整模型。 二、detect.py detect.py是YOLOv5中的另一个重要文件,它主要用于在给定的权重下检测图像或视频中的对象。 在使用detect.py时,需要指定待检测文件的路径需要使用的权重文件。test.py一样,还可以设置一些参数,例如置信度阈值非极大值抑制阈值等。不同的是,detect.py可以支持实时摄像头检测,也可以保存检测结果为视频或图片。 detect.py是YOLOv5中非常重要的一个文件,它可以快速、准确地检测出图像或视频中的目标,为后续的处理提供了很大的帮助。 总结: test.pydetect.py是YOLOv5中非常重要的文件,它们分别用于模型测试目标检测。使用它们可以检查模型的精度可靠性,也可以实现快速、准确地目标检测。这两个文件的使用非常灵活,可以根据具体的应用场景灵活选择调整参数。 ### 回答3: yolov5是一种目标检测算法,它的最新版本为yolov5s。其中,yolov5中的test.pydetect.py是两个重要的脚本文件,下面我将分别进行介绍。 1. test.py test.py是yolov5中用于测试的脚本文件。它主要用于将训练得到的模型应用于测试集或者用户上传的图像上,进行目标检测以及预测。该脚本具有较高的灵活性,可以通过命令行设置多个参数,以满足不同情况下的需求。 test.py主要的参数包括: - weights:该参数用于指定模型的权重路径 - source:该参数用于指定待测试的图像源,可以是单张图片、视频文件或者相机输入 - img-size:该参数用于指定输入图像的大小 - conf-thres:该参数用于指定置信度阈值 - iou-thres:该参数用于指定IoU(交并比)阈值 通过运行test.py脚本,我们可以很方便地对模型进行测试,获得目标检测的结果。 2. detect.py detect.py是yolov5中用于检测的脚本文件。它主要用于对单张图片进行目标检测,是test.py的一种特化形式。detect.py的参数设置与test.py类似,也是通过命令行设置。 detect.py主要的参数包括: - weights:该参数用于指定模型的权重路径 - img:该参数用于指定待检测的图像路径 - conf:该参数用于指定置信度阈值 - iou:该参数用于指定IoU阈值 - classes:该参数用于指定待检测的目标类别 使用detect.py脚本可以很方便地对单张图片进行目标检测,给出目标框以及类别信息。 综上所述,test.pydetect.py是yolov5中非常重要的两个脚本文件,它们分别用于测试检测,具有很高的灵活性有效性,为yolov5的应用提供了很大的便利性可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值