使用负责任的AI仪表板调试目标检测模型
使用AI仪表板调试目标检测模型
在Microsoft Build 2023上,我们宣布在Azure Machine Learning负责AI仪表板中预览支持文本和图像数据。本博客将重点介绍仪表板的新视觉洞察能力,支持目标检测模型的调试能力。我们将在未来的帖子中深入探讨基于文本的场景。与此同时,您可以观看我们的Build分会话演示文本场景和其他支持负责AI应用程序的公告。
介绍
目标检测目前被用于支持各种关键和敏感的用例(例如人脸检测、野生动物检测、医学图像分析和零售货架分析)。目标检测是在图像中定位和识别多个物体的类别,其中物体以边界框定义。这与图像分类不同,图像分类是对图像中包含的内容进行分类,而实例分割是识别图像中不同物体的形状。
数据子组的目标检测错误可能会导致意外的危害-降低机器学习(ML)系统的可靠性、安全性、公平性和信任。例如,图像内容管理工具的整体准确率可能很高,但在某些光照条件下可能无法正常工作,或者可能错误地审查某些族群。这些失败通常是隐藏的,因为今天大多数ML团队仅依赖于不显示个体特征的聚合性能指标。ML团队还无法看到导致错误分布不同的黑盒模型行为。这些挑战阻碍了ML团队通过减少模型差异来优化服务质量、在选择最佳模型时考虑公平性,并确保由于新的ML进展或新数据的可用性而更新/重新部署的模型不会引入新的危害。
解决这些问题的道路通常是繁琐且耗时的,因为ML团队必须使用碎片化的调试工具、创建自定义基础设施或手动分析数据。评估结果很难进行比较和共享,以获得技术和非技术利益相关者的意见和支持。然而,将技术专业知识与道德、法律、经济和/或社会考虑相结合,是全面评估和安全部署模型的关键。
为了加速目标检测模型的负责任开发,本博客将深入探讨如何使用Azure Machine Learning负责AI仪表板来全面评估和调试目标检测模型。通过利用主动数据探索和模型可解释性技术,该仪表板帮助ML从业者识别模型和数据中的公平性错误,诊断错误发生的原因,并提供适当的缓解措施。
负责AI仪表板的目标检测组件可以通过Azure Machine Learning Studio、Python SDK v2和CLI v2进行访问,并已支持表格和语言模型。该仪表板还与负责AI工具箱存储库集成,提供了更多工具套件,以便赋予ML从业者和开源社区更负责任地开发和监控AI。对于其他计算机视觉场景,您可以从这些技术文档中了解如何生成和分析用于图像分类和图像多类分类的负责AI洞察。
在此深入探讨中,我们将探讨ML从业者如何使用负责AI仪表板来评估目标检测模型,通过识别和诊断对象检测模型在MS COCO数据集上的预测中的错误。为此,我们将学习如何创建数据组,以调查模型性能的差异,通过数据探索诊断错误,并从模型可解释性工具中获得洞察。
仪表板设置的先决条件
本教程是在Azure Machine Learning中设置负责AI组件的先前博客文章的基础上构建的。请完成以下先前步骤:
– 登录或注册免费的Azure账户
– 第1部分:开始使用Azure Machine Learning负责AI组件
– 第2部分:如何训练一个可以分析负责AI问题的机器学习模型
– 注意:本教程将使用MS COCO数据集。
– 本教程需要Azure Machine Learning负责AI仪表板的视觉洞察组件。请在技术文档中了解如何入门以及技术要求(例如,模型和数据格式)。
– 与非AutoML和AutoML支持的目标检测任务相关的示例笔记本可在azureml-examples存储库中找到。
1. 使用模型概述识别错误
作为分析的起点,负责AI仪表板中的模型概述组件提供了一套综合的性能指标,用于评估对象检测模型在数据集组或特征组上的表现。这允许进行错误探索,以识别与整体基准相比具有更高错误率的数据组,或者在数据集中具有欠表示/过表示的情况。
在此组件中,您可以通过基于调查问题或观察到的模式创建新的群体,并比较这些群体的模型性能来研究您的模型。以使用MSCOCO数据进行示例案例研究为例,当在图像中检测到一个人时,我们可能对评估我们的目标检测模型在检测人物时的性能感兴趣,尤其是分析与其他类别的共现的影响。在检测一个人时,我们的模型在多大程度上依赖对象的像素,而不是从同一图像中共现对象类别的像素推断?
首先,我们可以创建群体来比较与各种对象共现的人物图像的性能。这些数据集群体可以在数据浏览器组件中创建,我们将在下一部分介绍。
- 群体#1:人物图像+滑雪板或滑板
- 群体#2:人物图像+球棒或网球拍
在数据集群体窗格中,指标表显示每个数据集群体的样本大小以及所选目标检测模型的性能度量值。指标根据所选方法进行聚合:整个群体的平均精度(mAP),以及所选对象类别的平均精度(AP)和平均召回率(AR)。指标可视化还提供了跨数据集群体的性能度量的可视化比较。
图1:为了评估“滑雪板或冲浪板”群体与“球棒或网球拍”群体中检测人物类别的平均精度和平均召回率的比较,以及所有图像的整体性能,我们从下拉菜单中选择“人物”类别。
为了评估您的目标检测模型预测的置信度,您可以设置IoU阈值(真实边界框与预测边界框的交集与并集之比),该阈值定义了错误并影响模型性能度量的计算。例如,设置大于70%的IoU意味着与真实边界框有大于70%的重叠的预测是True。通常,增加IoU阈值将导致mAP、AP和AR下降。此功能默认处于禁用状态,可以通过连接到计算资源来启用。
图2:有趣的是,当将IoU阈值从70%增加到80%时,“滑雪板或冲浪板”群体中的人物类别的平均精度和平均召回率并未下降。这表明与人物和棒球棒或网球拍的群体相比,我们的模型在检测与滑雪板和冲浪板共现的“人物”类别时具有更好的准确性。
使用敏感和非敏感特征群体来评估模型性能是另一种方法。这使您能够识别公平性问题,例如在图像中检测人物时,某些性别、民族或肤色存在较高的错误率。在特征群体窗格中,您可以根据指定特征的值自动创建默认数量的三个群体并将其分割。
图3:我们根据图像的平均像素值创建了三个单独的群体,并比较了模型在检测人物方面在各个群体中的性能。在这里,平均像素值大于151.31的图像在与其他群体相比的平均精度得分较低。
接下来,让我们在“特征”下拉菜单旁边选择“帮助我选择特征”。在这里,您可以调整用于评估模型公平性的特征,以及确定性能比较的特征分割数。
图4:在“帮助我选择特征”下,我们将群体数量从默认的三个群体调整为五个群体。
更精细的特征分割可以更精确地识别错误群体。在下一部分中,我们可以在数据浏览器中对每个群体的内容进行视觉检查。
图5:在这里,我们观察到像素均值高于151.31的图像(从之前的三个队列的拆分得出)的平均精度分数较低,这可以归因于像素均值大于171.18的图像的性能较低,而不是像素均值范围在151-171之间的图像。
2. 诊断错误
使用数据探索器调试数据
在使用模型概览识别出具有较高错误率的数据集和特征队列后,我们将使用数据探索器组件进一步调试和探索这些队列,通过不同的视角:以图像网格的形式进行视觉上的观察,以元数据的表格形式进行观察,通过地面真实数据中出现的类别集合进行观察,并通过放大单个图像进行观察。除了统计数据之外,观察预测实例还可以帮助识别与缺少的特征或标签噪声相关的问题。在MS COCO数据集中,数据探索器中的观察可以帮助识别出类级别性能的不一致性,尽管具有相似的物体特征(例如滑板和冲浪板以及滑雪板),并启动对影响因素的深入调查。
在图像网格中进行错误和成功实例的视觉检查
使用图像探索器窗格,您可以探索模型预测中的对象边界框,自动分类为正确和错误标记的预测。此视图有助于快速识别数据中的高级错误模式,并选择要深入调查的实例。
图6:基于先前对特征队列的模型性能观察,我们可能对在像素均值比最大值少一半的图像实例进行视觉分析感兴趣。在这里,我们创建一个符合该特征条件的新队列,并根据该条件筛选显示的图像实例。
除了元数据特征值之外,还可以通过索引和分类结果对数据集进行过滤,以及堆叠多个过滤器。因此,我们可以查看与我们的过滤条件相对应的所有图像实例的成功和错误实例。
图7:在筛选和创建新队列后,此视图显示了所有像素均值比最大值少一半的图像实例的成功和错误实例。
以表格形式探索预测并将数据分段为队列进行比较
除了视觉探索之外,表格视图窗格还允许开发人员以表格形式浏览模型的预测结果,识别每个图像实例的地面真实数据、预测类别标签和元数据特征。
图8:对于每个图像实例,您可以在表格视图中查看图像索引、真实Y标签、预测Y标签和元数据列。
此视图还提供了一种更精细的方法来创建数据集队列-您可以手动选择每个图像行以包含在新的队列中进行进一步探索。为了将使用在分析开始时使用的带滑雪板和冲浪板的人的图像进行分组,我们可以选择具有人和滑雪板或冲浪板标签的图像。我们可以将此队列命名为“滑雪板或冲浪板上的人”并保存在整个仪表板组件中进行分析。
图9:在这里,我们手动选择每个具有人和滑雪板或冲浪板标签的图像实例,将这些图像保存为一个新的队列。
由于仪表板默认显示所有数据,我们可以筛选到我们新创建的群体以查看其内容。
图10:在筛选到“滑雪板或冲浪板上的人”这个新的群体之后,我们可以看到在我们的数据集中有6个人在滑雪板或冲浪板上的成功预测。
诊断类别级别错误模式中的公平性问题
为了诊断每个类别中存在的公平性问题,类别视图窗格会按照选定的类别标签对模型的预测进行分解。在这里,错误实例是指预测的类别标签集与真实数据中的类别标签集不完全匹配的情况。这可能需要对各个实例进行调查,以识别模型行为中的潜在模式,并在本教程的最后一部分探索潜在的缓解策略。
图11:通过选择同时检测到人和滑板、滑雪板或冲浪板的图像,我们可以看到在这个包含44个图像的数据集中,有3个图像中同时有一个人和滑雪板或冲浪板,这些都是成功的实例,人和滑雪板/冲浪板都被正确地检测到了。然而,有一个图像中既有一个人又有一个滑板,这是一个错误的实例,我们可以进一步检查。
通过对个别图像进行详细的视觉分析来发现错误的根本原因
由于图像卡片上的边界框可能不足以诊断特定错误实例的原因,您可以点击每个图像卡片以访问一个弹出窗口,查看详细信息,如预测和真实的类别标签、图像元数据以及用于模型可解释性的视觉解释。为了进一步诊断模型在进行错误预测时的行为,我们可以查看图像中每个对象的解释,这将在下一节中介绍。
图12:通过查看一个人和滑板的错误实例的详细信息,我们发现人和滑板被正确检测出来,但是还检测到了一张长椅,而长椅不在真实类别标签(人、滑板)的集合中。我们可以通过模型可解释性来诊断这个问题的原因。
使用可解释性洞察调试模型
模型可解释性洞察提供了关于模型行为的明确性,以便机器学习专业人员向各种技术背景的利益相关者解释他们的目标检测模型的预期影响和潜在偏差。在负责任的AI仪表板中,您可以查看由Vision Explanation Methods提供的视觉解释,这是微软研究的开源软件包,实现了D-RISE(Detector Randomized Input Sampling for Explanations)。
D-RISE是一种用于创建目标检测模型预测的视觉解释的模型不可知方法。通过考虑目标检测的定位和分类两个方面,D-RISE可以生成突出显示对检测器预测贡献最大的图像部分的显著性地图。与基于梯度的方法不同,D-RISE更加通用,不需要了解目标检测器的内部工作原理;它只需要访问模型的输入和输出。该方法可以应用于单阶段检测器(如YOLOv3)、两阶段检测器(如Faster-RCNN)以及视觉Transformer(如DETR、OWL-ViT)。由于模型解释性方法也具有价值,微软将继续努力并合作扩展可用的解释性方法集合。
D-RISE通过为输入图像创建随机掩码并将其与输入图像的随机掩码一起发送给目标检测器,提供一个显著性地图。通过评估目标检测器分数的变化,它将聚合每个掩码的所有检测结果,并生成最终的显著性地图。
解读D-RISE显著性图对于各种成功和错误场景的解释
在负责任的AI仪表板中,D-RISE提供的显著性图可在数据浏览器中的选定图像实例的弹出窗口中使用。对于图像中检测到的每个对象,通过从下拉菜单中选择对象(对象编号对应于类别标签的顺序),可以查看其对应的视觉解释。以下示例将展示显著性图如何提供有价值的见解,帮助理解正确对象检测背后的模型行为、由于对象的共现而导致的潜在偏见以及误检测。
要研究以下图像中人的检测情况,请寻找更强烈的暖色调,如红色和洋红色。这些是解释的关键,因为它们表明大部分高显著性像素集中在人身上,这符合检测人类类别时的预期。这也表明,与人物周围的对象相比,这些对象对预测的贡献不如人本身显著。
图13:对于滑雪者的人,注意大部分滑雪板上没有高显著性像素,而对于打网球的人,强烈的色彩像素集中在人和球拍的一部分,但最强烈的(洋红色)像素集中在人而不是网球拍上。当查看图15中网球拍的显著性图时(最右边的图像),可以看到与人不同,最显著的洋红色像素集中在网球拍而不是人身上。
对于同一图像,除人之外,人旁边的其他对象也被正确检测到,如滑雪板、网球拍或冲浪板。然而,显著性像素可能揭示由于这些图像中各种对象的共现而产生的混淆因素,导致这些正确预测中存在偏见。
图14:请注意,在检测滑雪板时,有一些显著性像素集中在人的腿部,检测冲浪板时,有一些显著性像素集中在水面上,检测网球拍时,有一些显著性像素集中在人身上。这可能意味着各种对象的共现可能会对预测结果产生偏见。
想象一下,如果墙上有一副滑雪板的图像,没有人会成功检测到滑雪板吗?如果有一张没有人或水的冲浪板图像,冲浪板仍然能够成功检测到吗?其他类别是否出现了其他虚假模式?您可以在Microsoft Research的“使用解释找到和修复虚假模式”中了解更多关于此场景和缓解策略的信息。
图15:对于这张墙上的滑雪板图片,一个目标检测模型错误地将冲浪板标识为最高概率的检测结果。冲浪板的D-Rise显著性图显示,最显著的像素只出现在其中一块滑雪板上,而没有集中在整个对象上,因此导致了错误的预测。
D-RISE显著性图还提供了对误检测的见解,其中各种对象的共现和位置可能是造成误检测的因素之一。这鼓励采取缓解措施来改善训练数据,例如包括具有不同对象位置和与其他对象的共现的图像。
图16:在这里,模型未能检测到棒球手套,除了个人和球类运动类别。通过查看棒球手套(对象3)检测的显著性图,可以看到高显著性像素集中在球上,这可能导致将其误检测为球类运动,而不是棒球手套,因为两个对象靠得很近。
将模型可解释性的见解转化为缓解策略
可视化解释可以揭示模型预测中的模式,这些模式可能引发公平性关注,例如,如果类别预测基于性别或肤色属性存在偏见(例如,将炊具与女性关联,将计算机与男性关联)。这可以为缓解措施(例如数据注释,改进数据收集实践)提供信息,以防止目标检测模型学习对象之间可能反映偏见的虚假相关性。关于前面的示例,模型无法检测没有人的滑雪板表明,该模型将受益于训练数据中只包含滑雪板而没有人的更多图像。与对象误检测相关的见解还鼓励改进训练数据的缓解措施,例如包括具有不同对象位置和与其他对象的共现性的图像。
结论
通过使用Azure Machine Learning负责任的AI仪表板对我们的MSCOCO目标检测模型的预测进行分析,我们可以看到仪表板提供了各种有价值的工具,以帮助机器学习专业人员进行错误调查,具体包括以下方面:
- 利用模型概览比较整个数据集和特征群体中的模型性能
- 通过数据浏览器深入研究错误模式,调查对象共现对类别预测的影响等潜在的公平性问题
- 通过D-RISE显著性图对模型的可解释性揭示模型行为中的偏见。
有了这些见解,用户能够进行明智决策,采取措施来减少在视觉数据集(图像、注释、元数据)中无意中影响目标检测模型的社会刻板印象和偏见。用户还可以将他们的发现与利益相关者共享,以引领模型审核流程并建立信任。计算机视觉已经融入了我们的日常生活,但是机器学习开发人员还有很多工作要做,以确保部署的模型是透明、公平、可追溯、包容和安全的,而负责任的AI目标检测仪表板是朝这个方向迈出的宝贵第一步。
我们的团队
负责任的AI目标检测仪表板是Microsoft Research、AI Platform和MAIDAP(Microsoft AI Development Acceleration Program)合作的成果。
Microsoft Research的Besmira Nushi和Jimmy Hall一直在领导研究调查,探索获得对机器学习失败进行深入理解和解释的新技术,与AI Platform的RAI工具团队合作。RAI工具团队由Ilya Matiach、Wenxin Wei、Jingya Chen、Ke Xu、Tong Yu、Lan Tang、Steve Sweetman和Mehrnoosh Sameki组成。他们热衷于民主化负责任的AI,并且在Azure Machine Learning生态系统中以开源的形式为社区提供各种工具,包括FairLearn、InterpretML Dashboard等。MAIDAP团队的Jacqueline Maureen、Natalie Isak、Kabir Walia、CJ Barberan和Advitya Gemawat也参与了将RAI目标检测仪表板投入生产。MAIDAP是一个为最近的大学毕业生提供轮岗机会的计划,与微软的各个团队合作,在大规模上开发各种机器学习功能。
本文最初发布在此处。经许可重新发布。
关于作者
Wenxin Wei是微软Azure AI的负责任AI产品经理。他在推动文本、图像和生成模型的RAI工具方面具有专业知识,致力于提供创新和道德的AI解决方案。通过与跨职能团队的合作,Wenxin确保开发透明、可解释和注重隐私的AI系统。他在统计学和AI方面的背景,结合数据驱动的方法,使他能够有效地弥合技术与用户需求之间的差距。