2.1 略
2.2 经典网络
LeNet-5
假设你有一张32×32×1的图片,LeNet-5可以识别图中的手写数字。LeNet-5是针对灰度图片训练的,所以图片的大小只有32×32×1。
- 使用6个5×5的过滤器,步幅为1。输出结果为28×28×6。
- 进行平均池化,过滤器的宽度为2,步幅为2,图像的尺寸,高度和宽度都缩小了2倍,输出结果是一个14×14×6的图像。
- 接下来是卷积层,我们用一组16个5×5的过滤器,新的输出结果有16个通道。图像从14到14缩小到了10×10
- 又是池化层,高度和宽度再缩小一半,输出一个5×5×16的图像。将所有数字相乘,乘积是400。
- 下一层是全连接层,在全连接层中,有400个节点,每个节点有120个神经元,这里已经有了一个全连接层。
- 最后一步就是利用这84个特征得到最后的输出,我们还可以在这里再加一个节点用来预测y的值,有10个可能的值,对应识别0-9这10个数字。
这里得到的神经网络会小一些,只有约6万个参数。
AlexNet
- 首先用一张227×227×3的图片作为输入.
- 第一层我们使用96个11×11的过滤器,步幅为4,由于步幅是4,因此尺寸缩小到55×55,缩小了4倍左右.
- 然后用一个3×3的过滤器构建最大池化层,f=3,步幅s为2,卷积层尺寸缩小为27×27×96。
- 再执行一个5×5的卷积,padding之后,输出是27×27×256
- 再进行一次进行最大池化,尺寸缩小到13×13。
- 再执行一次same卷积,相同的padding,得到的结果是13×13×384,384个过滤器。
- 再连着做两次same卷积,得到13×13×256
- 最后再进行一次最大池化,尺寸缩小到6×6×256。
- 6×6×256等于9216,将其展开为9216个单元,然后是一些全连接层。最后使用softmax函数输出识别的结果,看它究竟是1000个可能的对象中的哪一个。
AlexNet包含约6000万个参数。当用于训练图像和数据集时,AlexNet能够处理非常相似的基本构造模块,这些模块往往包含着大量的隐藏单元或数据,这一点AlexNet表现出色。AlexNet比LeNet表现更为出色的另一个原因是它使用了ReLu激活函数。
VGG(VGG-16)
VGG-16网络没有那么多超参数,这是一种只需要专注于构建卷积层的简单网络。
VGG-16的这个数字16,就是指在这个网络中包含16个卷积层和全连接层。确实是个很大的网络,总共包含约1.38亿个参数,即便以现在的标准来看都算是非常大的网络。
但VGG-16的结构并不复杂,这点非常吸引人,而且这种网络结构很规整,都是几个卷积层后面跟着可以压缩图像大小的池化层。
无论如何,每一步都进行翻倍,或者说在每一组卷积层进行过滤器翻倍操作,正是设计此种网络结构的另一个简单原则。
这种相对一致的网络结构对研究者很有吸引力,而它的主要缺点是需要训练的参数数量非常巨大。
随着网络的加深,图像的高度和宽度都在以一定的规律不断缩小,每次池化后刚好缩小一半,而通道数量在不断增加,而且刚好也是在每组卷积操作后增加一倍。也就是说,图像缩小的比例和通道数增加的比例是有规律的。
2.3 残差网络(Residual Networks (ResNets))
非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题。
这节课我们学习跳跃连接(Skip connection),它可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。我们可以利用跳跃连接构建能够训练深度网络的ResNets,有时深度能够超过100层。
ResNets是由残差块(Residual block)构建的。