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,是人能看懂的图片,这样也就达到了我们限制的目的。
来源:CSDN
作者:缦旋律
链接:https://blog.csdn.net/weixin_41391619/article/details/104580600