上篇提到深度学习中对隐层的分析,隐层分析需要进行大量神经元节点的分析,且只能分析到的神经元是否有意义,却无法进行优化改造。这篇我们分享一种新的思路,关注双模型的不一致性解释。
一个问题重新思考:我们什么时候需要可解释能力?
如果一个模型的精确度很高,百分百正确,我们可能不需要可解释能力。如果一个模型精度不够高,我们就会急切想知道机器为何出错。如果机器出错的地方,也是人类出错的地方,那么人们可能将心比心,不会削弱对机器的信任。对于人类不容易出错,但机器却出错的地方,人类对机器的信任度就会急剧降低。比如对抗样本攻击,在熊猫图片中加些精心设计的噪声,人类仍然能容易的识别出是熊猫,机器却会将其判断为长臂猿。这时候,人类就急切的需要知道机器为何会做出这种判断。人类需要可解释能力的另一个原因是机器与人类目标的错位。有时候人类想要的是因果关系,但监督学习给出来的只是相关关系。
想象这样的场景,当医生看过影像后跟患者说因为balabala,诊断为癌症时,其实医生说的话患者基本也听不懂,但患者不会因此认为医生诊断是错的。同理一个模型所给的结果,人们没办法理解它,但不代表模型是错的。诚然,我们给可解释是为了避免模型的“错误决策”,但似乎也没必要完全地让复杂模型向着人们所能理解的方向靠拢,就好像非要让拉低医生跟患者处于一个水平。
同样的场景,如果是两个医生会诊,他们之间的沟通和表达很容易彼此理解。且当两人给出一致结论时,患者似乎很少关注诊断原因。只有当两者诊断结论不一致时,才有必要关注决策原由。故可解释性一般发生在两个同样层次的系统给出了不同的决策。
由上我们发现,可以构建一个“可解释”的B系统,去跟A系统比较