1、监督自己把50多个小时的视频看下去,所以每看一部分内容做一下笔记,我认为这是比较有意义的一件事情。
2、路漫漫其修远兮,学习是不断重复和积累的过程。怕自己看完视频不及时做笔记,学习效果不好,因此想着做笔记,提高学习效果。
3、因为刚刚入门深度学习,听课的过程中,理解难免有偏差,也希望各位大佬指正。
就算模型知道答案,但是不代表智能或者知道本质。
在一些领域如医疗、银行、判案里面应用深度学习的技术,如果不能给出为什么这样做仅仅只是一个答案,可能并不具有说服性,我们需要一个这么做到原因给上级或者老板交差,就像第二个图片一样,给一个理由礼让的概率就会非常大。
同时如果知道模型为什么这么做,那么我们就可以进一步改进模型。
有人会认为不可解释就不应该做,但是这并不对。explainable的意思是本来是个黑箱,我们给予他们解释,interpretable是原来就不是黑箱,我们找到一个解释。
Explainable ML分为两类
我们可以改造或删除components,如果结果改变了,那么说明这个重要
第二个方法是计算gradient,改变某一个输出,看看loss,如果loss变化大说明重要,这个技术叫做Saliency Map。
亮说明重要,可以看到第二个图亮的地方是四周,这就有问题了。
发现一类是黑色背景
所以Saliency Map技术可以帮我们找到一些解释。下面这个是真实案例,可以看到关注点并不是。
SmoothGrad技术,随便加噪声然后生成Typical,然后平均得到最终的图
但是光看gradient并不一定能反映问题,如下图,鼻子长度,超过一定之后就不增加可能性了。
我们可以将每一层的输出降维然后进行可视化。
可以看到经过8层之后,就知道不同的人说的同一句话放在一起,说明学习到了语音信息。
也可以用可视化的方法解释,attention有些时候可以解释有些时候不可以解释。
Probing的方法是训练一个模型去判断,但是需要小心,因为可能是模型没有Train好,导致发现不了信息。
也不一定局限在分类器,也可以是TTS,这个会抹去声音特征提取文本特征。
将钢琴声加入,在LSTM层之后被过滤调了。
我们可以分析每个filter都在侦测什么。
也可以看模型认为什么是最符合某一类的。但是这个并不容易,有可能模型就感觉一些噪声很像数字,如下图。
所以我们需要加入一些限制,就可以得到一些东西,但是这个限制并不容易设置需要根据人的经验。
也可以用生成器,生成器产生的x在分类器里产生的分数越大越好,这样就可以看产生的image是什么样子。
结果如下图
其实我们并不关心机器想的是什么,就很像人强加的解释,给人一种安慰。