大数跨境
0
0

ICLR 2021|自解释神经网络,直接写入了特征的重要值:Shapley Explanation Networks

ICLR 2021|自解释神经网络,直接写入了特征的重要值:Shapley Explanation Networks 极市平台
2021-01-21
1
导读:本文介绍了作者最近被ICLR2021录用的一篇关于自解释神经网络的文章。
↑ 点击蓝字 关注极市平台

作者丨王睿@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/345265507
编辑丨极市平台

极市导读

 

本文介绍了作者最近被ICLR2021录用的一篇关于自解释神经网络的文章,我们通过将Shapley值直接作为神经网络的中层特征表达,有效地缓解了Shapley值计算量巨大的问题,同时也带来了几个新的功能。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

TL;DR:我们将特征的重要值直接写进神经网络,作为层间特征,这样的神经网络模型有了新的功能:1. 层间特征重要值解释(因此模型测试时也可做instance-based的剪枝),2. 常数复杂度的Shapley值逼近,3. (因而能够)根据Shapley值对模型进行改进。

来介绍一下自己本科在普渡大学做的工作,最近也被ICLR 2021录用了:

题目:Shapley Explanation Networks

论文:Shapley Explanation Networks

https://openreview.net/forum?id=vsU0efpivw

代码:RuiWang1998/ShapleyExplanationNetworks

https://github.com/RuiWang1998/ShapleyExplanationNetworks

PC评价:

the paper yields an innovation to a widely-used approach to one of the most pressing current research problems.

简介

深度神经网络的可解释性是一个非常重要的问题,而知道各个特征的重要性是解决这个问题过程中非常重要的一环。Shapley值给了一个理论基础扎实的重要性定义,但是Shapley值的计算一直是一个很大的问题(指数级复杂度),这也带来了很大的限制。我们通过将Shapley值直接作为神经网络的中层特征表达,有效地缓解了Shapley值计算量巨大的问题,同时也带来了几个新的功能。(with compromise of course)

Shapley值

这个谈到有点复杂了,具体看我之前的回答:

使用DNN训练神经网络模型时,如何知道每个特征的重要性(像xgboost模型能计算出特征重要性一样)?

https://www.zhihu.com/question/310837513/answer/1281609735

或者

@Qs.Zhang张拳石老师写的一系列文章:

Qs.Zhang张拳石:神经网络的博弈交互解释性(一):前言,漂在零丁洋里的体系

https://zhuanlan.zhihu.com/p/264871522

总而言之,Shapley值是

  1. 相对而言,理论基础非常扎实的一种特征重要性的估值,
  2. 但是计算复杂度是指数,所以有很多的近似算法。
  3. 有几个性质,其中在这里跟我们实际有关的有俩:
  4. 线性:如果你计算了某一个函数的Shapley值,而这个函数在后面又进行了线性变换生成了新的函数,那么你只需要将得到的Shapley值进行相同的线性变换,即可获得新函数的Shapley值
  5. missingness:一个特征输入的时候如果已经为其参考值,则这个特征的重要性为0

下面部分可能会(非常)难读,同一个东西我们完全重写了至少三遍,因为总共10个reviewer里面3个完全没看懂(NeurIPS的reviewer说的就是你们)剩下7个里面有5个说真的很难读懂。哪里没写清楚求一定在评论里提出来,看见我就试着改改。

以及下面所有edge的weight都是这样:

Shapley Explanation Networks

Idea说起来也简单(在三次投稿,重写了三次之后能不简单吗):多层神经网络  可以表示为

对于任意输入,我们依次计算  的输出,此时  的输入,即为  的输出。而我们选择将  的Shapley值作为下一层  的输入。

如果将第  层输出特征用  表示,对于普通正常神经网络:

而我们的ShapNet则:

其中

而  表示求函数  关于输入  的Shapley值(们,毕竟有很多input features)。

运算量怎么办?

Shapley Module: 

如图所示:

我们可以给模型内的函数  限制,使它只取决于一小部分输入feature,这样运算量也算可控。

Shallow ShapNet 

如下图所示,我们通过对函数的线性变换,来达到同时

  1. 每一个Shapley值的运算只取决于一小部分输入feature
  2. 最终输出取决于所有feature。

Deep ShapNet, 

这个其实就是把Shallow ShapNets摞起来,项目一开始的时候我们以为最终算出来的  是准确的Shapley值,结果合作者Xiaoqian (Joy) Wang教授抬手一个证明,把这玩意儿证否了,但是实验上看,其实近似的效果还不错。这里的Deep ShapNet也就是最终模型

模型就讲完了,其实还有几个quirk可能需要有心人去翻论文或者代码了,high-level的idea就是每一层用Shapley值作为inter-layer representation,然后用Shapley Module来压运算量。

模型验证

最终的representation接近真正的Shapley值吗?

接近,但是不是准确的,但是相比Deep SHAP,它更准确,相比Kernel SHAP,它更快。

数据集上表现呢?

还行,但是距离SOTA有(很大)距离,下图表格中的Deep ShapNet for images也是我花了很久很久才做出来的,一开始试Cifar-10的时候准确率只有30%

听说这模型有新功能?

快速Shapley值近似

这个很明显我们只用一个forward pass就能算出Shapley值(虽然每一个module要算几遍)

根据explanation来改变模型性质

如我在

使用DNN训练神经网络模型时,如何知道每个特征的重要性(像xgboost模型能计算出特征重要性一样)?

https://www.zhihu.com/question/310837513/answer/1281609735

里所说,之前所有方法,都不能做到根据Shapley值来改变模型性质,而我们因为(强行)常数的时间复杂度,可以进行这样的操作。大概就如下图:

是加入稀疏度,而  是把每个feature的重要性扩散开(2021年了还在用MNIST发paper)。值得一提的是,之前的近似算法计算一张MNIST图片都需要几十分钟甚至几个小时的时间。

每一层的输出都是这一层自己的解释

这里联系上Shapley值的missingness(这个missingness在提出的paper里面只是可有可无的[1],但是我们还是用到了):

一个特征输入的时候如果已经为其参考值,则这个特征的重要性为0

这里的missingness是Shapley值的,但是我们模型

每一层的输出都是这一层自己的解释

这就意味着,如果在某一层,一个feature的重要性变成了0,那么接下来所有层,它都不再重要(对应值为0)。如果有一个Shapley Module的所有input feature都不重要了,那它的计算就可以完全省过去。这样的剪枝是instance-based的,比普通的剪枝更能剪。

剪枝+ 

我们可以对每一层的representation都进行  ,这样的话我们甚至可以剪更多。

这个想法是ICLR的rebuttal阶段想出来的,所以也没有时间做实验来验证这玩意儿,感觉挺有意思,可能之后的工作会跟进吧。详细的还是看openreview上的rebuttal:

https://openreview.net/forum?id=vsU0efpivwopenreview.net

Misc:

上次回答的时候买了个关子,说自己当时投了ICML 2020,是的它真的经历了ICML/NeurIPS/ICLR三大顶会才被发表出来,项目开始的时候我大三才开始两个月,到ICLR录用,我大学都毕业8个月了:

使用DNN训练神经网络模型时,如何知道每个特征的重要性(像xgboost模型能计算出特征重要性一样)?

https://www.zhihu.com/question/310837513/answer/1281609735

参考

  1. ^Scott M Lundberg and Su-In Lee.A Unified Approach to Interpreting Model Predic-tions.In I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vish-wanathan, and R. Garnett (eds.),Advances in Neural Information Processing Systems 30,pp. 4765–4774. Curran Associates, Inc., 2017.  http://papers.nips.cc/paper/7062-a-unified-approach-to-interpreting-model-predictions


推荐阅读



添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~
△长按添加极市小助手

△长按关注极市平台,获取最新CV干货

觉得有用麻烦给个在看啦~  
【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读5.7k
粉丝0
内容8.2k