#论文导读
#我也不知道老奶奶能不能看懂的论文导读
#AI模型可解释性
很长很长,图片也很多,想要得到比较好的阅读体验可以看我的博客:
https://blog.konata.co/?p=235
https://blog.konata.co/?p=259
或者公众号:
https://mp.weixin.qq.com/s/EeByEyHZpqvt38MmzxF22w
https://mp.weixin.qq.com/s/o7U5AtJxJxas5SZasXqcIg
@mature
———————————————————
【一】机器为什么知道猫是猫
所谓可解释机器学习,就是希望机器不但可以解答问题,我们还可以知道机器是根据什么解答出这个问题,所谓“知其然,且知其所以然”。大致上机器需要能回答两种问题,以物体识别为例,当机器将一张猫咪图片识别为猫咪的时候:
1. 为什么机器认为它是猫?
2. 对机器来说,所谓的“猫”是长什么样子的?
为什么让机器回答这个问题很重要?除了我们希望机器更聪明,更接近人类以外,其实有更多实际上的考虑。在实际生活中,当你在利用机器学习做决策时,你不能只给你的客户提供一个最终的解答,大部分时间你还得告诉他,你为什么这么做,例如,银行如何决定是否给一个人批贷款。又或者,你必须确保你的机器是真正学习到了如何做决策,而不是学到了数据中的偏见(bias),也就是通过检查机器学习是如何做决策的,来对模型进行诊断。
图一是一个辨识是否图片中有马的辨识器,作者用解释模型方法给出了DNN和FV判断图片中有马时“关注”的区域的对比,可以看到DNN主要关注点都在马和上面的人身上,而FV却在左下角有一个特别红的区域,很奇怪。结果分析数据发现,这个数据库里所有马匹的图片全是从一个相同的网站扒下来的,所以左下角有相同的水印。你以为机器学到了如何辨认马,其实它只是学到了看水印而已。这就是一个典型的可解释机器学习在模型诊断上的应用。
从模型的可解释性来说,最简单的线性模型有非常明显的可解释性。线性模型的每一个权值大小就直接反应了各个元素的重要性。然而线性模型能做的事情又是最少的,反而是被诟病为“黑盒子”的神经网络在各个领域上大行其道。一个相对兼顾了可解释性和性能的方法是决策树。决策树的结构本身可以很好解释机器做决策的思路,但通常在解决一个复杂问题时,决策树的结构非常复杂,甚至我们需要用到随机森林,所以可解释性和性能仍然无法很好兼顾。我们与其牺牲性能来换取可解释性,更好的一个选择是,通过某些分析方法,去解释那些好用的模型是如何工作的。
回到第一个问题,机器如何回答:“为什么猫是猫?”这个问题展开来讲,其实是我们希望知道机器做出决策凭据的是什么信息。对于图片来说,我们就是希望确定,机器是根据哪些区域得到答案的。一个比较容易想到的方法是,我们可以通过改变这些信息来看它们对结果的影响程度,例如我们可以对信息进行删减,或是加上一些变化。
考虑删减的思路,我们可以用一个框框,按顺序把图片的每个角落遮住,再丢给机器学习,让机器学习得出结果(这张图片是猫的概率),如图二,最左边的博美犬和它对应的概率图,概览图的周围几乎都是红色的,代表这些部分被遮住之后机器基本上都还能把图片中的博美犬认出来,但是脸部是蓝色的,说明这部分被遮住了之后,机器很难认出这是一只博美犬。如此一来,机器的判断依据就很显而易见。不过这种做法的弊端是,方框的大小和颜色都可能会影响最终的结果,需要人为设计。
另一个方法是,考虑每个像素的变化对结果带来的影响。给定一张图片,我们对每个像素加上一个小小的扰动,其结果也会产生一个小小的扰动,通过计算扰动的比例,也就是求偏微分,就可以得到一个saliency map。如图三,颜色越深的地方代表其信息对结果影响越大。
咋一看这么做还挺方便的,其实这个做法有一个比较大的漏洞。例如当我们考虑一个动物是不是大象的时候,我们可能会通过鼻子的长度来判断,鼻子越长,这个动物越有可能是大象。但是当鼻子长到一定程度之后,再继续增长不会让大象更像大象,也就是说梯度会很小,这种情况下基于梯度的算法就会失效。另外,联系上一讲的模型攻击问题,我们也可以知道,模型的结果会因为一些刻意设计的扰动变得很不一样,所以这样的方法很容易受到攻击。
@konatasick @mature 此方真的好会写,通俗易懂!
@konatasick 好的,谢谢
@lilythepooh 谢谢~这篇我觉得主要还是李宏毅教得好啦,有兴趣的话非常推荐去youtube也(二倍速)看看原视频