来源:知乎 -Qs.Zhang
https://zhuanlan.zhihu.com/p/30074544
【导读】大家好,我叫张拳石,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”一文中,我主要介绍了如何把一个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的误差。
转自:专知
阅读全文请点击“阅读原文”