前言
机器学习模型的可解释性(下)
Global explanation
根据模型的参数检查对这个network而言,(一只猫)长什么样子。假设有一张图片作为CNN的输入,有一个filter比如说filter1在他的feature map的很多位置都有比较大的值,这意味着这个图片有很多filter1负责侦测的特征。
想知道对filter1而言,它想看到的pattern长什么样子。需要创造一张database里面没有的图片,图片包含filter1要检测的pattern。如何找到这张图片,假设filter1的feature map里面的每一个element叫aij。找一张图片x,这个x当做要训练的参数,这张图片通过convolutional layer后输出feature map,filter1对应的featur map里面的aij的值越大越好。找一个x让aij的总和,也就是filter1的feature map的output的值越大越好。找到这个x后,观察filter1在检测什么样的pattern。
如果去看最终image classifier的输出,找一个x使得某一个类别的分数越高越好(如数字识别中数字1或者2等等,某一个类别),结果观察到的都是杂讯,无法看到像数字的样子。
如果想看到比较像是人想象的数字,则要加入更多的限制。要把这些限制加入到optimization当中,同时让yi和R(X)越大越好。R(X)是用来衡量x多像一个数字(比如说白色的点越少越好)。
通过Generator可能可以看到清晰图片。训练一个image的generator,输入是一个low-dim的vector z,输出一张图片x。将image generator和image classifier连接。现在不是去找一个x让它对某一个类别信心越高越好,而是找一个z,希望z通过image generator和image classifier产生y以后,希望y对应的某一个类别它的分数越大越好。再将这个z输入进generator看看产生的image x长什么样子。
另一种方法
如果一个neural network很复杂,那用一个简单的模型模拟复杂模型,然后分析简单模型。
x1-xn输入neural network输出y1-yn。然后训练一个linear model模仿neural network。linear model的可解释性比neural network要高。
Linear model可能无法模仿黑盒子的全部行为,可以用linear model模仿黑盒子的一小个区域内的行为。
总结
视频学习地址:https://www.bilibili.com/video/BV13Z4y1P7D7/?p=26&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=3a369b537e1d34ff9ba8f8ab23afedec