可解释的人工智能有两种方案,一种是局部的可解释性,一种是全局的。
局部的方案的一种想法,把一个图片用灰色的方块蒙上一块,看是否还能识别出来,这个时候要注意方块的大小甚至颜色都可能有影响。
另一个想法是,把一个输入feature做。一点点小的调整,看输出数据的变化大小,据此来判断什么输入feature比较重要,其实就是偏微分。这样可能出现饱和的问题,大象鼻子的问题,可能发现不了重要的feature。
这两种方法都是有可能出现恶意攻击的。
全局解释的方案是这样的,我们希望知道一个模型他心里最典型的猫长什么样子? 一种简单的思想之前介绍过,是找一个x让输出的y最大,但是实验发现可能效果并不好,可以加一些正则化来做这件事,要作出好的图需要很复杂的正则化。
可以考虑加入一个generator,这样的generator只需要输入一个低维度的向量就可以了,所以很好优化。 很巧妙。
另一个思路是用可解释的模型来模拟不可解释的模型,LIME技术。把一个黑盒预测的结果作为训练数据,丢到一个可解释的模型里面。比如用线性模型来模拟深度网络,虽然对于整个模型不容易模型,但是可能可以在一个小区域里面用线性模型来模拟,但是也有很多参数可能需要调。在想解释的数据周围创造数据来用简单模型模拟。
决策树也可以来模拟不可解释的模型,要求决策树的参数跟黑盒子参数数量一样,可以做到把决策树作为神经网络的正则化的一部分,把决策树的复杂程度作为正则化,这样可以使得决策树足够简单。