基本网络结构

  • LeNet-5
  • AlexNet
  • VGG-更深
  • GoogleNet-更宽
  • ResNet残差连接
  • SENet
  • DenseNet
  • DPN


LeNet-5

1998的的LeNet提出的cnn网络结构,包含卷积层,池化层,全连接层,塑造了今天的基本网络结构。因为使用了 5 X 5 的卷积核,又被叫做LeNet-5

典型 企业网架构_cnn


LeNet-5由 2 X (卷积层+池化层) + 全连接层组成

卷积层权重共享,使用更少参数,节省了计算量与内存空间

卷积操作是为了提取图像特征,池化层的目的是降采样,保留图像特征的同时减少图像尺寸,经过多次卷积池化后,用全连接层将特征聚合。

AlexNet

12年AlexNet重新点燃了学界对神经网络的热情,而在这之前神经网络因为种种原因而被忽视,Alex能成功的原因主要有3

1.ImageNet 第一个千万级的图像训练集,在这之前,一般的训练集只有几千张,几万张图片

2.CUDA计算。神经网络需要大量的计算,通用型的cuda单元使得gpu计算成为可能,实际上AlexNet使用了两块rx580进行分组卷积

3.强大的编程能力与聪明的算法。没有Alex的编程能力支持,使用cuda进行卷积计算不是一件容易的事。AlexNet开创性的采用了Relu,dropout这些现在仍在使用的技巧,用更深层的网络,一举在ILSVRC夺冠

典型 企业网架构_cnn_02

VGG-更深

VGG采用了更深的网络结构,最大的改进是采用了 3 X 3 或 1 X 1的卷积核,关于小卷积核的优势,可以看CNN卷积

GoogleNet-更宽

GoogleNet在ILSVRC14上获得了冠军,Google团队在随后2年里不断改进,相继提出了v1-v4和xcpetion结构。

GoogleNet的创新之处在于创造了Inception,使用了更宽的网络。

典型 企业网架构_深度学习_03


目的是为了网络代替人手工自己决定到底使用1×1,3×3,5×5以及是否需要max_pooling层,由网络自动去寻找适合的结构。并且节省计算提取更为丰富的特征。

缺点是参数量更多,计算更复杂

ResNet残差连接

残差连接是ResNet最重要的思想,现在仍然广泛使用,
因为神经网络过深导致模型退化,比如在18层网络得到最好效果,32层输出反而变差了,残差连接是将上一层的输出结果连接输入作为下一层输入,即
典型 企业网架构_卷积_04
要想网络层输出不变,即典型 企业网架构_深度学习_05
残差连接效果好原因是神经网络相对于输出具体的值,更容易输出0
同时,信息论来说,每层网络的信息量是不断增加的。

SENet

SENet建立了通道之间的联系,矫正了通道之间的强度关系

通过一个全局平均池化层加两个全连接层以及全连接层对应激活【ReLU和sigmoid】组成的结构输出和输入特征同样数目的权重值,也就是每个特征通道的权重系数,学习一个通道的注意力出来,用于决定哪些通道应该重点提取特征,哪些部分放弃

典型 企业网架构_python_06


压缩模块:

对U进行全局池化得到1 X 1 X C的特征值z

典型 企业网架构_深度学习_07

这一步相当于为不同通道特征值加上自注意力机制

激活模块:

然后得到与原输入大小相同的输出

典型 企业网架构_卷积_08

SE学习了每个特征图的动态先验,可以看作特征图维度的自注意力
SENet的特性使得可以当模块使用,轻松与Inception或ResNet相结合

DenseNet

与ResNet将输入与输出相加作为下一层的输入不同,DenseNet将网络各层的输出连接,在层与层之间直接构建捷径。一个L层的网络有典型 企业网架构_卷积_09

典型 企业网架构_python_10

当然,直接将所有输出特征相连对显存要求过高,因此,DenseNet采用了密集块的方法。

典型 企业网架构_典型 企业网架构_11


合成函数与成长率k:

合成函数的输入是拼接在一起的特征图,输出是典型 企业网架构_深度学习_12结果

假定输入层的特征图的channel数为典型 企业网架构_深度学习_13,Dense Block中各个层卷积之后均输出K个特征图,即得到的特征图的channel数为K,那么l层输入的channel数为典型 企业网架构_cnn_14, 我们将K称之为网络的增长率,原作者将这个值设为12

由于DenseNet对显存要求很高,在工业界不常用,更多使用ResNet

DPN

ResNet与DenseNet具有相似的思想但聚集在不同的方面,ResNet更注重特征的复用,DenseNet更注重特征的生成,能不能将两者结合起来呢,这就是DPN,双路网络