2.1 为什么要进行实力探究(why look case studies)
这周我们来看看卷积神经网络的实例分析。
为什么要看这些案例分析呢?上周我们讲了基本构建,比如卷积层,池化层以及全连接层这些组件,事实上,过去几年,计算机视觉中的大量研究都集中在如何把这些基本构建组合起来,形成有效的卷积神经网络,找感觉最好的方法之一是看一些案例。
实际上,在计算机视觉中表现良好的神经网络框架往往也适用于其他任务。也就是说如果有人已经训练或者计算出擅长识别猫,狗,人的神经网络,或者框架。而我们的任务是构建一个自动驾驶汽车,那么我们完全可以借鉴别人的神经网络框架解决自己的问题。
下面来看几个经典的网络:
LeNet-5, AlexNet,VGG以及ResNet。其中ResNet又称为残差网络,他高达152层,并且在如何有效训练方面总结出了一些有趣的想法和窍门,课程最后还会讲一个Inception神经网络的实例分析。
2.2 经典网络(Classic networks)
这节将介绍几个经典的神经网络结构,分别为LeNet-5,AlexNet和VGG net。
LeNet-5
我们首先来看看leNet-5的网络结构:
由上图可知LeNet-5结构为:卷积——池化——卷积——池化——全连接——全连接。
注:(1)在这篇论文写成的年代里,人们更喜欢使用平均池化,而现在我们可能使用最大池化更多一点。(2)因为论文是在1998年撰写的,当时人们并不使用padding或者有效卷积,所以每进行一次卷积,图像的高度和宽度都会缩小。(3)在现在的版本中输出层使用的是softmax函数输出十种分类结果,而在当时,LeNet-5网络在输出层使用另外一种,现在很少用。
不管如何,如果我们从左往右看,随着网络越来越深,图像的高度和宽度都在缩小,信道数量一直在增加。这个网络中还有一种模式至今仍然使用,那就是一个或者多个卷积层后面跟着一个池化层,然后又是若干个卷积,池化,然后是全连接层,最后是输出。
AlexNet
AlexNet要比LeNet-5大得多,LeNet-5只有大约6万个参数,而AlexNet大约有6000万个参数,当用于训练图像和数据集时,AlexNet能够处理非常相似的基本构造模块,这些模块往往包含大量的隐藏单元或数据,这一点另AlexNet表现出色,其次,AlexNet比LeNet-5更为出色的原因是它使用了Relu激活函数。最后经典AlexNet结构还有另一种类型的层叫做“局部响应归一化层”即LRN(Local Response Normalization)。
VGG-16
VGG-16是一种只专注于构建圈基层的简单网络。VGG-16总共包含约1.38亿个参数,但是VGG-16的结构并不复杂,都是几个卷积层后面跟着池化层,可以压缩图像大小的池化层,同时卷积层的过滤器数量存在一定的规律。
VGG-16揭示了随着网络的加深,图像的高度和宽度都在以一定的规律不断缩小,每次迭代后刚好缩小一半,而信道数量在不断增加,而且刚好也是在每组卷积操作后增加一倍,也就是说,图像缩小的比例和信道增加的比例是有规律的。
2.3 残差网络(ResNets)
非常深的网络是很难训练的,因为存在梯度消失和梯度爆炸问题,这一节,我们将学习跳远连接,他可以从某一网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层,ResNets是由残差块构造的。残差块如下:
与普通块不同,残差块的信息流直接从 a[l] 到 a[l+2] 这里这个等式去掉了 a[l+2]=g(z[l+2]) ,取而代之的是另一个Relu非线性函数 a[l+2]=g(z[l+2]+