概念
VGG可以看作是AlexNet的延续,由牛津的Visual Geometry Group提出。每一层神经网络都会利用上一层的输出提取更复杂的特征,直到复杂到能被用来识别物体为止,所以每一层都可以被看做很多个局部特征的提取器。
结构
- Conv3x3 (64)
- Conv3x3 (64)
- MaxPool
- Conv3x3 (128)
- Conv3x3 (128)
- MaxPool
- Conv3x3 (256)
- Conv3x3 (256)
- Conv3x3 (256)
- Conv3x3 (256)
- MaxPool
- Conv3x3 (512)
- Conv3x3 (512)
- Conv3x3 (512)
- Conv3x3 (512)
- MaxPool
- Conv3x3 (512)
- Conv3x3 (512)
- Conv3x3 (512)
- Conv3x3 (512)
- MaxPool
- Fully Connected (4096)
- Fully Connected (4096)
- Fully Connected (1000)
- SoftMax
VGG19,总共19层,包括16层卷积层和最后的3层全连接层,5个是池化层,3个全连接层,最后经过1个softmax层。
- INPUT层:VGG16卷积神经网络默认的输入数据必须是维度为224×224×3的图像,和 AlexNet一样,其输入图像的高度和宽度均为224,而且拥有的色彩通道是R、G、B这三个。预处理是训练集图像的每个像素要减去平均RGB值
- CONV3-64:使用的卷积核为(3*3*3)*64(卷积核大小为3*3,输入通道为3,输出通道为64),步长为1,Padding为1以保持分辨率。通过套用卷积通用公式,可以得到最后输出的特征图的高度和宽度均为224,最后输出的特征图的维度为224×224×64。
- VGG16相比AlexNet的一个改进是采用连续的3×3的卷积核代替AlexNet中的较大卷积核(11×11,7×7,5×5),VGG16 全部采用3*3卷积核,步长统一为1,Padding统一为1,和2*2最大池化核,步长为2,Padding统一为0
- 加深结构都使用ReLU激活函数:提升非线性变化的能力
- VGG19比VGG16的区别在于多了3个卷积层,其它完全一样
- VGG16基本是AlexNet(AlexNet是8层,包括5个卷积层和3个全连接层)的加强版,深度上是其2倍,参数量大小也是两倍多。
特点
VGG 最大的特点就是通过比较彻底地采用 3×3 尺寸的卷积核来堆叠神经网络,这样也加深整个神经网络的深度,可以更有效地提升模型的性能。
2 个 3×3 的卷积核叠加,它们的感受野等同于 1 个 5×5 的卷积核,3 个叠加后,它们的感受野等同于 1 个 7×7 的效果。用2个3×3的卷积核代替原来的 5×5卷积核如下图所示:
- 由于感受野相同,3个3×3的卷积,使用了3个非线性激活函数,增加了非线性表达能力,从而可以提供更复杂的模式学习。
- 使用3×3卷积核增加了网络层数,又减少了参数。假设现在有 3 层 3×3 卷积核堆叠的卷积层,输出和输出通道数都是C,那么它的参数总数是 3x(3x3xCxC)=27xCxC 。同样和它感受野大小一样的一个卷积层,卷积核是 7×7 的尺寸,假如输出和输出通道数都是C,那么它的参数总数就是 7x7xCxC=49xCxC。