1. 基本概念
1)CNN:Convolutional Neural Networks
2)FC:Fully Connected
3)IoU:Intersection over Union (IoU的值定义:Region Proposal与Ground Truth的窗口的交集比并集的比值,如果IoU低于0.5,那么相当于目标还是没有检测到)
4)ICCV:International Conference on Computer Vision
5)R-CNN:Region-based Convolutional Neural Networks
6)AR:Average Recall
7)mAP:mean Average Precision
8)RPN:Region Proposal Networks
9)FAIR:Facebook AI Research
10)w.r.t.:with respect to
11)Image Classification(what?):图像分类
12)Object Detection(what+where?)、Localization、Segmentation:对角检测、定位、分割
2. CNN基本知识
2.1 CNN的卷积流程
卷积计算过程如下图所示:
我们刚才描述的即是卷积。可以把卷积想象为信号处理中的一种奇特乘法。也可将两个矩阵生成点积想象为两个函数。图像就是底层函数,而过滤器就是在其上“卷过”的函数。
图像的主要问题在于其高维度,原因是对高维度的处理时间和运算能力成本很高。卷积网络就是为了通过各种方式降低图像的维度而设计的。过滤器步幅即是减少维度的一种方法,另一种方法是降采样。
2.2 Activations maps的个数与Filter的个数一致
2.3 输入层与Filter、Padding、Stride、参数和输出层的关系
1) 参数个数由Filter定义及Filter个数决定,其公式为:
The number of parameters = (FxFxD + 1) * K
2)一个Activation Map共享一个Filter及其权重和偏差
3)Activation Map个数与Filter个数相同
2.4 Pooling(池化/降采样)过程
1) Pooling在每个Activation Map上单独做,在Pooling之后,Activation Map数量不变
Pooling层一般用于降维,将一个kxk的区域内取平均或取最大值,作为这一个小区域内的特征,传递到下一层。传统的Pooling层是不重叠的,使Pooling层重叠可以降低错误率,而且对防止过拟合有一定的效果。
2)Pooling过程描述(Pooling过程不需要参数)
2.5 深度革命2015
1)深度革命中遇到的问题:
随着CNN网络的发展,尤其的VGG网络的提出,大家发现网络的层数是一个关键因素,貌似越深的网络效果越好。但是随着网络层数的增加,问题也随之而来。
(1)第一个问题: vanishing/exploding gradients(即梯度消失或爆炸):这就导致训练难以收敛。但是随着 normalized initialization and BN(Batch Normalization)的提出,解决了梯度消失或爆炸问题。
(2)第二个问题:网络越深,训练误差和测试误差越大。在收敛问题解决后,又一个问题暴露出来:随着网络深度的增加,系统精度得到饱和之后,迅速的下滑。让人意外的是这个性能下降不是过拟合导致的。对一个合适深度的模型加入额外的层数导致训练误差变大。如下图所示,可通过Deep Residual Learnin