【计算机视觉】究竟谁能解决可解释性 AI?

简介: 准确性与可解释性是不能同时达到的吗?来自 IEEE 研究员 Cuntai Guan 这样认为:“许多机器决策仍然没有得到很好的理解”。大多数论文甚至提出在准确性和可解释性之间进行严格区分。

--------点击屏幕右侧或者屏幕底部“+订阅”,关注我,随时分享机器智能最新行业动态及技术干货----------

准确性与可解释性是不能同时达到的吗?来自 IEEE 研究员 Cuntai Guan 这样认为:“许多机器决策仍然没有得到很好的理解”。大多数论文甚至提出在准确性和可解释性之间进行严格区分。

神经网络是准确的,但无法解释;在计算机视觉中,决策树是可解释的,但不准确。可解释性 AI(XAI) 试图弥合这一分歧,但正如下面所解释的那样,“XAI 在不直接解释模型的情况下证明了决策的合理性”。

这意味着金融和医学等应用领域的从业者被迫陷入两难境地:选择一个无法解释的、准确的模型,还是一个不准确的、可解释的模型。

什么是“可解释的”?

定义计算机视觉的可解释性是一项挑战:解释像图像这样的高维输入的分类意味着什么?正如下面讨论的,两种流行的定义都涉及到显著图和决策树,但是这两种定义都有缺点。

可解释性 AI 不能解释什么

显著图:

许多 XAI 方法产生的热图被称为显著图,突出显示影响预测的重要输入像素。然而,显著图映射只关注输入,而忽略了解释模型如何决策。

image.png

拍摄原始图像

image.png

使用一种称为 Grad-CAM 的方法的显著图

image.png

和另一种使用引导反向传播方法的图像

显著图不能解释什么

为了说明为什么显著图不能完全解释模型如何预测,这里有一个例子:下列显著图是相同的,但是预测结果不同。

为什么?尽管两个显著图都突出显示了正确的对象,但有一个预测结果是不正确的。回答这个问题可以帮助改进模型,但是如下所示,显著图不能解释模型的决策过程。

image.png

模型预测结果为有耳朵的鸟

image.png

模型预测结果为有角的鸟

这些是使用 Caltech-UCSDBirds-200-2011 (或简称CUB 2011) 在 ResNet18 模型上运用 Grad-CAM 方法得到的结果。虽然显著图看起来非常相似,但是模型的预测结果不同。因此,显著图并不能解释模型是如何达到最终预测的。

决策树

另一种方法是用可解释的模型代替神经网络。深度学习之前,决策树是准确性和可解释性的黄金标准。下面演示决策树的可解释性,它通过将每个预测分解为一系列决策来工作。

image.png

与仅仅预测“大汉堡”或“华夫饼”不同,上面的决策树将输出一系列导致最终预测的决策。然后可以分别对这些中间决策进行验证或质疑。因此,经典的机器学习将这种模型称为“可解释的”。

但是,就准确性而言,决策树在图像分类数据集²上落后于神经网络达 40%。神经网络和决策树混合算法也表现不佳,甚至在数据集 CIFAR10 上无法匹配神经网络,该数据集有如下所示的 32x32微小图像。

image.png

该示例展现了 32x32 有多小。这是来自 CIFAR10 数据集的一个样本。

这种精度差距损害了可解释性:需要高精度、可解释的模型来解释高精度的神经网络。

进入神经支持的决策树

通过建立既可解释又准确的模型来改良这种错误的二分法。关键是将神经网络与决策树相结合,在使用神经网络进行低级决策时保留高级的可解释性。

如下所示,将这些模型称为神经支持的决策树(NBDTs),并证明它们能够在保持决策树可解释性的同时,与神经网络的准确性相匹配。

image.png

在此图中,每个节点都包含一个神经网络。该图仅突出显示了一个这样的节点和内部的神经网络。在神经支持的决策树中,通过决策树进行预测,以保留高级解释性。

但是,决策树中的每个节点都是做出低级决策的神经网络。上面的神经网络做出的“低级”决定是“有香肠”或“没有香肠”。

NBDT 与决策树一样可解释。

与当今的神经网络不同,NBDT 可以输出中间决策来进行预测。例如,给定图像,神经网络可以输出 Dog。但是,NBDT 可以同时输出Dog和Animal,Chordate, Carnivore(下图)。

image.png

在此图中,每个节点都包含一个神经网络。该图仅突出显示了一个这样的节点和内部的神经网络。在神经支持的决策树中,通过决策树进行预测,以保留高级解释性。

但是,决策树中的每个节点都是做出低级决策的神经网络。上面的神经网络做出的“低级”决定是“有香肠”或“没有香肠”。上面的照片是根据 Pexels 许可从 pexels.com 获取的。

NBDT 实现了神经网络的准确性。

与其他任何基于决策树的方法不同,NBDT 在 3 个图像分类数据集上都匹配神经网络精度(差异小于 1%)。 NBDT 还能在ImageNet上实现神经网络 2% 范围内波动的准确性,ImageNet 是拥有 120 万张 224x224 图像的最大图像分类数据集之一。

此外,NBDT 为可解释的模型设置了新的最新精度。 NBDT 的 ImageNet 准确度达到 75.30%,比基于决策树的最佳竞争方法高出整整 14%。为了准确地说明这种准确性的提高:对于不可解释的神经网络,类似的 14% 的增益花费了 3 年的研究时间。

神经支持的决策树可以解释什么,如何解释

个人预测的理由

最有见地的理由是根据该模型从未见过的对象。例如,考虑一个 NBDT (如下),并在斑马上进行推断。尽管此模型从未见过斑马,但下面显示的中间决策是正确的——斑马既是动物又是蹄类动物。单个预测的正确性的能力对于没见过的物体至关重要。

image.png

NBDT 甚至可以为没见过的物体做出准确的中间决策。在此,该模型在 CIFAR10 上进行了训练,并且之前从未见过斑马。尽管如此,NBDT 仍正确地将斑马识别为动物和蹄类动物。上面的照片是根据 Pexels 许可从 pexels.com 获取的。

模型行为的理由

此外,发现可以使用 NBDT 后,可解释性的准确性得到了提高。这与简介中的二分法背道而驰:NBDT 不仅具有准确性和可解释性,还使准确性和可解释性成为同一目标。

image.png

ResNet10层次结构

image.png

WideResNet层次结构

在前者中,“猫”,“青蛙”和“飞机”位于同一子树下。相比之下,WideResNet 层次结构在每一侧干净地分割了 Animals 和 Vehicles。上面的图片来自 CIFAR10 数据集。

例如,较低精度的ResNet⁶层次结构将青蛙,猫和飞机分组在一起的意义较小。这是“不太明智的”,因为很难找到所有三类共有的明显视觉特征。

相比之下,准确性更高的 WideResNet 层次结构更有意义,将 Animal 与 Vehicle 完全分开——因此,准确性越高,NBDT 的解释就越容易。

image.png

图源:unsplash

了解决策规则

使用低维表格数据时,决策树中的决策规则很容易解释,例如,如果盘子中有面包,那么选择右侧节点,如下所示。但是,决策规则对于像高维图像这样的输入而言并不那么直接。

image.png

此示例演示了如何使用低维表格数据轻松解释决策规则。右侧是几个项目的表格数据示例。左侧是根据此数据训练的决策树。

此时,决策规则(蓝色)是“是否有面包?”所有带有面包(橙色)的项目都发给最上面的节点,而所有没有面包(绿色)的项目都发给最下面的节点。该模型的决策规则不仅基于对象类型,而且还基于上下文、形状和颜色。

为了定量地解释决策规则,使用了称为 WordNet7 的现有层次;通过这种层次结构,可以找到类之间最具体的共享含义。例如,给定类别 Cat 和 Dog,WordNet 将提供哺乳动物。如下图所示,定量地验证了这些 WordNet 假设。

image.png

image.png

左子树(红色箭头)的 WordNet 假设是 Vehicle。右边(蓝色箭头)的 WordNet 假设是 Animal。为了定性地验证这些含义,针对没见过的物体类别对 NBDT 进行了测试:

查找训练期间未见过的图像。
根据假设,确定每个图像属于哪个节点。例如,大象是动物,所以*可以找到正确的子树。
现在,可以通过检查将多少图像传递给正确的节点来评估假设。例如,检查将多少张大象图像发送到“Animal”子树。

这些分类的正确性显示在右侧,没见过的动物(蓝色)和没见过的 Vehicle (红色)都显示较高的准确性。

请注意,在具有 10 个类别(即 CIFAR10)的小型数据集中,可以找到所有节点的 WordNet 假设。但是,在具有 1000 个类别的大型数据集(即 ImageNet)中,只能找到节点子集的 WordNet 假设。

一分钟内尝试 NBDT

现在有兴趣尝试 NBDT 吗?无需安装任何软件,就可以在线查看更多示例输出,甚至可以尝试 Web 示例。或者,使用命令行实用程序来运行推理(使用 pip installnbdt 安装)。下面对猫的图片进行推断。

nbdthttps://images.pexels.com/photos/126407/pexels-photo-126407.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=32 # this can also be a path to local image

这将输出类别预测和所有中间决策。

Prediction: cat // Decisions: animal (99.47%), chordate(99.20%), carnivore (99.42%), cat (99.86%)

也可以只用几行 Python 代码加载预训练的 NBDT。使用以下内容开始,支持几种神经网络和数据集。

from nbdt.model import HardNBDTfrom nbdt.models importwrn28_10_cifar10model = wrn28_10_cifar10()model = HardNBDT( pretrained=True, dataset='CIFAR10', arch='wrn28_10_cifar10', modelmodel=model)

作为参考,请参见上面运行的命令行工具的脚本。仅约 20 行就能进行转换输入和运行推理。

运作原理

神经支持决策树的训练和推理过程可以分为四个步骤。

image.png

训练 NBDT 分为两个阶段:首先,构建决策树的层次结构。其次,训练带有特殊损失项的神经网络。要进行推理,请将样本输入神经网络主干。最后,将最后一个完全连接的层作为决策规则序列运行。

  • 构建决策树的层次结构。此层次结构确定了 NBDT 必须在哪些类之间进行决策。将此层次结构称为归纳层次结构。
  • 此层次结构产生一个特定的损失函数,称为树监督损失 5。使用此新损失函数训练原始神经网络,无需任何修改。
  • 通过使样本输入神经网络主干来开始推理。主干是最终完全连接层之前的所有神经网络层。
  • 通过将最终的全连接层作为决策规则序列,称为嵌入式决策规则来完成推理。这些决策形成最终的预测。

可解释性 AI 不能完全解释神经网络如何实现预测:现有方法可以解释图像对模型预测的影响,但不能解释决策过程。决策树解决了这个问题,但其准确性还存在个挑战。

因此,将神经网络和决策树结合在一起。与采用相同混合设计的前代产品不同,神经支持决策树(NBDT)同时解决了以下问题:

  • 神经网络无法提供理由;
  • 决策树无法达到较高的准确性。

这为医学和金融等应用提供了一种新的准确、可解释的 NBDT。

image.png

原文链接:https://yqh.aliyun.com/detail/10024

目录
相关文章
|
1月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
1月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
AI计算机视觉笔记三十二:LPRNet车牌识别
LPRNet是一种基于Pytorch的高性能、轻量级车牌识别框架,适用于中国及其他国家的车牌识别。该网络无需对字符进行预分割,采用端到端的轻量化设计,结合了squeezenet和inception的思想。其创新点在于去除了RNN,仅使用CNN与CTC Loss,并通过特定的卷积模块提取上下文信息。环境配置包括使用CPU开发板和Autodl训练环境。训练和测试过程需搭建虚拟环境并安装相关依赖,执行训练和测试脚本时可能遇到若干错误,需相应调整代码以确保正确运行。使用官方模型可获得较高的识别准确率,自行训练时建议增加训练轮数以提升效果。
|
1月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
1月前
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。
|
1月前
|
传感器 人工智能 算法
AI计算机视觉笔记二十七:YOLOV8实现目标追踪
本文介绍了使用YOLOv8实现人员检测与追踪的方法。通过为每个人员分配唯一ID,实现持续追踪,并可统计人数,适用于小区或办公楼出入管理。首先解释了目标检测与追踪的区别,接着详细描述了使用匈牙利算法和卡尔曼滤波实现目标关联的过程。文章提供了基于IOU实现追踪的具体步骤,包括环境搭建、模型加载及追踪逻辑实现。通过示例代码展示了如何使用YOLOv8进行实时视频处理,并实现人员追踪功能。测试结果显示,该方法在实际场景中具有较好的应用潜力。
|
1月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
1月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
1月前
|
人工智能 监控 算法
AI计算机视觉笔记二十 八:基于YOLOv8实例分割的DeepSORT多目标跟踪
本文介绍了YOLOv8实例分割与DeepSORT视觉跟踪算法的结合应用,通过YOLOv8进行目标检测分割,并利用DeepSORT实现特征跟踪,在复杂环境中保持目标跟踪的准确性与稳定性。该技术广泛应用于安全监控、无人驾驶等领域。文章提供了环境搭建、代码下载及测试步骤,并附有详细代码示例。
|
1月前
|
机器学习/深度学习 人工智能 计算机视觉
AI计算机视觉笔记二十三:PP-Humanseg训练及onnxruntime部署
本文介绍了如何训练并使用PaddleSeg的人像分割模型PP-HumanSeg,将其导出为ONNX格式,并使用onnxruntime进行部署。首先在AutoDL服务器上搭建环境并安装所需库,接着下载数据与模型,完成模型训练、评估和预测。最后,通过paddle2onnx工具将模型转换为ONNX格式,并编写预测脚本验证转换后的模型效果。此过程适用于希望在不同平台上部署人像分割应用的开发者。

热门文章

最新文章