AlexNet, VGGNet, InceptionNet, ResNet介绍

AlexNet 和 VGGNet

VGGNet可以看成是AlexNet的加深加强版, 网络结构如图所示:
图片来自cs231n
与AlexNet的不同之处在于更小的filter, 更深的网络. 只有3 * 3的卷积层和2 * 2 的池化层, 简洁优美. 卷积核专注于扩大通道数、池化专注于缩小宽和高,使得模型架构上更深更宽的同时,计算量的增加放缓.

用连续的3 * 3 filter 堆叠, 效果要比一个大卷积filter好, 原因是:
1. 保证了相同大小的感受野(三个3 * 3 的与一个7 * 7的filter感受野一样大)
2. 更少的参数, 减小了计算量.
3. 更多的隐藏层带来更多的非线性. 

InceptionNet(GoogleNet)

VGG中, 卷积层的通道数过大, 并不高效. 因为不同层之间的相关性很高, 很多激活值是冗余的.
在这里插入图片描述

InceptionNet提出了Inception模块, 优点有: 
1. 减少每次卷积的通道数, 减小了冗余信息
2. 采用不同尺度的感受野
3. 提出了1 * 1卷积, 大大减少了参数量 , 同时还能控制通道数
InceptionNet架构还有一个特殊设计, 在最后的卷积层后使用全局均值池化层替换了全连接层. 
1. 更大更深的网络和Incepion模块使得这并不会影响准确度, 速度还快
2. 这大大减少了模型的总参数量
3. 因为移除了全连接层, 预测的时候输入图片可以是任意尺寸. 

ResNet

越深的网络越难优化, 太深的网络, 有些神经元是冗余的学不到信息(梯度消失).
图片来自cs231n

ResNet的优点: 
1. 引入残差模块, 让两个3 * 3卷积层去学残差知识而不是直接学习全部知识. 这样即使学不到知识, 信息也能继续向深层传递. 
2. 与InceptionNet类似, 在一开始有一个卷积层
3. 在最后移除全连接层, 只留下softmax做分类需要的FC 1000
4. 对于50层以上的ResNet, 使用1 * 1卷积, 减少参数量

结构如图:
在这里插入图片描述
上图两个3 * 3卷积构成的模块叫building block, 一般用于浅层的ResNet网络, 对于深层的ResNet, 常用bottleneck模块. 结构如下:
在这里插入图片描述
bottleneck先通过一个1x1的卷积减少通道数,使得中间卷积的通道数减少为1/4;中间的普通卷积做完卷积后输出通道数等于输入通道数;第三个卷积用于增加(恢复)通道数,使得bottleneck的输出通道数等于bottleneck的输入通道数。这两个1x1卷积有效地较少了卷积的参数个数和计算量。

不同数量的building block或bottleneck组成了不同的resnet:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42561002/article/details/89212180
今日推荐