Deep Learning (11) - Deep convolutional models
终于讲到真正的deep learning了,本章主要介绍了几个经典的深度卷积网络。包括:
- Classic Networks:
- LeNet-5
- AlexNet
- VGG
- ResNet
- Inception
经典网络都是比较早期的运用卷积层搭建的神经网络,在当时取得了不错的效果,也推动了深度学习社区的进一步发展。这些网络的构成也可以帮助我们学习如何搭建深度卷积网络。ResNet和Inception就是最近几年的研究成果了。由于现在深度学习理论和计算机算力的进一步发展,这些网络的结构已经远比经典网络要复杂的多。我们可以通过学习了解,并在真正的生产环境中去尝试使用这些已有的网络。
所有的网络都有对应的论文介绍,我将其列入参考文献一节。
经典网络
这些经典网络基本都基于经典的卷积网络(LeNet),只是网络的尺寸越来越大,参数越来越多
LeNet-5
上一章讲卷积网络时就以这个网络为例子的。其基本构成如下图:
- 两个卷积层,每一个卷积层后有一个average pooling层
- 最后两个神经网络层直接输出
- 在输出前可以用Softmax层来做多分类
- 该网络大约有60K个参数
因为是早期网络,所以并不是很深,卷积层没有使用padding,所以图像尺寸越来越小,采用average pooling,这在后期的网络不太常见。
不过不管怎么样,这都是一个很经典的卷积神经网络。
AlexNet
其网络结构如下图:
网络构成基本与LeNet差不多。与LeNet不同的是,这里采用了max pooling,采用了更多的神经网络连接,添加了Softmax输出层,一定程度上使用了padding。参数的数量大约在60M,是LeNet的1000倍。
产生这篇论文时,GPU技术还不是很发达,论文花了很多篇幅讲述如何将改网络拆分到不同的GPU上进行计算。但这个对现在的GPU技术来说已经不重要了。
文中还提到了一个概念叫Local Response Normalization,这也是不常用的概念,不需要理解。
VGG - 16
网络结构如下图:
网络结构变的更复杂了,参数数量达到了138M
ResNet
中文译作残差网络,因为其特点是在经典网络的基础上加入很多如下图的residual block:
整个网络结构大致如下:
这样一个网络就由5个残差模块组成。
残差模块的引入是为了改善,当经典网络(或者这篇论文中提到的plain network,即没有残差模块的网络)深度很大时的vulnerability,即梯度爆炸和梯度消失带来的问题。
理论上机器学习的网络规模越大,深度越大的时候,精度应该越来越高。但因为初始值取值的问题,或其他任何随机误差的引入,都有可能在网络层数过多时会导致梯度消失或爆炸,从而导致实际效果达不到理论效果。
在引入残差网络解决梯度消失或爆炸后,往往能得到比较好的效果:
为什么残差网络有用?(注:这里我也不太理解,先记录下来)
对于这样一个大型神经网络后面接一个残差模块后,有:
如果有weight decay(L2 regularization),,如果当 的时候, ,如果激活函数时ReLU,则 ,可见新增加的两层神经网络并不会影响整体网络的performance。所以得证,网络深度的累积对残差网络的影响较小。
Inception
Network in network (1x1 convolution)
这里是一个filter的图例。与其他的卷积网络不同的是,这里不仅是
使用1x1 convolution或者network in network的好处是,可以缩减输入图像的通道数。从而达到减少运算量的效果。
运用Network in network来降低运算量
这样一次映射的运算量是28x28x192x5x5x32 = 120M
通过一个1x1convolution做过度的计算量是28x28x192x1x1x16 + 28x28x16x5x5x32 = 12.4M
缩小到接近1/10,相当可观了。而且因为network in network的引入,虽然通道数缩减了,但并不会影响最终模型的performance。
中间的1x1 convolution又称为该网络的bottle neck,很形象的比喻
Inception (GoogLeNet)
这就是一个完整的Inception网络,里面包含了很多如下的Inception Module:
带branch的Inception网络
每个分支都有一个Softmax输出层。这些分支也能输出预测值,这样确保网络的所有隐藏单元和中间层都参与了特征计算。按照Andrew的说法,这些分支可以起到regularization的作用,可以有效降低网络过拟合的可能性。
参考文献
- LeNet-5: LeCun et al., 1998. Gradient-based learning applied to document recognition
- AlexNet: Krizhevsky et al., 2012. ImageNet classification with deep convolutional nerual networks
- VGG-16: Simonyan & Zisserman 2015. Very deep convolutional networks for large-scale image recognition
- ResNet: He et al., 2015. Deep residual networks for image recognition
- Network in network: Lin. et al., 2013. Network in network
- Inception: Szegedy et al., 2014, Going Deeper with Convolutions