Convolutional Neural Networks

关于

卷积网络经典文章导读,文章列表是参考 CS231N 课程。

AlexNet

论文:Imagenet classification with deep convolutional neural networks
Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, 2012

Hinton 带学生打比赛的故事。

Amazon’s Mechanical Turk crowd-sourcing tool

结构上的创新

相关论文:V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010

降低过拟合技巧

$$
[\mathbf{p}_1, \mathbf{p}_2, \mathbf{p}_3] [\alpha_1 \lambda_1, \alpha_2 \lambda_2, \alpha_3 \lambda_3]^T
$$

量化评估

用最后的4096维特征作为图像向量,评估图像的相似度,效果很不错,用 auto-encoder 于这些特征上比在raw data上效果应该会更好。

ZFNet

论文:Zeiler M D, Fergus R. Visualizing and Understanding Convolutional Networks[C]. european conference on computer vision, 2013: 818-833.

解卷积解释:设原始信号为 $(f)$,卷积核为$(k)$,解卷积核为$(k')$,那么经过卷积和解卷积,信号变为
$(f * k * k')$,利用卷积运算的结合律,也可以表达为 $( f * (k * k') )$,如果要使得解卷积后的信号
和原始信号一致,那么需要 $( k * k' = \delta )$,即两个卷积核的卷积为单位冲击函数,也就是
$( \sum_{x',y'} k(x - x', y - y') k'(x', y') = \delta(x, y))$,即只有在$(x=0,y=0)$时为1,
其他情况为0。这里将卷积核水平和垂直翻转后,相当于 $( \sum_{x',y'} k(x - x', y - y') k(-x', -y'))$
可以看到,当x和y都为0时取得最大值(达到匹配),其他情况虽然不为0,但小于匹配的时候的值,所以可以看做逆滤波的一种近似实现. 不过简单试验结果表明,这种近似太粗糙了。

卷积网络可视化

zfnet-res

zfnet-res2

特征泛化能力

问题

VGG net



GoogleLeNet

if the probability distribution of the dataset is representable by a large, very sparse deep neural network, then the optimal network topology can be constructed layer after layer by analyzing the correlation statistics of the pre- ceding layer activations and clustering neurons with highly correlated outputs

ResNet

参考WIKI残差网络

定位与检测

OverFeat

论文:OverFeat:Integrated Recognition, Localization and Detection
using Convolutional Networks,Pierre Sermanet, David Eigen,
Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun,2014.

combining many localization predictions, detection can be performed without training on background samples and that it is possible to avoid the time-consuming and complicated bootstrapping training passes

IOU的定义:label框为A,groundtruth框为B,$(IOU = \frac{ area(A \bigcap B)}{ area(A \bigcup B)} )$

目标检测 HOG

论文:Histograms of Oriented Gradients for Human Detection,Navneet Dalal and Bill Triggs,2005.

RCNN

论文:Rich feature hierarchies for accurate object detection and semantic segmentation

RCNN

Region proposals

Feature extraction

Test-time detection

  1. 利用选择性搜索选出近2000个候选区域
  2. 用 CNN 提取每一个区域的特征向量,对每一个类别,使用对应的 SVM 分类器对特征打分
  3. 采用贪心的非最大值抑制方法(greedy non-maximum suppression, 每一个类是独立的):如果一个区域和另一个得分更高的区域 IoU 重叠度高于某个阈值,那么就拒绝这个得分低的区域。阈值是学习到的阈值?

  4. 性能对比(10K个类被):DPM+Hashing,5min/image; RCNN, 1min/image. T. Dean, M. A. Ruzon, M. Segal, J. Shlens, S. Vijayanarasimhan, and J. Yagnik. Fast, accurate detection of 100,000 object classes on a single machine. In CVPR, 2013.

Train

Fast R-CNN

fast rcnn

Faster R-CNN

用CNN做 region proposal,关键技术: Region Proposal Networks

CNN可视化

RCNN可视化

http://cs.stanford.edu/people/karpathy/cnnembed/

BP to Image 方法:

可视化某个神经元的响应对输入图片的梯度(BP to Image),将该层所有神经元的梯度置0,将要可视化的那个神经元梯度置1!
然后运用BP算法,求出梯度。

$$
\frac{\Delta active}{\Delta I}
$$

由于高级特征具有不变性,不是针对某一个图片的,直接解卷积可视化得到的效果不好。
可以对于特定的图片,用这个图片做引导,通过 guided bp 得到条件梯度。

Guided BP
Guided BP2

ZF 解卷积方法

寻找图像I使得在类c上的score $(S_c(I))$ 最大!

$$
\arg \max_I S_c(I) - \lambda ||I|| _ 2^2
$$

利用 BP 算法优化,固定权重,优化输入!输入初始化为0值图片! Sc 是未归一化的score,优化归一化的score(即概率)效果反而不明显。

给定图像$(I_0)$,根据输入像素对某个类的score影响效果排序,影响效果通过梯度刻画

$$
w = \frac{\partial S_c}{\partial I} | _ {I_0}
$$

$$
x* = \arg \min _ x l(\Phi(x) - \Phi(x_0)) + \lambda R(x)
$$