AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)
AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)
导言
本文作为AI可解释性系列的第二部分,旨在以汉语整理并阅读归因方法(Attribution)相关的论文,并持续更新。
归因方法主要研究如何解释深度神经网络的决策过程,通过识别输入特征对模型输出的贡献程度,对模型的决策过程输出为人类可以理解的图像或者量化指标,帮助我们理解模型的决策依据。
Saliency Maps-based的归因方法给定一个大小为CxWxH的图像输入,通过反向传播等方法找出原图每一个像素在模型最后的输出中贡献的比重,最后输出一张和原图大小为CxWxH一样的Saliency Maps
Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps(Apr 2014)
作者:Karen Simonyan, Andrea Vedaldi, Andrew Zisserman
简介
本文乃是Saliency Maps-based归因方法领域的奠基性工作之一,提出了三种可视化的模型解释方法:
- 类别模型可视化(Class Model Visualization):通过优化输入图像使得特定类别的分类分数最大化,从而生成能代表该类别的合成图像。
- 指定图片的类别显著可视化(Image-Specific Class Saliency Visualisation):通过计算类别得分对输入图像的梯度,生成显示每个像素对分类决策重要性的热力图。(Saliency Map归因方法)
- 反卷积的特征可视化(Feature Visualization):使用反卷积网络将深层特征映射回输入空间,以可视化网络在不同层级学到的特征。
相关工作
“activation maximization”
作者受到了文章Visualizing Higher-Layer Features of a Deep Network的启发,该篇文章给出了一个对神经网络中某一个具体神经元的可视化方法称为“activation maximization”。其原理非常简单,从已经训练好的网络抽出一个神经元,然后通过梯度下降的方法,找到一个输入图像 \(x\) 使得该神经元的激活值最大化:
\]
其中 \(h_{ij}(\theta, x)\) 是第 \(i\) 层第 \(j\) 个神经元的激活值,\(\theta\) 是网络参数(冻结),\(\rho\) 是约束输入图像范数的常数。通过这种方式不断优化\(x\),我们可以得到一个能够最大程度激活该神经元的图像,从而理解这个神经元学到了什么样的特征。通过实验可以看到这种方法确实解释了神经元(左侧),并且通过九种随机初始化验证这种解释是收敛的(右侧)。

类别模型可视化(Class Model Visualization)
作者将"activation maximization"的思想扩展到了类别可视化上。对于一个已经训练好的分类卷积网络,我们可以通过优化输入图像来最大化某个类别的分类分数,从而生成能代表该类别的合成图像。
具体来说,给定一个类别c,我们要找到一个输入图像x使得该类别的分类分数Sc(x)最大化:
\]
其中Sc(x)是类别c的分类分数,λ是正则化系数。通过梯度上升的方法不断优化x,最终得到的图像x*就是该类别的可视化结果。
值得注意的是:
- 初始化图像是全零的图像(因为用于训练的训练集是已经中心化的)
- \(S_c\)是\(c\)类未经归一化的分类分数,而非softmax分数,以降低其他类别的干扰
作者展示了通过在ILSVRC-2013上训练的卷积神经网络学习到的类别外观模型。注意到在单一图像中捕捉到的类别外观的不同方面。

特定图片类别的显著性可视化(Image-Specific Class Saliency Visualisation)
首先我们定义是如何查询给定图片对于某个类别的空间贡献:
In this section we describe how a classification ConvNet can be queried about the spatial support of a particular class in a given image.
给定图片\(I_0\),类别\(c\),以及一个分类卷积网络,其分类分数的函数为\(S_c(I)\),我们希望衡量\(I_0\)中每个像素对分类分数\(S_c(I)\)的贡献。
我们首先给出一个线性例子来理解显著性可视化的原理。假设我们有一个简单的线性分类器,其分类分数可以表示为:
\]
其中\(w_c\)是类别\(c\)的权重向量,\(b_c\)是偏置项。在这种情况下,输入\(I\)中每个像素对于输出的重要程度可以直接由权重向量\(w_c\)的对应分量的绝对值来衡量。这是因为每个输入像素都与权重向量的对应分量进行线性组合,权重的绝对值越大,说明该像素对最终分类分数的影响越大。
这意味着权重的绝对值直接反映了每个输入维度对分类决策的重要性。这个简单的线性例子帮助我们理解了在深度神经网络中使用梯度来衡量输入特征重要性的基本原理。
接下来,我们将模型换成深层的卷积网络,其分类分数\(S_c(I)\)将变为高度非线性的函数。但是给定\(I_0\),我们可以通过一阶泰勒近似来线性化这个函数,得到:
\]
其中\(w\)是分类分数\(S_c(I)\)在\(I_0\)点的导数。
\]
除此以外,\(w= \frac{\partial S_c}{\partial I}|_{I_0}\)还可以被解释为在这个方向上扰动样本使其对分类分数的影响最大,文章How to Explain Individual Classification Decisions在贝叶斯分类器中采用过类似的方法。
Another interpretation of computing the image-specific class saliency using the class score derivative (4) is that the magnitude of the derivative indicates which pixels need to be changed the least to affect the class score the most. ... We note that a similar technique has been previously applied by [1] in the context of Bayesian classification.
作者展示了针对ILSVRC-2013测试图像中预测的Top-1类别生成的特定图像类别显著性图,这些图通过对分类卷积网络进行一次反向传播提取。

AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)的更多相关文章
- Saliency maps
目录 问题 细节 变量 扩展 代码 Deep Inside Convolutional Networks: Visualising Image Classification Models and Sal ...
- win10安装PS和AI后报代码为16的错误解决方法
win10安装PS和AI后报代码为16的错误解决方法 一.总结 一句话总结:修改兼容性和以管理员方式运行就可以了 修改兼容性 以管理员身份运行 二.PS和AI安装后报代码为16的错误解决方法介绍(转) ...
- Adobe Illustrator CS6 界面文字按钮太小,高分屏win10PS/AI等软件界面字太小解决方法
Adobe Illustrator CS6 界面文字按钮太小,高分屏win10PS/AI等软件界面字太小解决方法 Adobe App Scaling on High DPI Displays (FIX ...
- 星际争霸2 AI开发(持续更新)
准备 我的环境是python3.6,sc2包0.11.1 机器学习包下载链接:pysc2 地图下载链接maps pysc2是DeepMind开发的星际争霸Ⅱ学习环境. 它是封装星际争霸Ⅱ机器学习API ...
- LeetCode: Spiral Matrix II 解题报告-三种方法解决旋转矩阵问题
Spiral Matrix IIGiven an integer n, generate a square matrix filled with elements from 1 to n2 in sp ...
- 白嫖百度 Tesla V100 笔记(在 AI Studio 上使用 tensorflow 和 pytorch 的方法)
登陆百度 AI Studio 并按照教程创建新项目 启动项目并进入控制台 下载 Anaconda3/Miniconda3 安装脚本 安装在 ~/work/*conda3 目录 输入命令 source ...
- Salesforce Integration 概览(六) UI Update Based on Data Changes(UI自动更新基于数据变更)
Salesforce用户界面必须由于Salesforce数据的更改而自动更新.这个场景其实在我所经历的项目中用到的不是特别多,因为客户可能直接点击刷新按钮就直接看到了最新的数据,而不是那种一直不刷新然 ...
- leetCode 90.Subsets II(子集II) 解题思路和方法
Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- leetCode 82.Remove Duplicates from Sorted List II (删除排序链表的反复II) 解题思路和方法
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
随机推荐
- [车联网/以太网] SOME/IP 协议
概述: SOME/IP 协议 车载以太网协议栈总共可划分为5层: 物理层 数据链路层 网络层 传输层 应用层 其中本文所要描述的SOME/IP就是一种应用层协议. SOME/IP协议内容按照AUTOS ...
- Codeforces Round 957 (Div. 3)
题目链接:Codeforces Round 957 (Div. 3) 总结:E不懂,F差一个set去重 A. Only Pluses fag:枚举 B. Angry Monk fag:模拟 Solut ...
- win10 linux子系统的一些想法
什么是linux子系统 具体的概念网上很多,作为个技术人简单粗暴来说就是微软脑子瓦特,突然爱上了linux, 可以在win10安装linux子系统 子系统不同于虚拟机,但是其优点是安装很快,对于新手和 ...
- SQL SERVER日常运维(一)
以下语句请使用SA用户或者有DBA权限的用户进行执行,否则可能会出现权限不足报错 一.基础命令 查看当前数据库的版本 SELECT @@VERSION; 查看服务器部分特殊信息 select SERV ...
- split 命令分割超大日志文件
split 命令分割超大日志文件 split -l 1000000 jmeter1432.log part_ 在Windows系统中也可以通过gitbash执行此命令 运行结果:
- Java代码覆盖率工具之Jacoco
Java代码覆盖率工具之Jacoco JaCoCo(Java Code Coverage)是一款面向Java语言的开源代码覆盖率工具,以其小型化和轻量化著称.它能够提供代码在测试过程中的覆盖率信息,帮 ...
- Q:在PostgreSQL中跟踪和分析查询日志
在PostgreSQL中,跟踪和分析查询日志是排查性能瓶颈的重要步骤. 通过查看和分析查询日志,我们可以了解哪些查询在执行时遇到了问题,例如执行时间过长.资源消耗过大等. 以下是一些建议和步骤,帮助你 ...
- 最新demo版|如何0-1开发支付宝小程序之如何调试小程序(二)
上一篇跟大家详细的讲了下开发支付宝小程序前所需要做准备事项,安装了支付宝小程序的开发工具.那么今天就来详细聊一下在小程序开发工具中,我们需要如何调试小程序. 支付宝小程序的调试分为三种,分别是「模拟器 ...
- 八米云高收益PCDN-N1设备重要通知
八米云单价: 电联2400元/G/月 移动1500元/G/月 新上机设备[必须使用新镜像]上机!否则无业务下发! 再次强调!如6.18日后台镜像更新后–还在使用旧镜像新上机,请务必于[6月30日]前用 ...
- SpringMVC - 谈谈你对SpringMVC的理解
谈谈你对 Spring MVC 的理解? 普通人:Spring MVC 它是一个MVC框架吧,就是,我们可以使用Spring MVC来开发Web应用...呃 它是基于Servlet上的一个扩展,就是它 ...