深度泰勒分解是一种解释神经网络对个体预测的方法。它产生的结果是神经网络所表达的函数在输入变量上的分解。该方法可用作深度学习模型可视化工具,或作为复杂的分析方法的一部分。

众所周知,当前的深度学习分类器只提供对图像的预测,但没有提供与其相关的解释。一种可能的得到解释的方式是:确定哪些输入变量(这里是像素)对图像分类的结果有多大的贡献,特别是图像中的哪些像素与预测结果直接相关,然后将对应的贡献分配到像素热图上,再对热图可视化就可以得到一种解释。

图 1 “相关性/重要性”热度图提供一种可解释性

在图1的热图中,图像中的与预测的相关部分以红色突出显示。在这里,鲨鱼及其背鳍的轮廓被认为与分类最相关。因此至少在热图的意义下,深度学习模型不再是黑盒子。

用于分析神经网络预测的最简单技术是基于梯度的灵敏度分析。虽然基于梯度的灵敏度分析已经有很多变式,但是最根本的是,它针对给定数据点来计算神经网络输出函数相对于该数据点的梯度。

在上面的示例中,热图中像素的强弱会告诉我们图像中的哪些像素会使图像更多/更少地成为“鲨鱼”。但是,我们必须区分以下两个看起来很像但是有细微差别的问题:

“是什么让鲨鱼更像鲨鱼或更不像”

“是什么让鲨鱼成为鲨鱼”

对于第二个问题,基于梯度的敏感度分析并不擅长回答,然而分解技术可以很好地回答第二个问题。分解技术试图完整地解释预测,而不是仅仅测量差异效应。

下面的一个简单的二维示例(两个非线性函数的总和,每个函数对输入空间的一个变量进行操作)可以帮助我们理解灵敏度和分解这两种可解释性方法之间的差异。

图 2. 简单实例呈现梯度和分解两种可解释性的特点

蓝色区域具有高函数值,白色区域具有零函数值。矢量场表示输入空间的各个位置处的分析的每个分量的大小。

我们可以观察到灵敏度和分解导致质量上非常不同的可解释性结果:灵敏度分析在输入空间的象限之间产生不连续性:两个任意近的点可能具有明显不同的箭头方向。

其次,对于具有较大输出值的点和较小输出值的点梯度上可能没有区别,即使具有无穷小的输出值的点,分析也会产生相同的解释。而分解在输入域中无处不在:输入空间中的两个附近点总是有类似的解释(假设函数是连续的)。

此外,分解的大小(箭头的大小)与空间中给定点处的函数值成比例。

深度泰勒分解的idea非常简单:假定f是神经网络学到的预测函数,对其进行关于某个点x0的近似泰勒展开:

进一步假定x0是零点,那么这个近似的表达式变为:

最终,基于分解的可解释性把对应像素点的梯度和一次项一起当作是这个像素点对于输出的相关性。图3是深度泰勒分解的流程图。

图3. 深度泰勒分解:同时考虑梯度和差异项构造可解释性热度图

参考文献:

Montavon, G., Lapuschkin, S., Binder, A., Samek, W., & Müller, K. R. (2017). Explaining nonlinear classification decisions with deep taylor decomposition. Pattern Recognition65, 211-222.


CV细分方向交流群

52CV已经建立多个CV专业交流群,包括:目标跟踪、目标检测、语义分割、姿态估计、人脸识别检测、医学影像处理、超分辨率、神经架构搜索、GAN、强化学习等,扫码添加CV君拉你入群,

(请务必注明相关方向,比如:目标跟踪)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注最有料的我爱计算机视觉

深度学习可解释性!深度taylor分解相关推荐

  1. 深度学习可解释性问题如何解决?图灵奖得主Bengio有一个解

    作者 | Yoshua Bengio, Tristan Deleu等 译者 | 刘畅,编辑 | Just 出品 | AI科技大本营(ID:rgznai100) 自 2012 年以来,深度学习的发展有目 ...

  2. 深度学习可解释性研究(二): Understanding Black-box Predictions via Influence Functions(详细公式推导)

    该文章从鲁棒性的角度出发,对深度学习模型的可解释性进行分析,这应该是我目前为止读过最难的一篇文章,有很多公式需要推导理解,有很多细节需要慢慢品味,但文章确实是难得一见的好文章,我会尽可能把我自己的理解 ...

  3. 阅读笔记2: 深度学习可解释性学习:不要做事后解释

    选择可解释性高的机器学习模型, 而不是解释决策风险高的黑匣子模型 (原论文名:Stop Explaining Black Box Machine Learning Models for High St ...

  4. 深度学习可解释性分析-Grad-CAM

    概念介绍 CAM揭示了卷积神经网络分类模型中图像的空间特征与其类别权重之间的联系,然鹅,CAM只适用于模型中有全局平均池化层并且只有一个全连接层(即输出层)的情形,如ResNet,MobileNet等 ...

  5. 收集了100+论文的最新综述来了!基于深度学习的图像深度重建

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 今天给大家分享的论文是2020年最新的综述:A Survey on Deep Learning Arc ...

  6. 【深度学习】利用深度可分离卷积减小计算量及提升网络性能

    [深度学习]利用深度可分离卷积减小计算量及提升网络性能 文章目录 1 深度可分离卷积 2 一个深度可分离卷积层的代码示例(keras) 3 优势与创新3.1 Depthwise 过程3.2 Point ...

  7. 深度学习多模态融合_多模态深度学习:用深度学习的方式融合各种信息

    作者:Purvanshi Mehta 编译:ronghuaiyang 原文链接多模态深度学习:用深度学习的方式融合各种信息​mp.weixin.qq.com 导读 使用深度学习融合各种来源的信息. 多 ...

  8. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  9. 深度学习之美——深度学习基本介绍

    转载请注明出处 https://blog.csdn.net/nk1212582/article/details/81429482 一入侯门"深"似海,深度学习深几许 深度学习的巨大 ...

  10. 基于深度学习的影像深度重建综述

    基于深度学习的影像深度重建综述 论文名称:A Survey on Deep Learning Architectures for Image-based Depth Reconstruction 作者 ...

最新文章

  1. Python之日志处理(logging模块)
  2. 石墨烯区块链(5)智能合约
  3. list set map 各自实现类的区别以及它们的底层原理和实现(部分)
  4. 简易的CRM系统案例之SpringMVC+JSP+MySQL+hibernate框架版本
  5. ROS Kinectic 安装问题
  6. 转: Div与table的区别
  7. 火炬之光2找不到服务器,火炬之光2无法运行解决办法详细介绍
  8. 认证令牌_Java应用程序的简单令牌认证
  9. webstorm 使用别名(@)import @import 时异常的问题
  10. linux系统怎么装搜狗输入法_Ubuntu系统安装搜狗(sougou for linux)输入法详细教程...
  11. 数据不平衡问题及解决方案
  12. asp.net web开发步骤_如何在Windows上做Python开发?微软出了官方教程
  13. IE11上登陆oracle OEM时报:“证书错误,导航已阻止”且无继续浏览此网站(不推荐)的错误...
  14. 【AAC 系列一】Android 应用架构新时代来临!
  15. c语言基础知识大全 pdf,c语言基础知识点概述.pdf
  16. 透过爷爷的一生,浅析选择的重要性
  17. 【第4天】尊重是最有力的征服
  18. 阅兵式直播刺杀总统,无人机敢死队有多可怕
  19. Vue插件报错:Vue.js is detected on this page.
  20. java实现生产者消费者模式

热门文章

  1. 正则表达式必知必会学习笔记
  2. 从0开始详解 Johnson 全源最短路(P5905 【模板】Johnson 全源最短路)
  3. oracle重建服务器,Oracle重建控制文件的实例教程
  4. vue 后台重定向不成功_VUE 重定向不起效果了。
  5. html5 canvas移动位置,HTML5 Canvas 移动
  6. 拖拽功能 php,基于Vue实现拖拽功能
  7. oracle日期修改格式化,oracle日期格式化的实现
  8. python3.4安装vc_Python3.4 用 pip 安装lxml时出现 “Unable to find vcvarsall.bat ”?
  9. mysql管理数据 并上传至云端_怎样将MySQL数据库上传到服务器
  10. 脚本格式(写脚本完成后最好完成后做一些脚本格式初始化)