李宏毅ML+DL:explainable ML

时光总嘲笑我的痴心妄想 提交于 2020-03-02 09:57:56

       explainable ML 主要是用来告诉你NN为什么会给出这样的结果,可分为两种:
       ①.local explanation:why does the NN think this image is a cat?
       ②.global explanation:what does the NN think a cat look like?

一.local explanation

在这里插入图片描述
       local explanation的主要思想就是把input看成由许多components组成,然后从原来的x中remove or modify一个component变成x’,把x’放到已经训练好的NN中,如果此时NN的结果与原来的结果(input为x时的结果)相差很大,那么就说明这个component对于NN进行判断有很大影响。

在这里插入图片描述
       如上图所示,用一块灰色把照片某些部分遮住,如果被遮住之后的结果与之前差别很大,那么说明被遮住的这块很重要。
       limitation:
       ①.灰色块的大小很关键,不能太大也不能太小
       ②.颜色也很重要,可能换一种颜色结果就不一样了

在这里插入图片描述
       x1…xN表示每个component(它们不一定就是原始数据的每一个维度)。
       yk对xn的偏导就表明了这个component的重要性,偏导越大,一般来说就越重要,在saliency map中就越白。
       limitation:
在这里插入图片描述
       比如说走到红色这个点的时候,大象对鼻子长度的偏微分基本上就是0,但是并不能代表鼻子长度对判断是否是大象不重要。

二.global explanation

       假设我们已经训练好了NN,并且已经给定了yi,那么global explanation要做的就是找到x*,x=argmax⁡(yi),但是有时这样求出来的效果并不是很好,所以就像训练NN时一样,我们也给它加上正则项(下图这个例子中的正则项表示:如果是图片中是一个数字,那么白色的点就不应该很多(白色表示这里有墨迹)):
在这里插入图片描述
在这里插入图片描述
       可以看出,加上正则项后,效果好很多。

       另一种正则的思想是使用image generator。
在这里插入图片描述
       我们本来是想找x,然后我们又知道x = G(Z),所以我们退而求其次,找 Z,找到 Z*之后,再用image generator(比如GAN,VAE等)生成x*.
       这个是如何起限制作用的呢?
       我们知道,我们加上限制,就是想要使找出来的x*尽量地能被人看懂,或者说能尽量地让人看起来它是yi的,而不是一堆人看不懂的东西(比如上面数字识别那个例子,右边就比左边更像正常的图片)。而image generator本来就是生成图片的,也就是说z丢进image generator后输出的x,是人能看懂的图片,这样也就达到了我们限制的目的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!