ICLR2020 | 如何判断两个神经网络学到的知识是否一致
人工智能顶会 ICLR 2020 将于 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行。在最终提交的 2594 篇论文中,有 687 篇被接收,接收率为 26.5%。本文介绍了上海交通大学张拳石团队的一篇接收论文——《Knowledge Consistency between Neural Networks and Beyond》。在本文中,研究者提出了一种对神经网络特征表达一致性、可靠性、知识盲点的评测与解释方法。
论文链接:https://arxiv.org/pdf/1908.01581.pdf
概览
深度神经网络(DNN)已经在很多任务中表现出了强大的能力,但目前仍缺乏诊断其中层表征能力的数学工具,如发现表征中的缺陷或识别可靠/不可靠的特征。由于数据泄漏或数据集发生变化,基于测试准确率的传统 DNN 评测方法无法深入评估 DNN 表征的正确性。
因此,在本论文中,来自上海交大的研究者提出了一种从知识一致性的角度来诊断 DNN 中层网络表征能力的方法。即,给定两个为同一任务训练的 DNN(无论二者架构是否相同),目标是检验两个 DNN 的中间层是否编码相似的视觉概念。
该研究实现了:(1)定义并量化了神经网络之间知识表达的不同阶的一致性;(2)对强弱神经网络中层知识进行分析;(3)对中层特征的诊断,在不增加训练样本标注的前提下进一步促进神经网络分类准确率;(4)为解释神经网络压缩和知识蒸馏提供了一种新的思路。
算法简介
该论文定义了两个神经网络之间在知识表达层面的一致性,即分析两个独立训练的神经网络是否建模了相同或相似的知识。研究者关注的是两个神经网络所建模的知识的相似性,而非特征的相似性(比如,将一个神经网络的中层卷积核的顺序打乱,并相应的重新排列其对应的上层卷积核的顺序,经过上层卷积后特征与原始神经网络对应特征相同,这时,这两神经网络具有不同的中层特征,但事实上建模了相同的知识)。
另一方面,可以利用神经网络知识表达的一致性,直接对神经网络内部特征表达可靠性进行评测,而不需要额外标注新的监督信息,此评测标准也与具体任务设置无关。如果没有可靠的数学工具去评测神经网络的特征的可靠性,仅仅通过最终的分类正确率来评测神经网络,对深度学习的未来发展是远远不够的。
因而,针对同一任务训练多个不同的神经网络,此研究量化出各神经网络间彼此一致的知识表达,并拆分出其所对应的特征分量。具体来说,f_A 和 f_B 分别表示神经网络 A 与神经网络 B 的中层特征,当 f_A 可以通过线性变换得到 f_B 时,可认为 f_A 和 f_B 零阶一致;当 f_A 可以通过一次非线性变换得到 f_B 时,可认为 f_A 和 f_B 一阶一致;类似的,当 f_A 可以通过 n 次非线性变换得到 f_B 时,可认为 f_A 和 f_B 为 n 阶一致。
如下图所示,可以通过以下神经网络,将神经网络中层特征 f_A 拆分为 0-K 阶不同的一致性特征分量,以及不一致特征分量。
低阶一致性分量往往表示相对可靠的特征,而不一致分量则表示神经网络中的噪声信号。
在应用层面,知识一致性可以用来发现神经网络中的不可靠特征和知识盲点。将一个深层高性能网络作为标准的知识表达,去分析诊断一个相对浅层的神经网络的知识表达缺陷(浅层神经网络有自己特定的应用价值,比如用在移动端)。当利用浅层神经网络 (DNN A) 特征去重建深层神经网络 (DNN B) 特征时,深层神经网络中的不一致特征分量 (δ=f_B-g(f_A)) 往往代表着浅层神经网络的知识盲点;相对应地,当利用深层神经网络特征去重建浅层神经网络特征时,浅层神经网络中的不一致特征分量 (δ=f_A-g(f_B)) 往往代表着其中不可靠的特征分量。
实验结果
下图显示了算法所预测的浅层神经网络的知识盲点与不可靠特征。
下表从知识一致性的角度,分析神经网络训练的稳定性。当训练样本相对较少时,浅层的神经网络的训练有更强的稳定性。
如下图所示,一致的特征分量往往代表更可靠的信息,可以进一步提升神经网络的分类精度。即,在不增加训练样本标注的前提下,利用知识一致性进一步提升模型的分类正确率。
知识一致性算法可以消除神经网络中的冗余特征。预训练的神经网络(如利用 ImageNet 训练的神经网络)往往建模了海量类别的分类信息,当目标应用只针对少量类别时,预训练的特征中表达无关类别的特征分量则可视为冗余信息。如下图所示,知识一致性算法可以有效的去除与目标应用无关的冗余特征分量,进一步提升目标应用的性能。
此外,知识一致性算法可以分析不同任务训练得到模型中的一致/不一致特征。如下图所示,研究者训练网络 A 进行 320 类细分类(包括 CUB 中的 200 类鸟与 Stanford Dog 中的 120 类狗),训练网络 B 进行简单的二分类(鸟或狗),通过特征相互重构,可以看到网络 A 中建模了更多的知识,网络 A 的特征能够更好地重构网络 B 的特征。
知识一致性算法可以用于分析网络压缩中的信息损失。研究者使用压缩后模型生成的特征来重建原始模型的特征,不一致的特征分量往往对应着压缩过程中被舍弃的知识。如下图(左)所示,通过量化这部分被舍弃的知识,他们发现在压缩过程中较小的知识损失会有更高的分类正确率。
此外,还可以通过知识一致性算法解释蒸馏。如下图(右),通过量化不同代的再生神经网络中不一致的特征分量,可以发现随着蒸馏代数的增加,不可靠的特征分量逐渐减少。
ICLR2020 | 如何判断两个神经网络学到的知识是否一致相关推荐
- DeepMind发69页长文掀开AlphaZero的黑盒:神经网络学到的知识和人类基本相似!
来源:新智元 本文约2400字,建议阅读10+分钟 AlphaZero下棋和人类下棋究竟有什么区别?是否掌握了一些人类未曾了解过的知识? [ 导读 ] AlphaZero下棋和人类下棋究竟有什么区别? ...
- 表单实例(判断两次密码是否一致)
表单实例(判断两次密码是否一致) 一.实例描述: 本例是一个综合性的练习,除了们正在学习的JS知识外,还用到了HTML的表格,表单等相关知识. 二.截图 三.代码 1 <!DOCTYPE htm ...
- 第六周作业(等值字串,KMP匹配,大整数相乘,最长公共子串,判断两个字符串是否匹配,最长回文子串,年号字串)
目录 1.等值字串 2.KMP匹配 3.大整数相乘 4.最长公共子串 5.判断两个字符串是否匹配 6.最长回文字串 7.年号字串 补发一下,原来忘记发了. 1.等值字串 [问题描述]如果字符串的一个子 ...
- 怎么看两张图片的相似度,判断两张图片的相似度
C#怎么来判断2张图片相似度 很麻烦,而且计算量很大,这个属于人工智能的范畴.如果这"两张相似图片"可以规定很多前提,比如相同分辨率,黑白,简单几何图形... 那么可以用基本的算法 ...
- 判断两个树是否相等和判断tree1是否包含tree2 python实现
判断两个树是否相等 def equal(node_a, node_b):"""判断两个树是否相等:param node_a: :param node_b: :return ...
- 判断两直线段是否相交
转自:http://www.cnblogs.com/shengshouzhaixing/archive/2013/03/17/2964950.html //功能:求点在有向直线左边还是右边 / ...
- python中如何判断两个字符串是否相等_python怎样判断两个字符串是否相同
原标题:python怎样判断两个字符串是否相同 python中,判断两个字符串是否相等或一样,可以使用==或者is来判断:判断不一样可以使用 is not. 示例 使用注意事项 1.有时候两个字符串打 ...
- 7_2判断两个单链表是否相交,若相交,求出第一个交点
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4251372.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己 ...
- java中判断两个字符(或者字符串相等)
string a,b;//两字符串 在java中判断两个字符(字符串)相等,用a.equals(b); if(a.equals(b)){ //如果相等,返回值为true }else{ //如果不相等, ...
最新文章
- Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法
- 为一月份开设的组队学习课程投票啦
- Spring Cloud 万字总结!
- pydev-python 链接mysql数据库(mac系统)
- reactjs组件的生命周期函数:getDerivedStateFromProps
- 深入了解计算机网络参考模型
- vue怎么注释html代码,vue文件中如何注释?
- ios开发--企业帐号发布
- Selenium2Library(RF)浏览器打不开问题汇总
- App 瘦身最全最佳实践
- 第十四届全国大学生信息安全竞赛部分wp
- kali2020.4中文安装后,fcitx配置框中空白,无法添加输入法,请做如下操作尝试修复
- 手写简易版spring MVC框架
- 电脑出现missing operating system解决办法
- maven读取不到包,项目名爆红
- 给Office文档加密方式与原理揭秘
- 华为的5G到底有多厉害?
- 网站收录查询方法,网站收录减少的原因
- 百度静态网站全站搜索功能
- 自动批量处理人像照片