可解释性与deep learning的发展
写在前面:不解知乎的推荐算法,三年半以前的文章最近再次受到关注,我喜忧参半。按AI每三年一个变革的发展来看,目前真正的前沿早已跨越了三年前的讨论范畴了,具体在下面。抛离了宏大的可解释性发展路线图的叙事框架,孤立的语义层面的解释只算是工程技术,而非科学。真正的前沿可解释性问题需要更严谨的科学理论,要有体系,更加激进,也是可以被少数人推动的。
【1】IJCAI 2021 Tutorial on Theoretically Unifying Conceptual Explanation and Generalization of DNNs [Website]
【2】IJCAI 2020 Tutorial on Trustworthiness of Interpretable Machine Learning [Website]
【3】世界人工智能大会(WAIC)可信AI论坛 Panel Discussion [Website]
————————————
大家好,我叫张拳石,UCLA博士后。目前在朱松纯老师的实验室,带领一个团队,做explainable AI方向。本文的题目有些大,这篇短文中,我只简单谈谈个人对deep learning发展状况的感受,和我最近的explanatory graph for CNNs和interpretable CNN两个研究课题。
当deep learning刚刚在CV圈子里面兴起的时候,我并没有第一时间给予足够的关注,直到几个月后,变革的巨浪拍下,旧方向消亡的速度和新技术诞生的节奏都大大超过我的预期。相信很多人都有类似的感觉。一方面,deep learning超强的performance终结了一批旧的算法。另一方面,相比于传统graph-based methods,deep learning大大降低了算法多样性,简化了算法设计的复杂度。一时间,做CV研究的思路变得非常清晰:设计一个新的loss,提出一个新的网络结构,把传统的heuristic方法hard encoded到网络结构中去实现端对端学习。一两项技术能够把CV领域改造到这种地步,deep learning为AI带来巨大的改变。
然而当端对端学习神经网络犹如烈火烹油迅速发展的时候,我和周围的很多学者不时的会感觉到一丝的隐忧:端对端的训练一个black-box model会一直平稳的向下发展吗?随着网络结构和loss function的设计越来越复杂,神经网络真的会按照设计老老实实的去表达人们希望它表达的知识吗?抱着这样的焦虑,很多学者致力于visualization of CNN knowledge,让CNN中每个unit的知识清晰的展现在人们的面前。更进一步,@周博磊定义出一系列标准去评测CNN知识的interpretability。
但是归根结底,在端对端学习之外,我觉得还需要找到一套新的神经网络操作工具,即让神经网络具有清晰的符号化的内部知识表达,去匹配人类自身的知识框架,从而人们可以在语义层面对神经网络进行诊断和修改。从logic-based专家系统,到graphical model,再到深度神经网络,模型的flexibility和performance逐渐提高。但是,从相反的方向,把一个神经网络的内部逻辑转化成graphical representations,或者logic-based rules,从而提高知识表达的interpretability。有了清晰的内部表达,那么对神经网络的训练是不是不但可以end-to-end,而且可以end-to-middle,middle-to-middle?当网络内部一些单元具有了某种语义,那么transfer learning是不是直接在语义层面指派就好了,不需要大数据去训练了?当网络训练可以深入到网络的内部语义,或许deep learning未来的发展会有更多的可能性。
我希望一个CNN不仅仅告诉我它在某张图像上检测到一只小鸟,我还要CNN明确的告诉我,它用第一个filter去监测鸟头,第二个filter去检测鸟尾巴。因为这两个filter被这张图像触发,所以判断出图像中有一只小鸟。进一步,当我知道鸟的分类得分是0.7,我还希望CNN给出鸟头部分贡献了0.3的分数,鸟尾贡献了0.2。当CNN内部逻辑足够条理清晰,我们是否还需要通过大数据进行端对端的训练?我们能否在语义层面直接debug CNN呢?
沿着这条思路,在“Interpreting CNN knowledge via an Explanatory Graph”in AAAI 2018一文中,我主要介绍了如何把一个CNN(pre-trained for object classification)的conv-layer内部知识转化成一个graphical model。算法自动学习出一个explanatory graph with tens of thousands of nodes去解释CNN内部的hierarchical知识结构。Explanatory graph中每一个node,严格表示在CNN中某个conv-layer的某个object part pattern。这样我就可以把混乱的CNN的知识拆分成几十万个object parts的子patterns。每个子pattern有很强的可迁移性(transferability),比如在multi-shot part localization的上可以降低1/3—2/3的误差。
进一步,基于explanatory graph语义化的表达,我们能否把传统的graph-based technologies自然的融入CNN的学习之中呢?我不知道。
在另一篇文章"Interpretable Convolutional Neural Networks" in CVPR 2018 (spotlight)中,我介绍了如何端对端的学习一个CNN,使得其内部高层conv-layer的每个filter自动的表示某个object part。算法并不需要人为的标注object parts或texture作为额外的supervision,而是为这些filters添加一个prior constraint,使得在训练过程中自动回归的某种object part。
在时代的巨浪下,deep learning未来将向哪里发展?我不知道。我只能带着一颗敬畏的心,摸着石头过河,边走边瞧吧。
————————————————————
不解知乎的推荐算法,三年半以前的文章最近再次受到关注,相关问题统一回复一下。
1. 按人工智能每三年一个变革的发展来看,三年后研究早已经跨越了三年前的讨论范畴了。三年前的问题,有些从无解变成了有解,有的从经验解变成了理论解,有的问题被理论否定了。我目前在上交领导一个十多个人的团队,在做可解释性方向新的问题点。
2. 新的前沿的问题点与本文讨论的有很大的出入。具体在这里。
3. 可解释性研究不是坑,只是对于习惯于“工程实践性”科研的学生来说是坑。我们甚至在做一些更激进的问题,这些问题是可以被少数人推动的。
4. 我的看法是“可解释性研究”甚至“深度学习”的研究应该从工程性的技术过渡到严谨的科学理论,要有新的更颠覆的体系出来,不能故步自封。这是我依然在学术界坚持的理由。我没有什么悲观,也没有掉坑里。近三年里,我因学术品控而拒绝署名的合作研究的A类论文数量,比某些博士毕业的总论文量还多,所以没有必要给我分享学术上的市井智慧。
如果希望了解我最新的想法,请查看最近的知乎文章和近期的tutorial。
【1】IJCAI 2021 Tutorial on Theoretically Unifying Conceptual Explanation and Generalization of DNNs [Website]
【2】IJCAI 2020 Tutorial on Trustworthiness of Interpretable Machine Learning [Website]
【3】世界人工智能大会(WAIC)可信AI论坛 Panel Discussion [Website]
博弈交互可解释性理论体系
- 前言,漂在零丁洋里的体系
- 博弈交互概念、定义、定理、推论、与计算
- 动机:建模知识,连接性能
- 背景基础Shapley value
- 双变元博弈交互
- 多变元博弈交互,及其近似计算
- 多阶博弈交互
- 相关定理与推论
- 自然语言交互树
- 博弈交互与知识表达的关
- 探索中低阶博弈交互所建模的视觉概念及泛化能力
- 探索高阶博弈交互所建模的视觉概念
- 神经网络对纹理概念的建模相比形状概念更具有弹性
- 博弈交互与对抗攻击的关系,推导证明与实验
- 证明博弈交互与对抗迁移性的负相关关系
- 证明多个前人迁移性增强算法可近似归纳解释为对博弈交互的抑制
- 交互损失函数与迁移性的增强
- 博弈交互与泛化能力的关系,推导证明与实验
- 探索交互强度与泛化能力的关系
- 证明Dropout对交互强度的抑制
- 交互强度损失函数与泛化能力的提升
- 从博弈交互层面解释对抗鲁棒性
- 对抗攻击在多阶博弈交互上的效用
- 从知识构成的层面探索对抗训练提升鲁棒性的原因
- 去芜存菁:解释并萃取多个前人防御算法中公共的有效机理
- 神经网络对抗迁移性:从神农尝百草到精炼与萃取
- 完善Shapley value理论体系,建模并学习基准值
- 在博弈交互体系内,对“美”提出一个假设性建模(本文仅介绍第九章)
- 博弈交互与XXXXXXXXXXXXXXXXX
- 博弈交互与XXXXXXXXXXXXXXXXX