深度学习模型真的无法被解释么?

Kim, B., and F. Doshi-Velez. "Interpretable machine learning: the fuss, the concrete and the questions." ICML Tutorial on interpretable machine learning (2017).

Hu,Zhiting, et al. "Harnessing deep neural networks with logic rules." arXiv preprint arXiv:1603.06318 (2016).

引言


随着人工智能的发展,现阶段的普遍认知是深度模型不可被解释。一个端到端的深度模型,改变其模型中的任一个权重,可能都会对整个模型的表现产生难以预测的影响。

然而,随着机器学习技术的不断完善,人们在利用这些技术开发应用的时候发现,一个机器学习模型,如果仅仅是简单地“接受输入,给出输出”的话,在很多时候便无法适应实际应用的诸多需求。所以,在机器学习任务中,对结果的解释也是非常重要的一环。

动机:用户遇到的问题


漫画:机器学习系统(https://xkcd.com/#)

正如上面的漫画中所示,在利用某种机器学习算法建造应用的时候,仅仅“输入数据,输出结果”是远远不够的。用户在使用应用的时候,往往还会提出一些别的要求:

  • 机器给出的结果看起来是正确的,但是它为什么这样判断?能给我们一些解释吗?

  • 机器给出的结果看起来不太正确,它为什么会给出错误的结果?

  • 它是只在少数时候犯错,还是在大多数时候都不对?

  • 如果它仅在少数时候犯错的话,它会在怎样的特殊情况下犯错?

  • 如果我能知道这些,我就可以限制机器的应用范围,让它只负责那些它能够解决的问题。

  • 我知道这台机器为什么会犯错了!当我们在这台机器输入XXX的时候,它会把XXX看成XXX,但其实是XXX,所以它才会做出错误的判断。

  • 通过一段时间的使用,我很肯定就是这个问题!我手工准备了一些人类能够看懂的笔记(通常是一些表格或者几行条件判断分支),描述了如何处理这种特殊情况。那么,怎么能让这个机器在原来的基础上快速学习我的这些笔记?

  • 不不,我不需要你完全重新构造一个人工智能机器,那样的话可能还会出现别的问题,现在的这个机器在处理大多数情况下表现已经很好了,而且我已经习惯了这个机器。我只是希望能让它再多学习这一条知识,就一条。

这些要求在机器学习专业人士看来很可能荒诞不经,但对于用户来说,这些要求都是非常常见且有必要的。所以,解决这些问题(无论通过工程技术还是先进的算法)也变成了数据科学家们的任务。

图1 用户遇到的问题

更进一步地,上面的诸多问题其实可以被简化成下面的两个任务,只要设计出解决这两个任务的模型或者流程,很多问题就可以迎刃而解。

1.    如何让机器学习应用在输出结果的同时,输出相应的解释(或置信度等辅助信息)?

2.    如何将人类知识(为了使问题更简单,假定这里的人类知识是结构化的)嵌入到传统的基于“训练——验证——测试”三个步骤建造的机器学习模型中?

在下面的章节,我们将通过现有已发表的解决上述问题的尝试,试图为这些问题找到一个可行的解决办法。

问题:如何定义“解释”


上文已经提到过,与其他很多方法不同,传统的深度学习模型是无法解释的。现在,既然我们希望一个深度学习模型能够对结果进行解释,首先就需要对这个解释下一个定义。参考[1],我们列出了几种常见的,解释深度学习模型的方法:

1.    基于梯度的敏感度方法。在输入模型的诸多特征中,寻找一个或多个特征,模型对这些特征的改变最为敏感,这些特征最容易改变模型输出的结果。[2]便是使用这种方法来解释深度模型的例子。

2.    根据每个特征对结果的贡献来解释模型。在使用了注意力机制的模型中,这种方法经常被使用来判断哪个位置的特征对结果贡献最大。特征对结果的贡献是通过注意力模块来计算的。

3.    利用可解释的学生模型。通过蒸馏神经网络训练一个可以解释的学生模型(例如决策树)来试图解释深度学习模型的预测结果。然而,有些时候,这些“容易解释”的学生模型也可能得出令人非常困惑的解释。

4.   对隐层(Hidden Layer)的分析。有些时候,深度模型的隐层(或是它的某些模块)就编码了一些可解释的信息。例如[3],深度生成模型的某些模块就常被人认为是有解释价值的。最近很火的Unsupervised learning of disentangled representations 也属于该类。

实例一:InfoGAN


深度学习模型是通过逐层学习输入数据的表达来进行判断的,尽管这些表达包含了输入数据中的许多信息,它们却不能为人类所解释。因而,约束这些表达,使得它们的每一位都独立地代表输入数据的某种可解释的特征,就成为了一个很自然的想法。

Disentangled representationlearning,指的也就是学习输入数据的某种表达,在这个表达中,一个特征的改变并不能影响其他的特征。

例如,在人脸识别这一任务中,模型能够独立地识别出人脸的肤色,表情等特征,并把这些特征合成一个表达向量。

如果能够做到这一点,那么模型的可用性就会得到很大的提升,因为我们可以通过独立地分析或者控制某一个特征,来得到我们想要的结果。InfoGAN[3]就是这种想法的一个实例。

在InfoGAN中,这个我们需要的,可解释的、互相独立的表达是GAN中生成器的输入。在经典的GAN中,生成器的输入是白噪音。然而,为了按照用户喜好生成固定颜色,固定大小,固定角度的某种物体(比如人脸或动物),我们希望能够在输入中增加生成的物体的样式信息。

另一方面,既然我们在生成器生成的过程中输入了这些样式信息,在模型训练的过程中,自然希望保证生成器生成的数据符合我们在输入样式信息时候的预想。

该模型通过最大化样式信息和生成器输出之间的交互信息量在约束这一点。具体到模型设计中,则是通过一个辅助网络,帮助判别器还原生成器生成时的样式信息。

图1 传统的生成对抗网络

图2 InfoGAN的结构

通过下面的图片能看到,该模型可以根据用户的输入自由控制输出物体的朝向和大小。即,给定生成需要的一些特征,例如物体的大小,方向,模型就可以根据输入生成符合要求的例子。反过来,给定一张图片,判别器也可以尝试推断图片内椅子的样式信息。

图3  InfoGAN 根据不同样式信息生成的椅子图片

实例二:一阶逻辑规则约束

的深度学习


[4] 提供了一种利用后验正则化(Posterior regularization)和蒸馏神经网络来将一阶逻辑规则嵌入到任意神经网络架构中的方法。

后验正则化(Posterior regularization),简单来说就是根据正则化项(逻辑规则)和实际结果(数据标签)共同决定模型训练时候的标签。

例如,在情感分析任务中,数据集中某句话的情感原本为中性,但是如果这句话触发了某些逻辑规则,根据规则这句话又应当是负面的话,就根据“中性”和“负面”两个标签共同决定训练时这句话的标签。

这篇文章中介绍的方法的结构如下图所示。从图中可以看出,一方面,教师模型同时根据数据和逻辑规则两部分信息进行学习,另一方面,学生模型也在以教师模型作为基准进行学习。

图2  模型结构

在该文章的实验部分,作者采用了情感分析的任务作为例子来证明该模型的有效性,其应用的规则如下:

  • 如果一句话里没有“如果”“但是”这样的转折词,那么语言模型(可以是任意语言模型,比如RNN)输出的结果就是该句子表达情感的预测值;

  • 然而如果一句话里有转折词,那么这句话转折词之后的那一部分才表达了语句的真正情感。因此,将这一部分作为语言模型(与上条规则中的语言模型是同一个)的输入,其结果就是整句话所表达的情感。

由于这篇文章中对于后验正则化公式的推导比较复杂,本文在此不作详述,有兴趣的读者可以自行来看[4]。

总结


尽管机器学习模型的解释是一个相当重要的议题,然而对于深度学习模型,目前为止依然没有哪一种解释深度模型的方法成为主流。

很多最近的文章[5,6]也在对常用的,具有一定可解释性的深度学习方法提出质疑。

在我看来,人们对深度学习的原理尚且不够了解的今天,想要一劳永逸地研究出某种解释深度学习模型的方法是不现实的。但是,我们可以像设计特殊的深度模型结构那样,针对特定问题和特定数据,设计特定的解释

后台回复“可解释”下载ICML关于可解释机器学习的tutorial

参考文献


[1] Kim, B., and F. Doshi-Velez."Interpretable machine learning: the fuss, the concrete and the questions." ICML Tutorial on interpretable machine learning (2017).

[2] Che, Zhengping, et al."Deep computational phenotyping." Proceedings of the 21th ACMSIGKDD International Conference on Knowledge Discovery and Data Mining. ACM,2015.

[3] Chen, Xi,et al. "Infogan: Interpretable representation learning by information maximizing generative adversarial nets." Advances in neural information processing systems. 2016.

[4] Hu,Zhiting, et al. "Harnessing deep neural networks with logic rules." arXiv preprint arXiv:1603.06318 (2016).

[5] Locatello, Francesco, et al. "Challenging common assumptions in the unsupervised learning of disentangled representations." arXiv preprint arXiv:1811.12359 (2018).

[6] Jain,Sarthak, et al. "Attention is not Explanation." arXiv preprint arXiv:1902.10186 (2019).

(0)

相关推荐

  • 改善图像处理效果的五大生成对抗网络

    作者 | Martin Isaksson 译者 | Sambodhi 策划 | 刘燕 在图像处理方面,机器学习实践者们正在逐渐转向借助生成对抗网络的力量,本文带你了解其中五种生成对抗网络,可根据自己的 ...

  • 如何信任机器学习模型的预测结果?(上)

    也就是说,如何确定机器学习模型预测的结果是符合常理的,进而确定所选择的机器学习模型是可信的. 关于这个问题,我将通过两个篇幅向大家介绍机器学习模型的可信性,即机器学习预测结果的解释,以及 MATLAB ...

  • 可解释的自然语言处理方法简介

    作者:哈工大SCIR 杨重阳 1.介绍 传统的自然语言处理方法具有可解释性,这些自然语言处理方法包括基于规则的方法.决策树模型.隐马尔可夫模型.逻辑回归等,也被称为白盒技术.近年来,以语言嵌入作为特征 ...

  • 【技术综述】人脸妆造迁移核心技术总结

    美颜和美妆是人脸中很常见的技术,在网络直播以及平常的社交生活中都有很多应用场景.常见的如磨皮,美白,塑形等美颜技术我们已经比较熟悉了,而本文重点介绍的是人脸妆造迁移的核心技术及其相关资源. 作者&am ...

  • 从AI幻术到电商防线:我们听京东安全专家聊了聊“黑箱”中的秘密

    可能大家都有过这种感觉:在迷茫的时候,我们会觉得自己面对的生活是个黑箱子.眼前一片混沌,既看不到未来,也搞不清楚此前都发生了什么. 这种感觉非常之讨厌,可能大部分人都有体会.但是试想一下,假如我们工作 ...

  • 如何画出漂亮的深度学习模型图?

    现在搞AI研究写论文,其中论文里的框架图模型图很是考验你画图的能力,不费一番心思功夫,怎能画出一个入得Reviewer法眼的图,论文也不大好中,很是发愁.好消息来了,elvis介绍了有个ML visu ...

  • 基于web端和C 的两种深度学习模型部署方式

    深度学习 Author:louwill Machine Learning Lab 最近问部署的读者比较多,分享一篇去年写入门级总结. 本文对深度学习两种模型部署方式进行总结和梳理.一种是基于web服务 ...

  • 深度学习模型中集成优化、约束和控制

    人工智能算法与Python大数据 致力于提供深度学习.机器学习.人工智能干货文章,为AI人员提供学习路线以及前沿资讯 23篇原创内容 公众号 点上方人工智能算法与Python大数据获取更多干货 在右上 ...

  • 深度学习模型建立的整体流程和框架

    框架图如下,纵向是建立模型的主要流程,是一个简化且宏观的概念,横向是针对具体模块的延展. 数据处理 数据处理一般涉及到一下五个环节: 读入数据 划分数据集 生成批次数据 训练样本集乱序 校验数据有效性 ...

  • EST | 从水文气象到河流水质:深度学习模型可以预测大陆尺度的溶解氧吗?

    2021.3.22 从水文气象到河流水质:深度学习模型可以预测大陆尺度的溶解氧吗? 题目:From Hydrometeorology to River Water Quality: Can a Dee ...

  • (2条消息) 六种人体姿态估计的深度学习模型和代码总结

    姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人机交互 ...

  • 不用GPU,稀疏化也能加速你的YOLOv3深度学习模型

    第一时间获取价值内容 水木番 发自 凹非寺 来自|量子位 你还在为神经网络模型里的冗余信息烦恼吗? 或者手上只有CPU,对一些只能用昂贵的GPU建立的深度学习模型"望眼欲穿"吗? ...

  • 一个小问题:深度学习模型如何处理大小可变的输入

    对于大小可变的输入,深度学习模型如何处理? 前几天在学习花书的时候,和小伙伴们讨论了"CNN如何处理可变大小的输入"这个问题.进一步引申到"对于大小可变的输入,深度学习模 ...

  • 训练深度学习模型,46页ppt

    仅做学术分享,如有侵权,联系删除 转载于 :专知 1. 正则化旨在通过对学习算法进行修改来减少模型的泛化误差.· 正则化正是解决深度学习中的过拟合和欠拟合问题的一个途径.· 正则化往往会增加模型的训练 ...