-
Notifications
You must be signed in to change notification settings - Fork 0
Lecture12 Visualizing and Understanding
cqchu edited this page Feb 28, 2018
·
9 revisions
- Conv layer的(filter)可视化
- 上图是conv1的filter的可视化,由于此时filter的channel都为3,所以直接以RGB图像方式可视化。可以看到,其大部分都是检测有向边或者强烈色彩对比,类似于人视觉早期做的事;
- 上图是更深层次的conv layer的filter的可视化,由于此时filter channel都不为3,所以采用将每个channel作为一个灰度图的方法来显示;
- 上图是conv1的filter的可视化,由于此时filter的channel都为3,所以直接以RGB图像方式可视化。可以看到,其大部分都是检测有向边或者强烈色彩对比,类似于人视觉早期做的事;
- 最后一个FC layer的(feature map)的可视化
- 以AlexNet的4096维特征向量为例,先给他降维(PCA or t-SNE)到2维并显示到2维坐标系内,上图是Mnist的可视化,每一个点对应一张测试图片,可以看出,不同数值图片对应的feature聚集在不同的区域;
- 其他更多类型的图片,也可以将4096维feature降到2维作为坐标,然后将原图片作为点放到二维坐标系中相应位置,观察相近位置的图片的关系,参见此网页;
- Maximally Activating Patches:将大量的图片送入CNN中,观察其某一conv layer的一个filter的输出值,将对应较大输出(activation)的图片列举出来,可以发现这个filter对于什么样的特征比较敏感;
- Occlusion Experiments:将原始图片中一个windows使用图片的像素均值来代替,看看分类score的变化,在整张图片上滑动这个window,知道原图片中哪些部分对于分类是至关重要的;
- Saliency Maps:计算分类score对于原图片中每一个像素的梯度,梯度大的地方说明这个像素对于分类比较重要,此种方法也可以用来做Segmentation;
- guided backprop:此时观察神经网络中某一个神经元对像素值的变化,正常会通过反向传播来得到这个梯度,现在修改ReLu层反向传播,即只有值为正的梯度才会在此处获得反向传播,最终结果显示这样得到的结果更加clean,观察一层神经元(所对应的filter)对应的原始像素区域,可以可视化的观察这些神经元究竟在干什么或者说是在找什么;
- Gradient Ascent:
- 生成一幅能最大化分类score(因为是最大化,所以是Ascent)或激活一个神经元的人工图像:I = argmax(f(I)) + reg(I),正则化通常是L2正则化;
- Initialize image to zeros
Repeat: - Forward image to compute current scores
- Backprop to get gradient of neuron value with respect to image pixels
- Make a small update to the image
- Initialize image to zeros
- 此种得到的图片在颜色上一般效果不好,形态上也需要仔细分别,可以通过一些如高斯模糊,将一些梯度很小且值也很小的像素值置位0等方法提升可视化的效果;
- 也可以使用此种方法来可视化其他卷积层等中间特征;
- 生成一幅能最大化分类score(因为是最大化,所以是Ascent)或激活一个神经元的人工图像:I = argmax(f(I)) + reg(I),正则化通常是L2正则化;
- DeepDream:上述生成图像是设置原始图像为零进行Gradient ascent,现在是对于一张有意义的原始图像使用类似的方法,从而在原始图像中添加一些特征;
- Feature Inversion:根据一张图片得到的特征,还原成一张图片,这两张图片的feature vector应该尽可能接近,且生成的图片尽可能自然;最终结果表示,越靠前的feature还原的图片和原始图片越接近;
- Texture synthesis:
- 将纹理样本图片送入神响;
- 将原始图片送入神经网络,计算其在对应层Gram矩阵,计算其与纹理图片Gram矩阵间loss,用Gradient descent(因为想要使loss小,所以是下降)修改原始图片;
- Neural Style Transfer:Feature Inversion + Texture synthesis
- 使用Content Image(用于比对Feature Inversion loss)和Style Image(用与Texture synthesis时的Gram loss),通过综合这两个任务,即可达到目的;
- 两个loss间所占总loss比重不同,输出结果的侧重也各有不同
- 还有各种各样的改进型,以提升效率(单次传播),提升风格种类等;