LeNet-5于1998年由Yann LeCun发明,用于数字和字母识别。
LeNet-5由5层构成,分布是卷积池化层,卷积池化层,全连接层,全连接层,softmax.
paper地址:gradient-based learning applied to document recognition
2012年,Alex Krizhevsky、Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LSVRC的冠军,且准确率远超第二名,引起了很大的轰动.AlexNet可以说是具有历史意义的一个网络结构,在此之前,深度学习已经沉寂了很长时间.
AlexNet能取得成功的主要原因是采用了ReLU,Dropout及Data augmentation。
AlexNet由8层构成,分布为卷积池化层,卷积池化层,卷积层,卷积层,卷积池化层,全连接层,全连接层,全连接层。
paper地址:imagenet classification with deep convolutional neural networks
2014年,VGG16是牛津大学VGG组提出的。VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,5x5)。夺得了2014年ImageNet的冠军.
paper地址:very deep convolutional networks for large-scale image recognition
同样在2014年,google工程师设计了GoogleNet,尽管VGG可以在ImageNet上表现很好,但是将其部署在一个适度大小的GPU上是困难的,因为需要VGG在内存和时间上的计算要求很高。由于卷积层的通道数过大,VGG并不高效。
GoogLeNet设计了一种称为inception的模块,这个模块使用密集结构来近似一个稀疏的CNN。如下图所示。
GoogleNet为一个22层的结构。
paper地址:Going Deeper with Convolutions
ResNets是2015年的imagenet比赛冠军。可以说是进一步将conv进行到底,其特殊之处在于设计了“bottleneck”形式的block(有跨越几层的直连)。最深的model采用的152层!!下面是一个34层的例子,更深的model见表格。
从前面可以看到,随着网络深度增加,网络的准确度应该同步增加,当然要注意过拟合问题。但是网络深度增加的一个问题在于这些增加的层是参数更新的信号,因为梯度是从后向前传播的,增加网络深度后,比较靠前的层梯度会很小。这意味着这些层基本上学习停滞了,这就是梯度消失问题。深度网络的第二个问题在于训练,当网络更深时意味着参数空间更大,优化问题变得更难,因此简单地去增加网络深度反而出现更高的训练误差。残差网络ResNet设计一种残差模块让我们可以训练更深的网络。
深度网络的训练问题称为退化问题,残差单元可以解决退化问题的背后逻辑在于此:想象一个网络A,其训练误差为x。现在通过在A上面堆积更多的层来构建网络B,这些新增的层什么也不做,仅仅复制前面A的输出。这些新增的层称为C。这意味着网络B应该和A的训练误差一样。那么,如果训练网络B其训练误差应该不会差于A。但是实际上却是更差,唯一的原因是让增加的层C学习恒等映射并不容易。为了解决这个退化问题,残差模块在输入和输出之间建立了一个直接连接,这样新增的层C仅仅需要在原来的输入层基础上学习新的特征,即学习残差,会比较容易。
ResNet主要使用3x3卷积,这点与VGG类似。在VGG基础上,短路连接插入进入形成残差网络。如下图所示: