tensorflow 学习(三) - 常用的CNN模型
1. AlexNet模型
2012年,Alex等人在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,原始的AlexNet v1主要由5个卷积层和3个全连接层组成, AlexNet v2去掉了localNorm层,并在最后3层中使用了卷积层代替全连接层,构造了全卷积结构。
2. VGG模型
2014年,牛津大学的研究人员提出了VGG模型,旨在提供比AlexNet更深的模型以提升图像分类精度,VGG模型大量采用了3*3卷积核,常用的是VGG16模型和VGG19模型,由于最后采用了3个全连接层来融合多通道分类图,使得模型参数量增加,模型变大,规模达到500M以上。
3.Inception 模型
为了更好的融合多尺度模型,同时避免采用过多的全连接层,Google公司的研究团队提出了Inception模型及其变种。
Inception v1在3*3和5*5的卷积核前采用1*1的卷积核降维以减少计算量。
Inception v2将 5*5的卷积核前变成2个3*3的卷积核,降低了计算量。
4.Resnet 模型
2015年,微软亚洲研究院的何恺明等人提出了Resnet。Resnet model用于学习输入和输出之间的残差。每个Resnet modele的输出数据都由输入数据和残差共同构成。由于model中的输入和输出之间出现了直连通道,梯度传播更加容易,模型可以达到的深度远超Alexnet,VGG和Inception模型。
常用的几种CNN模型总结:
网络名称 |
主要设计思想 |
计算 复杂度 |
模型大小(MB) |
AlexNet |
1)首次采用多层深度CNN模型做图像识别; 2)采用 Relu**函数避免梯度消失; 3)提出Dropout防止模型过拟合 |
低 |
240 |
VGG |
为了降低计算量,全部采用3*3的卷积核,通过连续的3*3卷积模拟5*5和7*7等更大的卷积核 |
高 |
550 |
Inception |
为了融合多种感受野大小下的特征图,提出了Inception模块,该模块包含了1*1,3*3,5*5的卷积层,在3*3和5*5的卷积核前采用1*1的卷积核降低特征通道数,减少计算量 |
中 |
50~163 |
ResNet |
提出了Resnet model,用于学习输入和输出之间的残差,使得深层网络更容易训练。 |
较高 |
90~214 |
Inception- ResNet |
将残差模块的设计思想融入到Inception架构中 |
较高 |
200 |