经典模型
1. VGG模型
VGG又分为VGG16和VGG19, 分别在AlexNet的基础上将层数增加到16和19层, 它除了在识别方面很优秀之外, 对图像的目标检测也有很好的识别效果, 是目标检测领域的较早期模型。
2. GoogLeNet模型
GoogLeNet除了层数加深到22层以外, 主要的创新在于它的Inception, 这是一种网中网(Network In Network) 的结构, 即原来的节点也是一个网络。 用了Inception之后整个网络结构的宽度和深度都可扩大, 能够带来2到3倍的性能提升。
3. ResNet模型
ResNet直接将深度拉到了152层, 其主要的创新在于残差网络, 其实这个网络的提出本质上是要解决层次比较深时无法训练的问题。 这种借鉴了Highway Network思想的网络, 相当于旁边专门开个通道使得输入可以直达输出, 而优化的目标由原来的拟合输出变成输出和输入的差, 其中是某一层原始的期望映射输出,是输入。
4. Inception-ResNet-v2模型
Inception-ResNet-v2: 是目前比较新的经典模型, 将深度和宽带融合到一起, 在当下ILSVRC图像分类基准测试中实现了最好的成绩, 是将Inception v3与ResNet结合而成的。接下来主要对当前比较前沿的GoogLeNet、 ResNet、 Inception-ResNet-v2几种网络结构进行详细介绍。
GoogLeNet模型介绍
前面已经介绍过GoogLeNet, 其中最核心的亮点就是它的Inception, GoogLeNet网络最大的特点就是去除了最后的全连接层, 用全局平均池化层(即使用与图片尺寸相同的过滤器来做平均池化) 来取代它。
这么做的原因是: 在以往的AlexNet和VGGNet网络中, 全连接层几乎占据90%的参数量, 占用了过多的运算量内存使用率, 而且还会引起过拟合。
GoogLeNet的做法是去除全连接层, 使得模型训练更快并且减轻了过拟合。
之后GoogLeNet的Inception还在继续发展, 目前已经有v2、 v3和v4版本, 主要针对解决深层网络的以下3个问题产生的。
(1)·参数太多, 容易过拟合, 训练数据集有限。
(2)·网络越大计算复杂度越大, 难以应用。
(3)·网络越深, 梯度越往后传越容易消失(梯度弥散) , 难以优化模型。
Inception的核心思想是通过增加网络深度和宽度的同时减少参数的方法来解决问题。Inception v1有22层深, 比AlexNet的8层或者VGGNet的19层更深。 但其计算量只有15亿次浮点运算, 同时只有500万的参数量, 仅为AlexNet参数量(6000万) 的1/12, 却有着更高的准确率。下面沿着Inception的进化来一步步了解Inception网络。 Inception是在一些突破性的研究成果之上推出的, 所以有必要从Inception的前身理论开始介绍。 下面先介绍MLP卷积层。
MLP卷积层
较好博客:https://blog.****.net/qq_37791134/article/details/82388089
MLP卷积层(Mlpconv) 源于2014年ICLR的一篇论文《Network In Network》 。 它改进了传统的CNN网络, 在效果等同的情况下, 参数只是原有的Alexnet网络参数的1/10。
卷积层要提升表达能力, 主要依靠增加输出通道数, 每一个输出通道对应一个滤波器,同一个滤波器共享参数只能提取一类特征, 因此一个输出通道只能做一种特征处理。 所以在传统的CNN中会使用尽量多的滤波器, 把原样本中尽可能多的潜在的特征提取出来, 然后再通过池化和大量的线性变化在其中筛选出需要的特征。 这样的代价就是参数太多, 运算太慢, 而且很容易引起过拟合。
MLP卷积层的思想是将CNN高维度特征转成低维度特征, 将神经网络的思想融合在具体的卷积操作当中。 直白的理解就是在网络中再放一个网络, 即, 使每个卷积的通道中包含一个微型的多层网络, 用一个网络来代替原来具体的卷积运算过程(卷积核的每个值与样本对应的像素点相乘, 再将相乘后的所有结果加在一起生成新的像素点的过程) 。 其结构如图所示。
图1 MLP结构图1中a为传统的卷积结构, 图1 b为MLP结构。 相比较而言, 利用多层MLP的微型网络, 对每个局部感受野的神经元进行更加复杂的运算, 而以前的卷积层, 局部感受野的运算仅仅只是一个单层的神经网络。 在MLP网络中比较常见的是使用一个三层的全连接网络结构, 这等效于普通卷积层后再连接1∶1的卷积和ReLU**函数
参考:《深度学习之TensorFlow》