卷积神经网络结构的演变
经典卷积神经网络
- LeNet-5
1 由LeCun等人于1998年提出;
2 主要进行手写数字识别和英文字母识别;
3 经典的卷积神经网络,各模块齐全,是学习CNN的基础;
4 网络结构:
输入3232 1024个神经元
C1层: 6个55卷积核,得到:6个 32-5+1=28,2828特征图,神经元个数为628*28 = 4704个
S2层: 下采样层,每个下抽样节点的4个输入节点求和后取平均(平均池化),均值乘上一个权重参数,加上一个偏置参数,作为激活函数的输入,激活函数的输出既是下一层节点的值,得到61414的特征图,池化核选择2*2
C3层: 用55的卷积核对S2层输出的特征图进行卷积后,得到6张1010的脱,然后将这6张图片相加在一起,加一个偏置项,然后用激活函数进行映射,得到一张1010的特征图,这里需要得到16张1010特征图,因此需要参数个数为1665*5
S4层: 对16张1010特征图进行最大池化,得到16张55的特征图,神经元个数为1655=400
C5层: 用5*5的卷积核进行卷积,得到120个特征图(120个卷积核),神经元个数为120(这里实际上是全连接,但是原味使用了卷积降低了神经元个数)
F6层: 84个节点,训练参数和连接数都是(120+1)*84 = 10164
Output层: 共10个节点,分别代表数字0-9.
-
AlexNet
1 由Hinton学生Alex于2012年提出的,获得ImageNet LSVRC-2012(物体识别挑战赛)冠军,1000个类别120万幅高清图像;2 error 26.2%(2011)–> 15.3%(2012)
3 确定了CNN在计算机视觉领域的王者地位
4 贡献: 首次成功应用RELU作为激活函数;使用dropout丢弃部分神经元,避免过拟合;重叠Maxpooling 提升了特征的丰富性; 使用cuda加速训练过程;使用数据增强256*256图像大小中重复截取224 * 224大小的区域,增加数据量;
5 网络结构:分为8层(卷积和池化算作一层),包括5个卷积层和3个全连接层
第一层: 96个1111卷积核,步长为4:(227-11)/4 +1 =55;96个33卷积核,步长为2:(55 - 3)/2 + = 27;
第二层:256个55卷积核,步长为1,同时用padding保证输出尺寸不变,(27+22-5)/1+1 = 27,再使用最大池化(核大小为33,步长为2),从而输出为1313*256(27-3)/2 +1 = 13
第三、四层: 都是用卷积核为33,步长为1的same卷积, (13+2-3)/1 +1 = 13,输出为384384*13
第五层:卷积核33,步长为1same卷积,输出2561313,在进入全连接之前,通过33,步长为2 的最大池化层进行数据将采样,输出为66256,((13-3)/2+1=6),并进行扁平化处理变为9216个单元
第六、七、八层:全连接层加上soft Max分类器,输出1000类的分类结果
-
VGGNet(VGG-16)
1 由牛津大学和DeepMind公司提出,获得ImageNetLSVRC-2014亚军;2 结构规整,拓展性强,相较于AlexNet,该网络采用卷积层均为33的卷积核,且均为步长为1的same卷积,池化层均使用22池化核,步长为2.
3 网络结构
4 两个卷积核大小为33的卷积层串联后的感受野尺寸为55,相当于单个卷积核大小为55的卷积,参数量比值为(233)/(55)=72%;
5 两个卷积层串联可以使用两次relu激活函数,而一个卷积层只能使用一次。
-
Inception Net
1 Google公司2016年提出,是ImageNetLSVRC-2014冠军;2 文章提出获得高质量模型最保险做法就是增加模型的深度或者宽度(层核或者神经元数),采用了22层网络;
3 深度: 在不同深度处增加了两个loss来避免上述的梯度消失问题;
4 宽度: Inception Moudule 包含四个分支,在卷积核33,55之前,maxpooling之后,分别加上了1*1的卷积核(作用:可以跨通道组织信息,来提高网络的表达能力;可以对输出通道进行升维和降维;)起到了降低特征图厚度的作用。
5 Inception V4去掉了全连接层
-
ResNet
1 又叫残差神经网络,是由微软研究院的何凯明等人2015年提出;2 获得ImageNetLSVRC-2015冠军;
3 随着卷积网络层数增加,误差的逆传播中存在梯度消失和梯度爆炸的问题,同样也会导致模型训练难以进行;
4 甚至随着网络的加深,模型在训练集上的训练误差会出现先降低再升高的现象;
5 残差网络的引入,有助于解决梯度消失问题。
6 ResNet核心叫残差块(Residual block)的小单元,在标准神经网络基础上加入了跳跃连接。
-
Densenet
1 两个层之间都有直接的连接,对于每一层,使用前面所有层的特征映射作为输入,并且使用其自身的特征映射作为所有后续层的输入。2 5层稠密块示意图
3 可以自然地扩展到数百个层,而没有表现出优化困难;4 在实验中,DenseNet 随着参数数量的增加,在精度上产生一致的提高,而没有任何性能下降或过拟合的迹象
5 优点: 缓解了梯度消失问题;加强了特征传播,鼓励特征重用;一定程度上减小了参数量
-
R-CNN系列
1 Region- CNN的缩写,主要用于目标检测;2 来自于2014年CVPR论文Rich feature hierarchies for accurate object detection and semantic segmentation
3 目标检测的验证指标提升到53.3%,相较于之前最好的结果提升了30%;
4 采用ImageNet 上已经训练好的模型,然后在PASCAL VOC数据集上进行fine-tune;
5 目标检测的衡量准则:
类别正确且置信度大于一定阈值,预测框与真实框(ground truth)的IoU大于一定阈值,比如IoU<0.5时,认为没有正确检测出目标
5 实现过程: 区域划分:给定一张输入图片,从图片中提取2000个类别独立的候选区域,R-CNN采用的是Selective Search算法;
特征提取: 对于每个区域利用CNN抽取一个固定长度的特征向量,R-CNN使用的是AlexNet;
目标分类: 再对每个区域利用SVM进行目标分类;
边框回归:Bounding box Regression(Bbox回归)进行边框坐标偏移优化和调整
6 Selective Search算法
核心思想: 图像中物体可能存在的区域应该有某些相似性或者连续性的,选择搜索基于上面这一想法,采用子区域合并的方法提取bounding boxes边界候选框;
通过图像分割算法将输入图像分割成许多小区域
根据子区域之间的相似性,进行区域迭代合并,每次迭代合并的子区域作外切矩形(bounding boxes),外切矩形就是通常所说的候选框。7 bounding box 回归就是找到函数f,将(Px,Py,Pw,Ph)映射为更接近(Gx,Gy,Gw,Gh)的(G’x,G’y,G’w,G’h)
卷积神经网络的感受野
1 卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小,即特征图上的一个点对应输入图上的区域。
2 可以采用逐层往前计算
第i层的感受野大小和第i-1层的卷积核大小和步长有关,同时也与第i-1层感受野大小有关;
假设最后一层(卷积层或池化层)输出特征图感受野的大小(相对于其直接输入而言)等于卷积核的大小