对神经网络的可视化可以帮助我们理解“网络在做什么?提取的是什么特征?”等一系列关于网络工作的本质问题。结合代码测试,观察效果可能来理解更好,留坑目前还没做理解,此处就只列下目录了。
一、第一层的可视化
即将第一层滤波器根据它的权重值可视。
二、最后一层的可视化
在最后一层一般维度会很大,比如2048、4096数量级,使用Nearest Neighbors方法或者Dimensionality Reduction方法(比如PCA、t-SNE)可视化。
三、Visualizing Activating
Maximally Activating Patches
四、Which pixels matter: Saliency vs Occlusion
五、Visualizing CNN features
(guided) backprop 、
Gradient ascent :可以这样理解?在固定网络和损失函数时,给出一张全零的“白纸”,根据梯度更新图像像素而非网络参数,最小化损失得到一幅新的可以代表网络特征的图像?
为了满足一个模型而生成一幅图像,也是Fooling Images/Adversarial Examples的思想(例如GAN)。先生成一幅初始图像,更新图像去满足某个得分函数,一直重复这个过程直到网络认为这幅图像满足了这类得分函数。
下面几个结果也都是生成图像:
六、DeepDream: Amplify existing features
七、Feature Inversion
八、Texture Synthesis
九、Neural Style Transfer