基础网络学习
- 这些net的结构是怎么样的
- 为什么要这么设计
- 这个net的优点是什么
- 还存在那些问题
AlexNet
Imagenet Classification With Deep Convolutional Neural Networks.
- paper: http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
- 作者:Alex Krizhevsky
网络结构
- 共有8层,其中有5个卷积层,3个全连接层
- 最后一层全连接层的输出通过一个1000维的softmax层
- 卷积核从11到5再到3不断减小,特征图也通过Pooling 在第1、2、5层折半式减少,到第5层卷积的时候,特征已经提取的比较充足,使用两个全连接层和一个softmax层输出最终的分类概率。
conv1 阶段
输入数据:227×227×3
卷积核:11×11×3;步长:4;数量(也就是输出个数):96 (向下取整)
卷积后数据:55×55×96 (原图N×N,卷积核大小n×n,卷积步长大于1为k,输出维度是(N-n+2p)/k+1)
relu1后的数据:55×55×96
Max pool1的核:3×3,步长:2 ((N-k) / s + 1 )
pool1后的数据:27×27×96
norm1:local_size=5 (LRN(Local Response Normalization) 局部响应归一化)
最后的输出:27×27×96
conv2 阶段
输入数据:27×27×96卷积核:5×5;步长:1;数量:256
卷积后数据:27×27×256 (做了Same padding(相同补白),使得卷积后图像大小不变。)
relu2后的数据:27×27×256
Max pool2的核:3×3,步长:2
Max pool2后的数据:13×13×256 ((27-3)/2+1=13 )
norm2:local_size=5 (LRN(Local Response Normalization) 局部响应归一化)
最后的输出:13×13×256
conv2中使用了same padding,保持了卷积后图像的宽高不缩小。
conv3 阶段
输入数据:13×13×256卷积核:3×3;步长:1;数量(也就是输出个数):384
卷积后数据:13×13×384 (做了Same padding(相同补白),使得卷积后图像大小不变。)
relu3后的数据:13×13×384
最后的输出:13×13×384
conv3层没有Max pool层和norm层
conv4 阶段
输入数据:13×13×384
卷积核:3×3;步长:1;数量(也就是输出个数):384
卷积后数据:13×13×384 (做了Same padding(相同补白),使得卷积后图像大小不变。)
relu4后的数据:13×13×384
最后的输出:13×13×384
conv4层也没有Max pool层和norm层
conv5 阶段
输入数据:13×13×384
卷积核:3×3;步长:1;数量(也就是输出个数):256
卷积后数据:13×13×256 (做了Same padding(相同补白),使得卷积后图像大小不变。)
relu5后的数据:13×13×256
Max pool5的核:3×3,步长:2
Max pool2后的数据:6×6×256 ((13-3)/2+1=6 )
最后的输出:6×6×256
conv5层有Max pool,没有norm层
fc6 阶段
输入数据:6×6×256
全连接输出:4096×1
relu6后的数据:4096×1
drop out6后数据:4096×1
最后的输出:4096×1
fc7 阶段
输入数据:4096×1
全连接输出:4096×1
relu7后的数据:4096×1
drop out7后数据:4096×1
最后的输出:4096×1
fc8阶段
输入数据:4096×1
全连接输出:1000
fc8输出一千种分类的概率。
创新点如下:
- 采用了ReLU作为激活函数:ReLU(x) = max(x, 0)
- LRN: 局部相应归一化。只对数据相邻区域做归一化处理,不改变数据的大小和维度。
- Overlappng(重叠池化):在做池化的时候,池化核的大小为n*n时,步长为k,如果K==n的时候是正常池化,k<n的时候池化会有重叠的部分。有过拟合的作用。
- Dropout: 在FC6,FC7引入Dropout,以一定的概率(50%)丢弃某个神经元,不进行前向和反向的传播(保留权值)。
- 数据增强
VGG
Very Deep Convolutional Networks for Large-Scale Image Recognition.
- pdf: https://arxiv.org/abs/1409.1556
- 作者:Karen Simonyan
网络结构
- 核心思想:在保证相同的感受野下,利用多个小卷积核替代大卷积核,不但减小了参数量,而且加深了网络结构。
- 为什么减少了参数量:例如3个步长为1的3 * 3卷积可以看成一个7*7的卷积。前者的参数量为 3 ∗ ( 3 ∗ 3 ∗ C i n ∗ C o u t ) 3*(3*3*C_{in}*C_{out}) 3∗(3∗3∗Cin∗Cout),后者的参数量为 1 ∗ ( 7 ∗ 7 ∗ C i n ∗ C o u t ) 1*(7*7*C_{in}*C_{out}) 1∗(7∗7∗Cin∗Cout).
- 为什么感受野相同:感受野指得是,与输出有关的输入图片的局部大小。5 * 5的卷积表示在输入图5 * 5的区域内滑动。先用1个3 * 3的卷积在输入图上滑动,然后再用1个3 * 3的卷积在上一张特征图上滑动,此时映射到输入图中的区域大小是5*5的,如下图:
- 使用1 * 1的卷积来使维度保证
优缺点
- 结构简洁,整个网络中都使用了同样大小的卷积核尺寸(3 * 3),s=1和最大池化尺寸(2 * 2), s=2
- 小的卷积叠加起来要比一个大卷积核要好
- 验证了通过不断加深网络结构可以提升性能
- 消耗资源大,主要原因是来自最后的3个全连接层,而且全连接层容易过拟合。
实现细节
训练过程
- 前两个FC层有Dropout
- we initialised the first four convolutional layers and the last three fully-connected layers with the layers of net A (the intermediate l