随着深度神经网络的应用日益广泛,可解释性也逐渐受到更多学者的关注。

近日,上海交通大学一年级博士生任洁、上海交大计算机系硕士生李明杰解读了团队发表于 ICML 2021的工作《对神经网络中层不同复杂度的特征分量的解释与拆分》,提供了新颖的视角(公众号【数据实战派】后台按指引可下载本文直播ppt,点击文末“阅读原文”可收看直播回放)。

在该研究中,作者从特征复杂度的角度出发,尝试将语义解释与神经网络的表达能力相结合。神经网络的中层特征往往是混杂的,包含非常丰富的信息,其中,一些特征是简单的,另一些特征则是非常复杂的,需要经过复杂变换才能学习到。

受这一点启发,本研究有以下几点贡献:

1.定义了神经网络中层特征的复杂度;

2.在语义层面,实现了对简单特征、复杂特征的拆分及可视化,发现简单特征往往表示物体的主体形状,而复杂特征则是一些细节、噪声信息;

3.在表达能力层面,本文用可靠性、有效性,及过拟合程度评测了神经网络特征,量化了特征表达能力与特征复杂度、训练样本数等因素之间的联系;

4.基于上述结论,本文利用拆分出的特征向量进一步提升了神经网络的性能,并解释了经典学习算法的效果。

研究背景


目前对神经网络的可解释性研究主要分为两个方面,一方面是语义层面的解释,另一方面是数学层面对网络表达能力推导。

在语义层面,最直接的方法是可视化神经网络的中层特征,同时很多研究也致力于估计输入样本中不同单元对于神经网络输出的重要性(attribution/importance/saliency)。

但这类研究,往往缺少扎实的理论基础,且不同的解释方法可能得到相互冲突的结果。


在数学推导的层面,很多研究尝试从各个角度推导出神经网络表达能力的边界。但这类工作有时基于一些对网络结构的简单假设,难以应用到实际的深层网络中,另外,这类方法也往往没有直观的展示,难以实现“人能理解”的目标。

上述这两类解释性研究,往往各自为战,语义层面的解释往往缺乏坚实的理论支撑,数学层面的推导又难以对接到人的认知,让人真正地理解神经网络。

如何将视觉解释与 DNN 的表示能力联系起来?下面介绍此次论文的核心方法。

算法简介

将神经网络中层特征解构并可视化出不同复杂度的特征分量:

神经网络从输入样本中抽取得到了非常丰富的特征,而这些特征既包含简单的特征分量,也包含复杂的特征分量。简单的特征分量往往经过简单的变换就能得到,例如通过一个较浅的神经网络,而复杂的特征分量则需要较深的神经网络才能拟合。即,给定一个训练好的神经网络 fff 和输入 xxx ,其中层特征 f(x)f(x)f(x) 中包含了不同复杂度的特征分量:

f(x)=c(1)(x)+c(2)(x)+…+c(L)(x)+Δff(x)=c^{(1)}(x)+c^{(2)}(x)+{\ldots}+c^{(L)}(x)+{\Delta}ff(x)=c(1)(x)+c(2)(x)+…+c(L)(x)+Δf

其中 c(l)(x)c^{(l)}(x)c(l)(x) 表示不同复杂度的特征分量。我们利用学习某个特征分量所需要的最少的非线性变换数来量化这个特征分量的复杂度。例如,单层神经网络(只包含一个非线性层)所能拟合的特征分量 c(1)(x)c^{(1)}(x)c(1)(x) 的复杂度阶数定义为1阶,c(1)(x)c^{(1)}(x)c(1)(x) 称为 f(x)f(x)f(x) 的一阶复杂度分量。包含连个非线性层的神经网络所能够拟合的特征 c(2)(x)c^{(2)}(x)c(2)(x) 称为二阶复杂度分量,以此类推。

为了从 f(x)f(x)f(x) 中拆分出不同复杂度的特征分量,我们通过知识蒸馏的方法训练多个不同深度(包含不同多个非线性层)的拆分网络,浅层的神经网络只能学习到简单特征,而深层网络所拟合的特征包含了简单特征和复杂特征。因此,深度为 l−1l-1l−1 的拆分网络和深度为 lll 的拆分网络所拟合的特征的差值,就是复杂度为l阶的特征分量。

下图展示了不同阶特征分量的可视化结果。可以看出,简单特征往往包含与输入物体形状相关的信息,而复杂的特征分量包含了更多的细节信息和噪声信息。

探索实验

基于上述特征复杂度的定义,我们提出了一系列指标,量化分析了不同特征分量的可靠性、有效性和过拟合程度。

1.可靠性:

本课题组前期的特征表达一致性理论(https://zhuanlan.zhihu.com/p/102311760)已经证明,对于同一项任务,不同神经网络往往会建模一些公共信息,这些公共信息被认为是完成这项任务的可靠特征。本文中,我们从各阶复杂度的特征分量中进一步提取出了可靠的特征子分量,从而量化了不同复杂度特征分量的可靠性。

实验中,我们发现,增加神经网络的训练样本量,能够有效提升特征的可靠性,但不会显著影响特征复杂度的分布,这在一定程度上与人们的直觉是相反的。


2. 有效性:

基于Shapley value,我们量化了特征分量是否有效地帮助了神经网络的分类(或其他任务)。我们用每个特征分量对分类任务的损失函数的下降的Shapley value量化特征分量的有效性,发现特征不是越复杂越有效的,相反,当特征复杂度为网络深度的一半时,特征分量的有效性最高。

3.过拟合程度:

与有效性类似,我们利用特征分量对训练损失与测试损失差值的Shapley value,量化特征分量是否是过拟合的。实验发现,当增加训练样本量时,往往能够降低简单特征(低复杂度的特征分量)的过拟合程度,而这一规律对于复杂特征并不适用。

拓展应用

基于以上实验发现,我们进一步利用特征复杂度去提升网络性能,并解释了知识蒸馏、网络压缩这两种经典的深度学习算法。

1. 提升网络性能

前文中我们已经发现,当特征分量的复杂度为网络深度一半时,该分量是对任务最有效的。因此,我们将神经网络原始特征 f(x)f(x)f(x) 替换为所拆分出的有效特征分量,使神经网络的分类性能最高提升了5%;并且,我们发现中阶复杂度的特征对神经网络性能的提升更加有效。

2. 解释经典算法

本文中,我们解释了网络压缩和知识蒸馏两种算法对神经网络特征复杂度的影响,发现知识蒸馏使神经网络学到了更可靠、更有效的特征,从而在一定程度上提升了网络性能;网络压缩则主要作用于网络中的简单特征,且不会影响特征可靠性,因此能够保证网络性能不受显著破坏。

文章作者简介:

任洁:上海交通大学博士一年级,师从张拳石副教授。
李明杰:上海交通大学本科四年级,现在张拳石实验室进行实习研究。
刘泽旭:上海交通大学本科三年级,曾在张拳石实验室进行实习研究。
张拳石:上海交通大学副教授,博士生导师。http://qszhang.com

论文题目:“Interpreting and Disentangling Feature Components ofVarious Complexity from DNNs”
论文链接:http://proceedings.mlr.press/v139/ren21b.html

关于数据实战派

数据实战派希望用真实数据和行业实战案例,帮助读者提升业务能力,共建有趣的大数据社区。

可解释性:对神经网络中层特征复杂度的解释与拆分丨ICML 2021相关推荐

  1. 直播 | ICML 2021论文解读:对神经网络中层特征复杂度的解释与拆分

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  2. 可解释性:对神经网络中层特征复杂度的解释与拆分

    文 | 任洁,李明杰,刘泽旭 源 | 知乎 大家好,我们是任洁,李明杰和刘泽旭,本研究是在张拳石老师 @Qs.Zhang张拳石 指导下完成的工作. 随着深度神经网络的应用日益广泛,可解释性也逐渐受到更 ...

  3. R语言构建xgboost模型:特征重要度计算及解读、改善特征重要度数据的可解释性、特征重要度可视化

    R语言构建xgboost模型:特征重要度计算及解读.改善特征重要度数据的可解释性.特征重要度可视化 目录

  4. 利用lightgbm做learning to rank 排序,解析模型中特征重要度

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很 ...

  5. 特征重要性计算方法及神经网络的特征重要性

    这是我第63篇文章.这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法. 1 几种常用的特征重要性计算方法 1.1 树模型特征重要性 像xgboost.lightgbm等树模型 ...

  6. 特征选择 GBDT 特征重要度

    Tree ensemble算法的特征重要度计算 集成学习因具有预测精度高的优势而受到广泛关注,尤其是使用决策树作为基学习器的集成学习算法.树的集成算法的著名代码有随机森林和GBDT.随机森林具有很好的 ...

  7. 基于haar特征的adaboost算法_SuperGlue一种基于图卷积神经网络的特征匹配算法

    ETHZ ASL与Magicleap联名之作,CVPR 2020 Oral(论文见文末),一作是来自ETHZ的实习生,二作是当年CVPR2018 SuperPoint 的作者Daniel DeTone ...

  8. R语言使用randomForest包构建随机森林模型(Random forests)、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB

    R语言使用randomForest包中的randomForest函数构建随机森林模型(Random forests).使用importance函数查看特征重要度.使用table函数计算混淆矩阵评估分类 ...

  9. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

最新文章

  1. Science Advances: 中科院微生物所叶健团队揭示双生病毒调控植物免疫平衡制约机制...
  2. 敏捷开发本质 与 敏捷个人本质
  3. php mysql-mysqli
  4. 【tensorflow-keras-GRU】keras.layers.GRU 门限循环单元网络(Gated Recurrent Unit)
  5. python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...
  6. ajxs跨域 php_php设置header头允许ajax跨域请求
  7. javascript运动系列第七篇——鼠标跟随运动
  8. 如何具备无坚不摧的意志力
  9. c#中将HTML文件转换成PDF文件
  10. 面试题,你手里有几个offer?
  11. Java怎么去最高分最低分,深入java虚拟机:原子操作ParkEvent和Parker
  12. php ip操作,ip操作 · PHP 个人常用知识总结 · 看云
  13. Linux终端进程后台运行与前后台切换
  14. 统计学习方法读书笔记16-SVM支持向量机
  15. 最新版微型商城2.0版网站源码 带有一键安装
  16. 怎么从抖音上直接跳转到微信呢?
  17. 网页计算器 html代码原理,HTML网页之计算器代码
  18. Learning to Collaborate: Multi-Scenario Ranking via Multi-Agent Reinforcement Learning
  19. flink+drools动态规则示例之温度跳变告警
  20. 微信新彩蛋太 6 了,满屏爱心合为一心,还可以炸屎...

热门文章

  1. Photoshop给人像加上个性裂纹肌肤
  2. 达人评测:红米k30pro至尊版参数配置优缺点曝光真相
  3. Java锁——Condition使用示例及讲解
  4. kafka-consumer参数详解
  5. 全军出击机器人进房间_《刺激战场》和《全军出击》快递机器人这么多,你怎么看?...
  6. OpenGL 图像的加载和存储
  7. Linux入门-常用命令
  8. Html事件change,了解change事件
  9. enable password和enable secret解析
  10. 编译android源码及遇到的问题