假设我们有一个经过训练的卷积神经网络,可以在Tensor-Flow中对图像进行分类(wlog灰度)。
给定经过训练的网络和测试图像,人们可以追踪其中的哪些像素是显着的,或者“等效地”追踪哪些像素最负责图像的输出分类。在Theano一个漂亮的解释和实施细则,在此给出的文章。
假设对于与输入图像直接链接的第一层卷积,我们确实具有每个卷积核的参数梯度。分类功能。
如何将梯度传播回输入层,以便计算图像的每个像素的偏导数?
传播并累积回梯度,将为我们提供显着的像素(它们是幅值较大的像素)。
找到梯度wrt。到目前为止,我做了第一层的内核:
总而言之,它看起来像:
其中,“输出”是NN的输出层的最大值。g1是一个(k,k,1,M)张量,因为我在第一层使用了M:kxk卷积核。
现在,我需要找到在每个输入像素上传播g1的正确方法,以计算其导数wrt。输出。