引言

随着深度学习的兴起,其在许多领域都能够取得远胜于传统方法的表现,如今许多行业都已经用到了深度学习以及神经网络来进行分析或者预测,解决实际的一些问题。但其可解释性差也一直是令人所诟病的一点,也就是我们常说的“黑箱问题”

例如:在识别一段话的语义情境时,计算机直接通过神经网络,给出这段话是积极的还是消极的,并且给出一个百分比作为置信度。但我们并不知道为什么计算机能够直接给出这样的结果,其内部的判断机制,都无法知晓。那么及时这个模型的准确率非常高,在实际使用时,我们也会为其画上一个大大的问号,使用时也会相对比较谨慎。

同样的问题还存在医学影像诊断上,如果不解释出模型判断的原因与机制,很难让医生与病人信服。

因此如何提出一种可解释性的神经网络,是如今一个非常重要的问题。而本篇博客主要介绍 Vaughan J, Sudjianto A, Brahimi E 等人在2018年的文章:Explainable neural networks based on additive index models


Explainable Neural Networks based on Additive Index Models(xNN)

网络结构

文章利用 additive index model 构建了一个可解释性神经网络。

我们先来看看 Additive Index Model,其本质就是一个线性可加模型:

文章的主要思想是利用上述的 additive index model,其中 x x x 为输入的特征变量,整体有 k k k 个子网络,每个子网络中都是一个输入变量的加权组合,之后再分别使用 k k k 个函数变化后,再次进行一次加权求和。

A modified version of the additive index model:

下图为上述公式的可视化展现,本质是一种特殊的全连接的神经网络,其中的 h 1 , h 2 , … , h k h_1,h_2,…,h_k h1​,h2​,…,hk​ 可以理解为一种带未知参数的激活函数(这里称为ridge functions),但每个子网络的激活函数均不一致,具体的函数类型需要我们自己进行给定(可为一次函数、二次函数等,注意不能定义多个一次函数,否则模型会存在可识别性的问题)。


网络的可解释性

下面说明网络如何体现可解释性,这里以一个例子来阐述,构建一个一次函数 f 1 f_1 f1​,二次函数 f 2 f_2 f2​,三次函数 f 3 f_3 f3​:


我们生成5个独立且服从 U ( − 1 , 1 ) U(-1,1) U(−1,1) 的随机变量 x 1 , … , x 5 x_1,…,x_5 x1​,…,x5​ ,而后可通过对三个函数进行求和,得到 y y y。其中, x 4 , x 5 x_4,x_5 x4​,x5​ 为噪声变量。下图为三个函数的图像:

采用五个子网络的模型对y进行拟合,文中添加了L1惩罚,使结果呈现下图的效果。下图左列展示每个子网络的拟合结果,右列表示针对每个子网络, x 1 , … , x 5 x_1,…,x_5 x1​,…,x5​ 每个变量所对应的权重大小。

由图可以看出,第一个展现出线性性质的子网络为 x 1 x_1 x1​ 贡献最大;第二个与二次函数相关的子网络与 x 2 x_2 x2​ 相关;而三次函数的子网络则对应着 x 3 x_3 x3​。由于 x 4 , x 5 x_4, x_5 x4​,x5​ 为噪声变量,因此后两个子网络为0,且没有变量有对应的权重。

下图则以变量为主,将每个子网络对变量的贡献进行可视化展现。从图中可以看出,变量 x 1 x_1 x1​ 只有子网络1中需要用到;变量 x 2 x_2 x2​ 对应子网络2;变量 x 3 x_3 x3​ 对应子网络3。

接着进行两个模拟实验:模拟1(多项式)与模拟2(指数函数与三角函数)来验证模型的优劣。


模拟实验

模拟1:

模拟2:

模拟1所需要的6个随机变量 x 1 , … , x 6 x_1,…,x_6 x1​,…,x6​ 相互独立且服从 U ( − 1 , 1 ) U(-1,1) U(−1,1) ;模拟1所需要的4个随机变量 x 1 , … , x 4 x_1,…,x_4 x1​,…,x4​ 相互独立且服从 U ( − 1 , 1 ) U(-1,1) U(−1,1)。

文中没有具体说明上述模拟实验中所使用的子网络结构,仅仅提及是从一些函数集合中进行选取。从图中可以看到, x 1 x_1 x1​ 对应的子网络9(图中第四行)趋势是类似线性(作者选定的展示范围,主观性较强), x 2 x_2 x2​ 与 x 5 x_5 x5​ 展示的函数图像均为开口向上的二次函数,且x_5的开口更大,这与实际情况中x_5前的系数更小相一致。而 x 3 x 4 x_3 x_4 x3​x4​ 这一交互项,模型通过使用两个子网络作差达到一样的效果(由于下式)。

通过此模拟可看出,对于真实模型是可加模型的情况,文章的方法能够真实还原出实际情形,具有很强的可解释性。同时,模型的预测准确率也很高。

而针对模拟2,模型的解释性就相对较弱,这是由于产生数据的模型不是可加的,这与最开始的模型假设已经有所不同,这里不再进行贴图展示,但预测准确性依旧比较高。

而后在此篇文章的基础上,有的文章(Enhancing Explainability of Neural Networks through Architecture Constraints)添加了一系列约束,使模型预测准确率更高,通过引入平滑与稀疏性,使可解释性更好。请参见下篇博客:可解释性神经网络——添加约束的xNN。


更多细节请参见原文:Explainable Neural Networks based on Additive Index Models

可解释性神经网络——1.xNN相关推荐

  1. 可解释性神经网络——3.一种新的可解释性神经网络GAMI-Net

    在之前,我们介绍了两种可解释性神经网络: 可解释性神经网络--1.xNN 可解释性神经网络--2.添加约束的xNN 这里我们再介绍另一种网络结构:GAMI-Net,对应的文章为 GAMI-Net: A ...

  2. 可解释性神经网络——2.添加约束的xNN

    在前面的文章中,我们介绍了 一种可解释性神经网络--xNN,而在本篇博客中,我们将要介绍一种针对前面文章的一种改进方法,使网络结构的可解释性更强,预测准确率更高. 文章名称:Enhancing Exp ...

  3. 可解释性神经网络(可视化):CAM/Grad-CAM pytorch相关代码

    目录 为什么神经网络要具有可解释性 前言 类激活图(CAM,class activation map),可视化 1.1 CAM的工作原理 2. 基于梯度的CAM(Grad-CAM) pytorch 实 ...

  4. 机器学习模型脆弱性和安全性的提议

    AI Conference in Beijing 最后机会:AI Conference 2019 北京站门票正在热销中,机不可失! 编者注:文中超链接如果不能访问可以点击"阅读原文" ...

  5. CNN 究竟“看”到了什么?曲线检测器是否为可解释性带来了出路?

    来源:AI科技评论 本文约10388字,建议阅读20分钟. 本文是一篇来自 OpenAI 研究团队的实验性论文,从数据.可视化.归因分析等方面全面分析了 CNN 神经元中的曲线检测机制. 随着深度学习 ...

  6. 首次摆脱对梯度的依赖,CMU等开源Score-CAM:基于置信分数的视觉可解释性

    本文介绍一篇被CVPRW2020接受的论文,主要关于一种基于置信分数的视觉可解释性方法.本文的亮点在于:在CAM系列方法的基础上,首次提出了一种新的gradient-free的权重表达方式. 本文首发 ...

  7. ACL 2019年度回顾:自然语言处理发展趋势

    大数据文摘出品 来源:mihaileric 编译:赵伟.邢畅.张秋玥 今年7月底,计算语言学协会年会(ACL)在风景优美的佛罗伦萨召开.会场设在了一座古老的Medici家族的城堡中. 作为NLP研究最 ...

  8. awgn信道中的噪声功率谱密度_从OFC2020看高级算法在光通信中的应用

    ​ 各种神经网络算法(XNN)在大数据机器学习和人工智能领域有着十分广泛的应用,这些高级算法在分类.优化.自学习这些方面的突出能力和其在互联网及自动控制领域的优异表现是毋庸置疑的,自然这些年也是火得一 ...

  9. 预告 | 4月22日,CVPR 2021论文分享会详细介绍,学术新星云集!

    国际计算机视觉与模式识别会议(CVPR)是人工智能领域最有学术影响力的顶级会议之一.根据 CVPR 2021 官方公布的论文收录结果,今年一共有 1663 篇论文被接收,接收率为 23.7%,相较于去 ...

最新文章

  1. c语言lookup用法,Vlookup函数最经典的12种用法 果断收藏!
  2. RT-Thread逐飞-智能车培训之MM32芯片应用
  3. 软件项目版本号的命名规则及格式
  4. SQLServer创建用户自定义数据库用户
  5. “解剖”HIGO徐易容:关于创业、后悔、喝酒和滑雪
  6. Tomcat - Tomcat套娃式架构与配置文件的对应关系解读
  7. python中的sys.argv是什么?(控制台参数传递、控制台传参)
  8. k8s示例:RS和Deployment
  9. 在SQL Server里如何进行页级别的恢复
  10. oracle 创建自增列及其oracle表的字段的子节点的查询
  11. 依存句法分析的任务以及形式化定义
  12. 什么是SSID/ESSID/BSSID
  13. 2021年中国磁感应芯片市场趋势报告、技术动态创新及2027年市场预测
  14. 移动设备分辨率(终于弄懂了为什么移动端设计稿总是640px和750px)
  15. 线性表的链式存储结构(C语言实现)
  16. bzoj2429: [HAOI2006]聪明的猴子(最小生成树)
  17. 易语言调用大漠Ocr文字识别游戏角色坐标
  18. UE4-如何做一个简单的TPS角色(二)-实现角色基础移动
  19. 投影机基本故障及解决方法
  20. matlab作时间轴有关的图

热门文章

  1. Win 7+CentOS 7双系统安装血泪史T_T
  2. 2020年总结与展望
  3. 啊哈C——学习4.10一起来找茬
  4. PyFlink 教程:PyFlink DataStream API - state timer
  5. 解读广告投放效果数据
  6. php主要技术指标,液晶显示器的主要技术指标不包括什么
  7. 12个超炫数据可视化工具
  8. 知道创宇技能表3.1
  9. EigenGame:将主成份分析(PCA)作为一个博弈游戏
  10. 使用AutoHotKey(AHK)自动将多行内容转成单行,并翻译,或获取中文拼音