神经网络可视化经典的方法有两种,分别是反卷积和导向反向传播。反卷积和导向反向传播都是基于反向传播。下面我们来看反卷积和导向反向传播的特点以及例子:
上图为反卷积和导向反向传播在经过relu层时对梯度采取的不同的方法。
导向反向传播:通过修改RELU的梯度反传,使小于0的部分不反传,这样到达第一个conv层的梯度就是对后面relu激活起作用的梯度,对应的就是对网络起作用的区域。
以上的两种方法,我们并不能清楚得到看到到底是图片中的哪一个区域让网络判断出这个图片是什么。因此我们引入了以下的两种方法。
在神经网络中,最后一层卷积层包含了丰富的空间和语义信息,下一层连接的就是全连接层以及softmax层很难利用可视化表示出来,因此,对于我们来说,最后一层卷积层至关重要。
1.CAM:是将神经网络的全连接层全部替换为Gap层(Global Average Pooling),并重新训练神经网络。
GAP之后,我们得到了最后一个卷积层每个特征图的均值,通过加权和得到输出(实际中是softmax层的输入)。需要注意的是,对每一个类别C,每个特征图k的均值都有一个对应的w,记为w_k^c。
将某个类别对应的所有w_k^c取出来,求出它们与自己对应的特征图的加权和即可。由于这个结果的大小和特征图是一致的,我们需要对它进行上采样,叠加到原图上去,就生成了一个热力图,图中显示是由哪写区域来决定该图是哪个类别的。
CAM支持任意大小的输入。
1.Grad_cam:一种卷积神经网络的解释方法,