人工智能可解释性分析导论(初稿)

news2024/11/17 19:45:20

目录

思维导图

 

1.黑箱所带来的问题

2.从应用面论述为什么要进行可解释性分析

2.1可解释性分析指什么

2.2可解释性分析结合人工智能应用实例

2.3 可解释性分析的脑回路(以可视化为例如何)

 3.如何研究可解释性分析

3.1使用好解释的模型

 3.2传统机器学习常用的可解释性方法

 3.3从预测能力和可解释性两个角度对比常用模型

 3.4模型训练前解释方法和模型训练后解释方法(待补充)

4.深度学习可解释性分析(卷积神经网络为例)

4.1为什么人类无法理解深度学习在图像处理领域的应用

 4.2卷积神经网络可解释性方法

5.一些综述

参考文献


思维导图

1.黑箱所带来的问题

 上图对于特征的贡献度:如下图左坦克,我们想知道,到底坦克那一部分的特征,对计算机识别有更大的贡献。

 对于指鹿为马:如下图右所示对熊猫添加了噪声之后,从人类角度看还是熊猫,但计算机竟然识别成长臂猿,如果无法理解模型,其安全性值得商榷。 

 再进一步:我们看一下今年爆火的AI绘画,如下图所示,让AI画一条在水中的三文鱼,但它画了了三文鱼的刺身,这说明它并不是真的理解三文鱼是什么,它知道到三文鱼是人类的食物,再让AI画一张握手的图,下图所示的确是握手,但并不是我们人类所理解的握手,如果一直使用这种,知其然,却不知其所以然的模型,长远来看,必将受其乱。这也是人工智能可解释性分析的必要性。

 引述一下:一个不能被理解信任的模型,怎么能被放心的应用于医疗,无人驾驶等领域,黑箱模型即使能够被广泛应用,但从根本上会有很大隐患。

在生物领域的应用:像在蛋白质结构上,这往往需要足够大的模型,但人类如果人类无法理解这个过程,如何信任得到的分子结构毫无问题,即便这个结构被证实可用。

2.从应用面论述为什么要进行可解释性分析

2.1可解释性分析指什么

对于目标检测:下图是对YOLO算法进行可解释性分析,方法上就是分析出,YOLO算法到底通过框中那些特征(进行分类。 

对于自然语言处理:依据被判定为负面语言的句子,模型到底从那些字或者语言逻辑去判断的。

对于推荐系统:抖音给你推荐的视频,淘宝给你推荐的商品,知乎给你推荐的文章,这些模型背后判断的逻辑到底是什么。

2.2可解释性分析结合人工智能应用实例

教人类学习工艺参数:让人工智能教人类学习,德国一个激光加工企业博士,发现利用激光加工过程中,有些参数会发生变化,这会影响加工质量,而想要得到这些参数,必须停机才可以,但停机的成本又太高,于是他用神经网络训练了可以实时预测参数的模型,准确率很高,然后他用可解释性分析,可视化的分析了如何获得这个参数,工人根据可视化过程去学习推算参数,竟然真的提高了很多,这个方法很简单,但这个应用场景下却从未有人成果尝试,于是这个博士,横扫了改领域的论文。

 教人类下围棋:众所周知,AI在围棋领域已经封神,在用AI教人类下棋的过程中,人们发现AI会下一些无法理解但又能赢的棋,如果能理解AI的思考方式,对人类的提高也是非常关键的。

教人类画画:像用AI教人类画画,如果想让他成为一个好老师,我们就必须理解它的脑回路,比方说,你想提升画画水平,将自己的画作传给AI之后,目前的AI只能直接帮你修改,但它不能给你说明白,为什么这样修改更好,所以只有对模型进行可解释性分析,我们才能理解它。

细粒度图像分类:细粒度图像分类,比方说荔枝有很多种类,如何将荔枝按照不同种类进行分类,这就是细粒度图像分类。对于可解性分析的应用,我们想知道计算机去进行细粒度图像分类时,依据的是什么,这是一个很有趣的工程。

医学应用:如下图对肺炎的辨识,人工智能可以直接用色彩表示它认为可能出现问题的区域,这对医学新人水平的提高,甚至说病人的理解有很大帮助,但如果没有这个可视化的解释,人们只能到得到一个你生没生病的结果。

损伤检测应用( layerCAM):这里应用到了损伤检测,可以明显看到颜色深浅标注不一,这就是可视化解释性分析的应用。 这可以说用图像分类问题,解决了图像定位问题,本身分类对于有没有损失问题,回答的是有或者没有的答案,而这里直接把损伤位置都做了标注,可见可视化解释的用处。有没有可能用这个方法,解决一些情况下,数据集难以标注的问题,对数据集进行标注,但问题是既然能进行标注,说明已经可以识别,那标注的意义又在哪,需要思考。

2.3 可解释性分析的脑回路(以可视化为例如何)

识别螺丝刀:如下图所示,识别一个螺丝刀,红色区域表示识别贡献最大区域,这符合人类的理解。 

识别建筑:从下图可以看出,AI识别福建土楼,是因为它有洞状结构,识别吊脚楼是因为它有棍状结构。这就是在告诉人类它的脑回路。

 3.如何研究可解释性分析

3.1使用好解释的模型

例如:KNN,逻辑回归,线性回归。贝叶斯,树模型是最具解释性的。

树模型:下图是一个判断是否人得病的模型,每一个节点都很清晰。是因为年龄,生活习惯,日常作息,还是其他原因,清清楚楚。

3.2传统机器学习常用的可解释性方法

算法自带可视化:像上面图像分类中的色彩标注。

算法自带的特征权重:比方说随机森林,能够直观得出每一个特征对最后结果的重要程度的权重。

置换重要度:就是改变一些特征的位置,看其对结果的影响。

PDP,ICE图:如下图右所示,就是通过曲线表示特征对结果的影响。PDP比方说年龄这一个特征对心脏病的影响,ICE比方说,年龄和生活作息等多个特征对心脏病的影响。

shapley:直接列出每一个特征对结果的影响程度。

LIME:就是把复杂问题简单化,比方说,一个高维数据集,是用深度神经网络,非线性曲线拟合,这很难解释,但我们可以选取一些局部数据,用线性模型解释,进而解释整个模型。

3.3从预测能力和可解释性两个角度对比常用模型

从图中可以看出,NN神经网络模型预测效果最好,但可解释性也最差,线性回归模型,可解释性最好,但预测效果最差,LIME的思路就是,用可解性最好的模型,解释可解释最差的模型。

3.4模型训练前解释方法和模型训练后解释方法(待补充)

4.深度学习可解释性分析(卷积神经网络为例)

4.1为什么人类无法理解深度学习在图像处理领域的应用

从下图可以很明显看出,从第3.4层开始人类已经无法理解计算机提取的特征了。

4.2卷积神经网络可解释性方法

 可视化卷积核和特征图:就是得到卷积核参数,和其对应的特征图,卷积核又分浅层,中层,高层,不同层提取的特征不同。AlexNet这篇论文第一次对图像处理进行了可视化。但也有个问题,对于深层的网络,所表示出来的特征完全无法理解,可能因为维度过高,不能用RGB形式表示出来,让人类理解。

 遮挡,缩放,平移,旋转:如下图所示对狗眼睛进行遮挡,如果对结果有影响,就证明网络学习到了眼睛的特征。

 找到能使某个神经元激活的原图像素,或者小图(就是反卷积):下图1表示神经元,2就是原图像素,说明该神经元关注该条纹特征。

 基于热力图(CAM)的可视化:如下图所示,就是用颜色标注网络关注的特征部分,

         进一步阐述为什么,CAM可以让我们理解网络的脑回路:比方说下图右,1表示需要识别的图,如果基于2的特征,识别为火山,如果基于3的特征,识别为后视镜。

         在进一步理解GAM:如下图所示,第二张,第三张图都认为第一张图是医生,但很明显它们依据的特征不同。

语义编码降维可视化:就是网络最后一层,全连接层输出的数据带有输入的语义特征,对其进行降维让人类理解。下图就是对三维建筑风格进行降维处理,在二维空间内展示其区别。

 生成满足某些要求的图像:大致意思是,强化图中某个类别的像素,让该像素的特征更加明显。

 对抗样本

5.一些综述

参考文献

1.机器学习可解释性一(LIME)_可解释机器学习_chj65的博客-CSDN博客

2.【精读AI论文】LIME机器学习可解释性分析_哔哩哔哩_bilibili

3.(重点)https://github.com/TommyZihao/zihao_course/blob/main/XAI 

4.(重点)https://github.com/TommyZihao/TommyZihao

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

antDv table组件滚动截图方法的实现

在开发中经常遇到table内容过多产生滚动的场景,正常情况下不产生滚动进行截图就很好实现,一旦产生滚动就会变得有点棘手。 下面分两种场景阐述解决的方法过程 场景一:右侧不固定列的情况 场景二:右侧固定列的情况 场景一 打开…

理解树的结构

树的重要性 二分查找算法、几种核心的排序算法以及图算法都与树有非常密切的关系。有句话锁,“没学会树,算法相当于白学”,可见,树在算法中的地位。 树的考察方面 层次遍历以及拓展问题 前后序遍历与拓展问题 中序遍历与搜索树问…

数据结构入门指南:带头双向循环链表

目录 文章目录 前言 1.结构与优势 2.链表实现 2.1 定义链表 2.2 创建头节点 2.3 尾插 2.4 输出链表 2.5 尾删 2.6 头插 2.7头删 2.8 节点个数 2.9 查找 2.10 位置插入 2.11 位置删除 2.12 销毁链表 3. 源码 总结 前言 链表一共有8种结构,但最常用的就是无头单…

Docker网络模型使用详解(2)Docker网络模式

安装Docker时会自动创建3个网络,可以使用docker network ls命令列出这些网络。 [rootlocalhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE ebcfad6f4255 bridge bridge local b881c67f8813 compose_lnmp_lnmp…

Vue2升级Vue3报错:Right-hand side of ‘instanceof‘ is not an object

属性prop设置多类型报错: Vue2 写法:支持用竖线隔开。Vue2 Prop expandLevel: {type: Number | String,default: 1, }, Vue3 写法:改为数组,不支持竖线隔开。Vue3 Prop expandLevel: {type: [Number, String],default: 1, }

二次元美少女【InsCode Stable Diffusion 美图活动一期】

目录 Stable Diffusion 模型在线使用地址 一、背景介绍 二、模板介绍: 三、操作步骤 1.在线运行地址 2.进入在线运行网址,并点击运行及使用 3.购买GPU并创建项目 4.打开工作台并选择算力资源 5.点击下图中所示框框 6.进入Stable Diffusion WebU…

VR内容研发公司 | VR流感病毒实验虚拟现实课件

由广州华锐互动开发的《VR流感病毒实验虚拟现实课件》是一种新型的教学模式,可以为学生提供更加真实和直观的流感病毒分离鉴定实验操作体验,从而提高学生的实验技能和工作效率。 《VR流感病毒实验虚拟现实课件》涉及了生物安全二级实验室(BSL-2)和流感病…

.jpeg转.jpg,cv2.resize()

from PIL import Image import os # 定义原文件夹路径和目标文件夹路径 source_folder "path/to/source/folder" target_folder "path/to/target/folder" # 遍历原文件夹中的所有图片文件 for filename in os.listdir(source_folder): if fil…

【iOS安全】安装Filza || 安装Flexdecrypt

(成功)使用Cydia安装Filza 直接在Cydia里搜索filza,安装“Filza File Manager” 使用Filza安装flexdecrypt 参考: https://github.com/JohnCoates/flexdecrypt 下载flexdecrypt.deb到手机: https://github.com/JohnC…

猎聘:2023届高校毕业生就业数据报告(附下载

关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 较 2022 届应届生职位同比增长较明显的TOP5 一级行业为能源/化工/环保、医疗健康、汽车、机械/制造、电子/通信/半导体,其中能源/化工/环保同比增长为 42.30%,增速最高.在全世…

mybatisplus实现自动填充 时间

mybatisplus实现自动填充功能——自动填充时间 数据库表中的字段 创建时间 (createTime)更新时间 (updateTime) 每次 增删改查的时候,需要通过对Entity的字段(createTime,updateTime)进行set设置,但是,每…

Systemui的介绍以及与普通应用的差异

一.SystemUI的介绍 简介 SystemUI是Android操作系统的一个关键组件,主要负责管理和提供用户界面的核心元素,如状态栏、导航栏和锁屏界面等。从下面两点出发了解SystemUI的特性: 一下就是systemui的部分界面,还包括锁屏界面&…

Android Tencent Shadow 插件接入指南

Android Tencent Shadow 插件接入指南 插件化简述一、clone 仓库二、编译运行官方demo三、发布Shadow到我们本地仓库3.1、安装Nexus 3.x版本3.2、修改发布配置3.3、发布仓库3.4、引用仓库包 四、编写我们自己的代码4.1、新建项目导入maven等共同配置4.1.1、导入buildScript4.1.…

NsPack3.x脱壳手记

发现是NsPack3.x的壳 使用ESP守恒快速脱壳 F9遇到popfd后下面的jmp就是通往OEP了 打开LordPE准备转储映像, 首先调整下ImageSize, 接着dump full 接着不要退出目前的调试, 打开Scylla修复IAT, 把OEP的VA地址输入到OEP处, 接着按照如下图所示步骤 完成后如下, 但NsPack3.x…

uni-app、H5实现瀑布流效果封装,列可以自定义

文章目录 前言一、效果二、使用代码三、核心代码总结前言 最近做项目需要实现uni-app、H5实现瀑布流效果封装,网上搜索有很多的例子,但是代码都是不够完整的,下面来封装一个uni-app、H5都能用的代码。在小程序中,一个个item渲染可能出现问题,也通过加锁来解决问题。 一、…

小红书卖虚拟学习资料操作方法超详细讲解,不怕你学不会

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 谈到赚钱,许多人认为他们赚不到钱,因为他们缺乏赚钱的能力。 然而&a…

26 MFC序列号函数

文章目录 Serialize对于存储文件的序列化 Serialize Serialize 是一个在 MFC (Microsoft Foundation Classes) 中常用的函数或概念。它用于将对象的数据进行序列化和反序列化,便于在不同的场景中保存、传输和恢复对象的状态。 在 MFC 中,Serialize 函数…

解决vue3+echarts关于无法获取dom宽度和高度的问题

解决vue3echarts关于无法获取dom宽度和高度的问题 近期写vue3项目,很多地方都用到了echarts,刚开始写的时候,发现图一直出不来,报错/报警内容一般有两项: Uncaught (in promise) Error: Initialize failed: invalid …

安卓证书生成教程

1.下载安装JDK文件(如已安装请跳过) 根据电脑系统版本下载JDK版本文件 下载地址:[https://www.oracle.com/java/technologies/downloads/](https://www.oracle.com/java/technologies/downloads/) 如果电脑上安装过JDK文件可以跳过2.生成密钥…

electron+vue3全家桶+vite项目搭建【25】使用electron-updater自动更新应用

文章目录 引入实现效果实现步骤引入依赖配置electron-buidler文件封装版本升级工具类主进程调用版本更新校验渲染进程封装方法调用 测试版本更新 引入 demo项目地址 electron-updater官网 我们不可能每次发布新的版本都让用户去手动下载安装最新的包,而是应用可以…