深度学习的可解释性研究(一):让模型「说人话」

本文为 BIGSCity 的知乎专栏内容,作者王小贱。北航智慧城市兴趣组 BIGSCITY是隶属于北京航空航天大学计算机学院的一个学术研究小组,小组致力于研究机器学习与数据挖掘在城市科学、社会科学等领域的交叉应用技术。AI 科技评论获得 BIGSCity 授权转载,敬请期待更多后续内容。

非常开心本文成为 BIGSCity 兴趣组的第一篇投稿,《深度学习的可解释性研究》系列预计包含 3-4 篇内容,用尽可能浅显的语言带领大家了解可解释性的概念与方法以及关于深度学习可解释性工作的研究成果,不定期更新内容(欢迎催更)。

可解释性是什么?

广义上的可解释性指在我们需要了解或解决一件事情的时候,我们可以获得我们所需要的足够的可以理解的信息。比如我们在调试 bug 的时候,需要通过变量审查和日志信息定位到问题出在哪里。比如在科学研究中面临一个新问题的研究时,我们需要查阅一些资料来了解这个新问题的基本概念和研究现状,以获得对研究方向的正确认识。反过来理解,如果在一些情境中我们无法得到相应的足够的信息,那么这些事情对我们来说都是不可解释的。比如刘慈欣的短篇《朝闻道》中霍金提出的「宇宙的目的是什么」这个问题一下子把无所不知的排险者卡住了,因为再高等的文明都没办法理解和掌握造物主创造宇宙时的全部信息,这些终极问题对我们来说永远都是不可解释的。

而具体到机器学习领域来说,以最用户友好的决策树模型为例,模型每作出一个决策都会通过一个决策序列来向我们展示模型的决策依据:比如男性&未婚&博士&秃头的条件对应「不感兴趣」这个决策,而且决策树模型自带的基于信息理论的筛选变量标准也有助于帮助我们理解在模型决策产生的过程中哪些变量起到了显著的作用。所以在一定程度上,我们认为决策树模型是一个具有比较好的可解释性的模型,在以后的介绍中我们也会讲到,以决策树为代表的规则模型在可解释性研究方面起到了非常关键的作用。再以用户最不友好的多层神经网络模型为例,模型产生决策的依据是什么呢?大概是以比如 1/(e^-(2*1/(e^(-(2*x+y))+1) + 3*1/(e^(-(8*x+5*y))+1))+1) 是否大于 0.5 为标准(这已经是最简单的模型结构了),这一连串的非线性函数的叠加公式让人难以直接理解神经网络的「脑回路」,所以深度神经网络习惯性被大家认为是黑箱模型。

17 年 ICML 的 Tutorial 中给出的一个关于可解释性的定义是:

Interpretation is the process of giving explanations to Human.

总结一下就是「说人话」,「说人话」,「说人话」,不以人类可以理解的方式给出的解释都叫耍流氓,记住这三个字,你就差不多把握了可解释性的精髓所在。

我们为什么需要可解释性?

广义上来说我们对可解释性的需求主要来源于对问题和任务了解得还不够充分。具体到深度学习/机器学习领域,就像我们上文提到的多层神经网络存在的问题,尽管高度的非线性赋予了多层神经网络极高的模型表示能力,配合一些堪称现代炼丹术的调参技术可以在很多问题上达到非常喜人的表现,大家如果经常关注 AI 的头条新闻,那些机器学习和神经网络不可思议的最新突破甚至经常会让人产生 AI 马上要取代人类的恐惧和幻觉。但正如近日贝叶斯网络的创始人 Pearl 所指出的,「几乎所有的深度学习突破性的本质上来说都只是些曲线拟合罢了」,他认为今天人工智能领域的技术水平只不过是上一代机器已有功能的增强版。虽然我们造出了准确度极高的机器,但最后只能得到一堆看上去毫无意义的模型参数和拟合度非常高的判定结果,但实际上模型本身也意味着知识,我们希望知道模型究竟从数据中学到了哪些知识(以人类可以理解的方式表达的)从而产生了最终的决策。从中是不是可以帮助我们发现一些潜在的关联,比如我想基于深度学习模型开发一个帮助医生判定病人风险的应用,除了最终的判定结果之外,我可能还需要了解模型产生这样的判定是基于病人哪些因素的考虑。如果一个模型完全不可解释,那么在很多领域的应用就会因为没办法给出更多可靠的信息而受到限制。这也是为什么在深度学习准确率这么高的情况下,仍然有一大部分人倾向于应用可解释性高的传统统计学模型的原因。

不可解释同样也意味着危险,事实上很多领域对深度学习模型应用的顾虑除了模型本身无法给出足够的信息之外,也有或多或少关于安全性的考虑。比如,下面一个非常经典的关于对抗样本的例子,对于一个 CNN 模型,在熊猫的图片中添加了一些噪声之后却以 99.3% 的概率被判定为长臂猿。

猜你喜欢

转载自my.oschina.net/u/3611008/blog/1821861