目录
S12.1可视化
CNN网络是一个黑盒子,这一节主要是为了理解CNN学到了什么,CNN中间层的作用是什么,CNN在找图片的什么。
第一个卷积层Filters可视化:对一些常见网络的第一层卷积层的Filters可视化结果如下所示。可视化方法是,Filters的形状为(H,W,Depth=3,Num),将Filters视为Num个彩色图像,图像形状为(H,W,3)。
最后一层的输出可视化:最后一层,例如FC7层,该层输出是图像的卷积特征,是一个4096维的向量。其可视化方法有Nearest Neighbors和Dimensionality Reduction。Nearest Neighbors对图像卷积特征向量进行L2距离度量。Dimensionality Reduction是指使用某种降维方法(例如PCA,t-SNE)将特征向量从4096维减少为2维。2维向量看作是xy坐标系的某个点,在这个点填充对应的图像。详见http://cs.stanford.edu/people/karpathy/cnnembed/ 。
Maximally Activating Patches:可视化来自特定层/特定特征的最大激活的图像块。详见论文"Striving for Simplicity: The All Convolutional Net"。
Occlusion Experiments:排除实验,想要弄清楚究竟是输入图像的哪个部分导致神经网络作出分类的决定。该方法将输入图像的某个部分进行遮挡,使用遮挡后的图像进行分类预测。遮挡块划过输入图像的每个位置,然后重复相同的过程,绘制图像的热力图。热力图每个点为预测的分类概率。详见论文 "Visualizing and Understanding Convolutional Networks"。
显著图Saliency Maps:该方法旨在确定图像中的哪些像素为分类做出的贡献。详见论文 "Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps"。
引导式反向传播(guided) backprop:该方法旨在理解网络中间的特征,找出神经元对应图像的哪个部分。详见论文" Visualizing and Understanding Convolutional Networks"。
梯度上升Gradient Ascent:该方法旨在可视化CNN特征。该方法不更新参数梯度,而是改变输入图像,从而生成一个最大限度地激活神经元的合成图像。该方法也可以理解网络中间的特征。详见论文"Understanding Neural Networks Through Deep Visualization"。
S12.2其他
Fooling Images / Adversarial Examples:可以使用梯度上升方法来创建对抗样本。步骤如下:
- Start from an arbitrary image
- Pick an arbitrary class
- Modify the image to maximize the class
- Repeat until network is fooled
DeepDream:该潜在想法是与其合成一个图像来最大化一个特定的神经元,不如放大网络中某一层神经元的激活,因此其能够放大网络学到的特征。详见论文"Inceptionism: Going Deeper into Neural Networks"。DeepDream的简单实现步骤如下:
- Choose an image and a layer in a CNN;repeat:
- Forward: compute activations at chosen layer
- Set gradient of chosen layer equal to its activation
- Backward:Compute gradient on image
- Update image
Feature Inversion:给定一个图像的CNN特征向量,找到一个新的图像,这个图像能够匹配给定的特征向量,而且看起来很“自然”(图像先验正则化)。
纹理合成Texture Synthesis:给定一个纹理图像块,可以生成一个更大的具有相同纹理的图像。解决该任务的方法是Nearest Neighbor和使用Gram Matrix的神经网络方法。该方法按扫描线顺序一次生成一个像素;从已经生成的像素中形成邻域,并从输入中复制最近的邻域。详见论文"Fast Texture Synthesis using Tree-structured Vector Quantization"。使用Gram Matrix的神经网络方法详见论文"Texture Synthesis Using Convolutional Neural Networks"。
风格迁移Style Transfer:一个用于解决风格迁移网络的模型来自论文"Perceptual Losses for Real-Time Style Transfer and Super-Resolution"。该模型输入两个图片,一个是内容图片,一个是风格图片。网络有两种损失,即内容损失和风格损失。可以调整两个损失的权重以及风格图片的大小来对生成的图片进行控制。还有解决该问题的其他模型。其他论文"A Learned Representation for Artistic Style","Instance Normalization: The Missing Ingredient for Fast Stylization"。