【深度学习】李宏毅2021/2022春深度学习课程笔记 - 机器学习的可解释性

news2024/11/24 17:49:51

文章目录

  • 一、为什么我们需要可解释性的机器学习
  • 二、可解释性的 vs 强大的(Powerful)
  • 三、可解释性机器学习的目标
  • 四、可解释性的机器学习
    • 4.1 Local Explanation 局部的解释
      • 4.1.1 特征重要性
      • 4.1.2 模型怎么处理数据的?
        • 4.1.2.1 可视化
        • 4.1.2.2 Probing 探针
    • 4.2 Global Explanation 全局的解释


一、为什么我们需要可解释性的机器学习

  • 一个AI就算能回答出正确的答案也不代表它很聪明

下面举个例子,从前有一匹神马,“会计算数学题”,比方说,你问他根号9等于多少,它就会跺3下马蹄。但是人们后来发现,神马只有在很多人围观的时候才能算出数学题,当没有很多人围观的时候,它就会乱跺马蹄。所以,其实神马也许并不是真的会解数学题,它只是学会了在很多人围观的时候察言观色,根据人们的反应推断出什么时候该停下跺马蹄,这样它才就会有胡萝卜吃。

在这里插入图片描述

  • 当机器学习用于决定银行是否要给一个人贷款的时候,根据法律,它必须给出一个理由
  • 当机器学习用在医疗诊断上时,人命关天,AI必须给出一个诊断的理由,而不能仅仅是一个黑箱
  • 当一个AI驱动的无人驾驶车进行急刹车后导致了后面的车追尾,那么这个无人驾驶车是否要负责任也要取决于它紧急刹车的理由。如果是因为前面有老太太在过马路,那么它急刹车就算对的;如果是无缘无故地急刹车,那这个AI就有问题了
  • 更重要地是,如果机器学习是具有可解释性的,那我们就可以根据这个解释的结果去修正改进AI模型

二、可解释性的 vs 强大的(Powerful)

  • 一些模型是具有较强的可解释性的,例如线性模型,但是它不是 Powerful 的
  • Deep 的 Model 很难被解释,但是它比线性模型更加 Powerful

决策树模型不仅具有较强的 Powerful ,而且还具有较强的可解释性

在这里插入图片描述

但是,决策树模型也可能会很复杂(如下图左所示),此时也不太好解释

另外,我们通常不会使用一颗决策树去进行预测,而是使用一个森林(多个决策树),此时,森林又变成不好解释的了

在这里插入图片描述


三、可解释性机器学习的目标

可以给出让人感觉到舒服的解释(不一定要准确)

如下图所示,哈佛大学的一项研究表明,当人们在排队打印东西时:

  • 如果一个人说“打扰一下,我有5张纸,可以让我先印吗”,此时接受率是60%
  • 如果一个人说“打扰一下,我有5张纸,可以让我先印吗,因为我有急事”,此时接受率暴涨到了94%
  • 如果一个人说“打扰一下,我有5张纸,可以让我先印吗,因为我需要先印”,此时接受率也高达93%

从上面的例子可以发现,有时候,不一定需要一个准确的理由才可以让人们接受,往往理由只需要能让人们感到舒服就可以了

所以,可解释性机器学习的目标就是可以给出让人们舒服的解释

在这里插入图片描述


四、可解释性的机器学习

可解释性的机器学习可分为两个解释方向,一个是局部的解释,另一个是全局的解释。

如下图所示:

  • 局部的解释(对决策的原因进行解释):告诉我们为什么它认为图片上的是一只猫
  • 全局的解释(总结决策的规律):告诉我们猫应该是什么样子的

在这里插入图片描述

4.1 Local Explanation 局部的解释

4.1.1 特征重要性

当你想知道模型决策的原因时,可以尝试找出输入特征中对模型决策影响最大的特征,然后进行分析

在这里插入图片描述

如下图所示,我们可以用一个灰色的方框作为干扰,在图片中进行滑动遍历,看看当灰色方框移动到什么位置的时候,模型识别出正确答案的概率比较低,哪里就是模型做出决策的主要依据。

比如下面的第一张图,灰色方框位于狗狗的脸处时,模型识别出狗狗的概率最低,位于其他位置时,模型仍然可以大概率识别出狗狗,所以模型是根据狗狗的脸去判断的,而不是看到了地板或、墙壁或者玩具球才觉得图片中的是狗,这就成为了一个解释!

在这里插入图片描述

还有一个办法,以图像为例,我们可以对某一个像素点做微小调整 a a a,设模型的输出变化为 b b b,那么这个像素的重要程度可以用 ∣ a b ∣ |\frac{a}{b}| ba 表示,如下图所示,表明模型是真的看到了狗、猴、牛才做出的判断。

在这里插入图片描述

下面看一个实际例子:数码宝贝和宝可梦的识别(二元分类)

在这里插入图片描述

大家可以试一下,根据下图的6个训练资料,能不能认出Testing Image是属于宝可梦还是数码宝贝(答案是很难识别出来!)

在这里插入图片描述

人类都很难识别,那么机器的识别结果如何呢,有人做了实验,实验结果是非常不可思议的,模型在测试集上的识别率居然高达98%!

在这里插入图片描述

所以,我们迫不及待地想知道,机器是如何识别的。

根据前面介绍的,我们可以绘制出每个测试图像的 Saliency Map ,看看机器是根据什么特征识别出宝可梦和数码宝贝的,结果很奇怪,机器认为重要的特征都完美地避开了宝可梦和数码宝贝的本体,也就是说,机器靠看背景就能很高正确率地识别出来。

在这里插入图片描述

这是为啥?原来是因为宝可梦数据集(PNG)和数码宝贝数据集(JPEG)的图片格式不一样,PNG图像的背景是黑色的。和JPEG有很大差别,所以机器靠着识别背景,就能得到很高的正确率

在这里插入图片描述

再举一个真实的例子,有一个识别马很准确的模型,当绘制出 Saliency Map 之后,才发现模型是根据左下角的一个网站标识认出的马(因为训练所用的数据集大部分有马的图片都是在该网站上找的)

在这里插入图片描述

当然,有时候绘制出来的 Saliency Map 可能会带有很多杂讯,如下图中间所示。我们可以为原始图像添加噪声然后用加了噪声后的图计算 Saliency Map;进行N次这样的操作就得到了 N 个 Saliency Map,最后再将他们求平均,得到最终的平滑后的 Saliency Map!

在这里插入图片描述

我们知道,鼻子长度是判断是否为大象的重要特征,在一定范围内时,鼻子越长,越有可能时大象,但当鼻子长度超出这个范围,那么它是大象的概率也不会增大了。在超出一定范围时,鼻子长度可能会被认为是不重要的特征,这是不符合常理的。

所以,光看一个特征的偏微分,也许不能判断它是否重要

一个解决的方案就是 Integrated Gradient(IG)

在这里插入图片描述

4.1.2 模型怎么处理数据的?

4.1.2.1 可视化

如下图所示,在语音辨识的例子里,在神经网络的每一层可能有100维的向量,维度太高不好可视化,我们可以将其降维(PCA或者其他方法),降到2维就好可视化了

在这里插入图片描述

从下面的例子中我们可以看出,经过了8层的网络之后,不同人说的相同内容的句子,模型可以把他们识别出来并聚在一起

在这里插入图片描述
在这里插入图片描述

4.1.2.2 Probing 探针

可视化观察模型学到了什么的方法很有局限性,因为我们在降维的过程中就已经损失掉了一些精度,并且肉眼观察也很难看出什么猫腻。

所以,就有了Probing 探针技术

我们可以创建一个独立的分类器,把网络某一层的输出作为它的训练资料,如果用该层的输出训练出来的分类器正确率很高,则说明该层具有很多有用的资讯

当然,有时候也要注意分类器的强度,正确率不高也可能是分类器太弱或者学习率没有调好等等原因导致的

在这里插入图片描述

当然,探针不一定要是分类器,如下图所示,探针是一个语音合成模型,它尝试吃被探测网络某一层的输出,目标是尽可能还原被探测网络最原始的输出。

显然,如果还原率越高,说明该层保留的咨询就越多。

有时候可能合成出来的语音准确的复现了源语音的内容,但是音色已经听不出来是谁了,说明被探测网络主要是通过提出语音内容的手段进行预测,这就为模型提供了一种解释

在这里插入图片描述

4.2 Global Explanation 全局的解释

如下图所示,假设已经有一个训练好的网络模型CNN

如果我们想知道这个CNN模型是怎么判断一张未知图片是否为猫的,那么可以找到它的任意一个卷积层(你想解释哪一层就找哪一层)

然后对于该卷积层的每一个 filter,都尝试找到一张图片 X,使得 X 经过 filter 之后得到的矩阵综合最大(可以用梯度上升法找这个X)

在这里插入图片描述

假设已经有了一个手写数字识别模型,用上面介绍的方法,我们可以得到下图所示的 X 集合,从中我们可以推测,如果将手写数字看为一些笔画的组合,那么模型卷积层的一些 filter 负责识别垂直的笔画,一些 filter 负责识别斜的笔画

在这里插入图片描述

但是,有些时候,按照这种方法提取出来的 X 很可能是人类看不出规律的,如下图所示

这不是令人惊讶的,因为我们学过恶意攻击就知道,给图片加上一点人类看不到的杂讯,就足以使得模型输出完全不同的结果,所以深层模型看到的东西往往是抽象、人类难以理解的

在这里插入图片描述
但是我想看到比较像数字的结果应该怎么办呢?一个简单粗暴的办法就是,对 X 施加一些限制,如下图所示,我们在最大化 sum(y) 的同时,也要最小化 X 中的像素总和,也就是用尽可能少的白点描述图像,这样有利于提高 X 的可解释性

在这里插入图片描述

当然,如果你想得到非常想数字的 X ,可以参考下面的论文,他调了很多参数,做了很多限制,才得到了下图的 X,可以明显看出丹顶鹤的轮廓

在这里插入图片描述
我们也可以借助生成式网络来生成 X

如下图所示,假设有一个生成式网络G,我们可以给一组可训练的参数z,传入G得到X,然后再将X传入图像分类器CNN模型,目标是图像分类器给出的置信分数越高越好,此时最优的z称为z*,对应的X可以通过G(z)得到。

在这里插入图片描述

下面是通过生成式网络生成的X的示意图,都非常形象逼真!

在这里插入图片描述

还有另外的方法如下图所示,我们可以用一个简单的容易解释的线性模型去模仿难以解释的深度模型,例如,我们给定同样的输入,目标是线性模型的输出和深度模型的输出越接近越好,以此训练出来的线性模型就会模仿深度模型,进而我们可以通过分析线性模型达到解释深度模型的效果

但是直接用线性模型模仿整个深度模型肯定是很难的,所以一般我们只用线性模型模仿深度模型的一部分,比如只对CNN的前两层进行模仿,这样就比较容易模仿,也容易解释

在这里插入图片描述

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

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

相关文章

分割回文串

1题目 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s "aab" 输出:[["a","…

糖化学试剂2199491-27-3,L-Glutamamide,激肽释放酶抑制剂肽,信息说明

试剂基团反应特点(Reagent group reaction characteristics): L-Glutamamide(糖化学试剂)激肽释放酶抑制剂肽,陕西新研博美生物科技有限公司提供多肽合成、多肽定制、同位素标记肽、生物素标记肽、荧光标记…

【七】设计模式~~~结构型模式~~~桥接模式(Java)

【学习难度:★★★☆☆,使用频率:★★★☆☆】 2.1. 模式动机 在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色&am…

Android 应用快捷(shortcut)功能的详解(一)

一、介绍 在现如今的应用中,一些开发者为了把核心的业务尽快的方便让使用者触摸到,想尽各种办法。比如前期的桌面插件,点击直接拉起核心业务。现在我们在主流的APP中,只要你长按桌面快捷键,发现弹出来的是不是单一的卸…

MapReduce实战案例(2)

案例二: MR实战之数据分类输出(自定义outputFormat) 2.1 项目准备 需求 现有一些原始日志需要做增强解析处理,流程: a) 从原始日志文件中读取数据b) 根据日志中的一个URL字段到外部知识库中获取信息增强到原始日志c) 如果成功增强,则输出…

提升日期处理效率:day.js 实战经验分享

theme: smartblue 本文简介 点赞 关注 收藏 学会了 本文主要介绍我在工作中使用 day.js 较多的方法。本文并不能代替 day.js 官方文档,日常工作中该查文档的还是要查文档。本文是写给刚接触 day.js 的工友,让这部分工友能更顺利上手 day.js。本文不涉…

SMESwin Unet:融合CNN和Transformer进行医学图像分割

文章目录 SMESwin Unet: Merging CNN and Transformer for Medical Image Segmentation摘要本文方法SuperpixelMCCT SMESwin Unet: Merging CNN and Transformer for Medical Image Segmentation 摘要 视觉Transformer 是自去年以来医学图像分割领域最受欢迎的新范式&#xf…

ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。解决方案

序 1、参考博文》①严格模式 - 知乎,②ts的tsconfig.son中文说明③TypeScript Number | 菜鸟教程 2、解决(ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。) 3、解决(函数内this是undefined 的问题&#xf…

汽车EDI:如何与Stellantis建立EDI连接?

Stellantis 是一家实力雄厚的汽车制造公司,由法国标致雪铁龙集团(PSA集团)和意大利菲亚特克莱斯勒汽车集团(FCA集团)合并而成,是世界上第四大汽车制造商,拥有包括标致、雪铁龙、菲亚特、克莱斯勒…

Hive学习---1、Hive入门、Hive 安装

1、Hive入门 1.1 什么是Hive 1、Hive简介 Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 2、Hive本质 Hive是一个Hadoop客户端,用于将HQL(Hive SQL…

【六一为孩子建模吧】沐风老师3DMAX建模雕刻插件SculptTool使用教程

3DMAX建模雕刻插件,该工具旨在使对角色和地形等有机模型进行小型编辑成为可能,而无需离开3dMax并启动如ZBrush等专用雕刻应用程序,就可以在3DMAX中直接对小型模型进行简单的雕刻建模处理,这样会方便很多。 【适用版本】 3dMax202…

【C++初阶】:string类

string 一string的基本用法二.迭代器1.基本使用2.语法糖3.反向迭代器4.const迭代器 三.容量四.插入和删除五.一个例题:解析协议六.读取空格七.一些其他函数 一string的基本用法 文档里 一般使用 二.迭代器 1.基本使用 string里重载了一种非常厉害的运算符[ ] 这个运…

【web安全】文件包含漏洞

目录 1.什么是文件包含漏洞 2.产生原因 3.文件包含的类型 3.1本地文件包含 3.2远程文件包含 4.攻击利用手法 4.1 file:协议 4.2 php://协议 ​4.3 zip://,bzip2://,zlib://协议 4.4 data://协议 4.5 PHP伪协议总结 5.如何防御? 6.常见系统的默认路径…

Tcl-11. 列表操作

Tcl 中的列表操作: 列表则是具有特殊解释的字符串。Tcl 中的列表操作和其它 Tcl 命令 一样具有相同的结构。 列表可应1用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命令字符串。 一、list 命令 list 命令用来创建列表…

城市内涝的解决措施,城市内涝积水监测预警系统解决方案

随着城市化进程的加快,城市土地面积不断扩大,原本吸收雨水的土地被水泥、沥青等硬质材料所取代,导致雨水无法迅速渗透和排泄,增加了城市内涝的风险。同时,气候变化带来的极端降雨事件频率增加,更加加剧了内…

mysql触发器监听数据投递中间件

目前市面上有许多的 CDC(Change Data Capture) 框架用于监听数据库的数据变动,例如:canal、Debezium、Maxwell等都是用来解析 binlog 日志实现事件的监听。但是有一个情况就是如果公司对 binlog 日志文件的权限管控的很严格&#…

传统ERP和SaaS ERP区别在哪里?

一、ERP和SaaS ERP概念 企业资源计划 (ERP) 系统是许多企业的主干,助力管理整个企业内的会计、采购流程、项目等。对于许多 IT 部门而言,ERP 系统通常意味着大型、昂贵且耗时的部署,并可能需要进行大量硬件或基础设施投资。然而,…

基于标准库函数的STM32的freertos的移植(三)——MDK工程搭建、配置与修改

1.打开MDK5软件,新建MDK工程,将新建工程文件保存在Project_Stm32f407/mdk文件夹下,并将工程命名为freertos_M4,选择MCU型号为STM32F407ZG,新建工程文件的步骤如下图所示: 图1 新建工程 图2 保存工程路径和工…

ChatGPT-AI地图

ChatGPT-AI地图 1、AI-对话 应用名称应用地址ChatGPThttps://chat.openai.com/NotionAINotion AIA.I. Data Sidekick:AI工具编写 SQL、文档等的速度提高10倍[AirOpsWritesonic:人工智能写作辅助工具Writesonic - Best AI Writer, Copywriting & Par…

《深入理解计算机系统(CSAPP)》第3章 程序的机器级表示 - 学习笔记

写在前面的话:此系列文章为笔者学习CSAPP时的个人笔记,分享出来与大家学习交流,目录大体与《深入理解计算机系统》书本一致。因是初次预习时写的笔记,在复习回看时发现部分内容存在一些小问题,因时间紧张来不及再次整理…