LeNet - 5
假设有一张32×32×1的图,如下所示👇
LeNet-5神经网络是一个灰度识别器,它可以识别图像中的手写字体。
使用6个5×5的过滤器,步幅为1,padding为0。由于使用了6个过滤器,所以第二层的矩阵是28×28×6维的。
之后进行池化操作。在论文发表的1980年代,人们热爱使用平均池化(avg pooling),而现在可能使用最大池化更多一些。过滤器的宽度为2,步幅为2,使图像的尺寸,高度和宽度都缩小了两倍。
接下来是另一个卷积层,使用一组16个的5×5过滤器。得到10×10×16的图像。
之后又是池化层,宽度和高度缩小一半。
下一层是全连接层,在全连接层中有400个结点,每个结点有120个神经元。
下一个全连接层中有84个神经元,即上一个全连接层中的120个结点,每一个对应84个神经元。
最后一步就是利用这84个特征,来得到最后的输出y_hat。
y_hat有10个值,对应于数字0~9,以预测是哪个数字的可能性更大。而在现在的版本中,使用softmax函数输出十种分类结果,而LeNet-5使用了现在很少使用的分类器。
- 我们可以观察到,从左到右,图像的高度和宽度一直在减小,但信道数量一直在增加。
AlexNet
从一个227×227×3的图像作为输入开始:
实际上原文中使用的图象是224×224×3,但227更好计算。第一层使用96个11×11的过滤器,步幅为4,图像缩小了四倍左右。
之后使用一个3×3的过滤器构建最大池化层,步幅为2。
之后再执行一个5×5的相同卷积(same convolution),得到27×27×256的图像。之后在使用stride = 2的最大池化。
在执行一次与上一步相同的same convolution。
交替执行相同卷积和最大池化,知道得到6×6×256的矩阵:
此时有9216个单元,展开,构造全连接层,使用softmax得到结果。
AlexNet优于LeNet之处:
- 和LeNet结构相似,但比LeNet大得多。
- 使用了ReLU函数。
VGG-16
VGG-16不需要许多超参数,这是一种只需要专注与构建卷积层的简单网络。
使用3×3的过滤器,stride = 1,使用相同卷积。用2×2,stride = 2的过滤器构建最大池化层。
输入为224×224×3的图片,再最开始的两层使用64个3×3的过滤器对输入图像卷积。
接下来使用一个池化层,将输入的图像进行压缩。
将卷积和池化交替进行:
将25088个单元与4096个神经元的全连接层相连接,构造两个全连接层,用最后一层的4096个特征,输入到softmax得到结果。
VGG-16的16指的是这个网络包含16个卷积层和全连接层。这确实是很大的网络,包含1.38亿个参数,但它很简单。
- 可以观察到,在每一组卷积层使用时,都将过滤器的数量进行翻倍。每次池化后,图像的宽度和高度都在减小,但信道数量在不断增加。
- 它的主要缺点是要训练的特征量过多。
- 还有VGG-19,但二者的表现差不多。
阅读论文的一些建议
从AlexNet开始,再就是VGG,最后是LeNet。