1、经典神经网络
LeNet-5模型
- 1.假设输入图像的大小是32×32×1,我们用6个大小为5×5的过滤器,步幅为1,padding为0,对其进行一次卷积操作,输出图像的尺寸为28×28×6。
- 2.使用平均池化层,过滤器宽度为2,步幅为2,将图像缩小一半,故为14×14×6,使用16个大小为 5×5的过滤器,步幅为1,padding为0,对其进行一次卷积操作,输出图像的尺寸为10×10×16。
- 3.使用平均池化层,步幅为2,将图像的尺寸缩小为5×5×16。
- 4.将5×5×16的图像展开,得到包含400个节点,每个节点有120个神经元的全连接层,在400个节点中抽取一些节点构成2个全连接层,最后利用84个特征得到最后输出。
AlexNet模型
- 1.假设输入图像的大小为227×227×3,使用96个大小为11×11的过滤器,步幅为4,padding为0,对其进行卷积操作,输出图像尺寸为55×55×96。
- 2.使用最大池化层,过滤器大小为3×3,步幅为2,将图像的尺寸缩小为27×27×96。
- 3.使用256个大小为5×5的过滤器,对其进行same卷积操作,输出图像的尺寸为27×27×256。
- 4.使用最大池化层,过滤器宽度为3,步幅为2,将图像的尺寸缩小为13×13×256。
- 5.使用384个3×3的过滤器,对其连续执行两次same卷积操作,输出图像的尺寸为13×13×384。
- 6.使用256个3×3的过滤器,对其执行一次same卷积,输出图像的尺寸为13×13×256。
- 7.使用最大池化层,过滤器大小为3×3,步幅为2,将图像的尺寸缩小为6×6×256。
- 8.将6×6×256的图像展开,得到包含9216个单元,最后进行全连接层,使用softmax函数输出,看1000个可能的对象究竟是哪一个。
VGG-16模型
其CONV layer和POOL layer设置如下:
CONV = 3x3 filters, s = 1, same
MAX-POOL = 2x2, s = 2
- 1.假设输入图像的大小为224×224×3,使用64个大小为3×3的过滤器,步幅为1,对其进行same卷积操作且连续进行两次,输出图像的尺寸为224×224×64。
- 2.使用最大池化将输入图像压缩到112×112×64。
- 3.使用128个过滤器,对其进行same卷积操作且连续进行两次,输出图像的尺寸为112×112×128。
- 4.使用最大池化将图像压缩到56×56×128。
- 5.使用256个过滤器,对其进行same卷积操作且连续进行三次,输出图像的尺寸为56×56×256。
- 6.使用最大池化将图像压缩到28×28×128。
- 7.使用512个过滤器,对其进行same卷积操作且连续进行三次,输出图像的尺寸为28×28×512。
- 8.使用最大池化将图像压缩到14×14×512。
- 9.使用512个过滤器,对其进行same卷积操作且连续进行三次,输出图像的尺寸为14×14×512。
- 10.使用最大池化将图像压缩到7×7×512。
- 11.将7×7×512的图像进行两次全连接操作,使用两个具有4096个单元的全连接层,最后进行softmax激活,得到1000个输出的预测结果。
2.残差网络
Residual block
- 从开始进行线性激活,根据公式计算的值。
- 然后通过ReLU非线性激活函数得到。
- 接着再次进行线性激活,根据公式计算得到。
- 最后根据公式再次进行ReLU非线性激活。
信息流从到 需要经过以上所有步骤,即这组网络层的主路径
在残差网络中直接将向后拷贝到神经网络的更深层,在ReLU非线性激活函数前加上。因此最后的输出表达式为另一个ReLU非线性函数,即 ,也就是加上的这个产生了一个残差块。
第一张图是一个普通网络,第二张图是通过ResNet的方法是加上所有跳跃连接,所以它是5个残差块连接在一起构成一个残差网络。
如果没有残差网络,对于一个普通网络来说,深度越深则使用优化算法越难训练,训练错误会越来越多。
残差网络的作用
为什么ResNets能够训练更深层的神经网络?
3. 1x1卷积
使用一个6×6的单通道图片和1×1的过滤器进行卷积,结果相当于把这个图片乘以数字1。
上图是一张 6× 6×32的图片和1×1的过滤器进行卷积。
具体过程:1×1过滤器遍历这36个单元格,分别计算每个单元格中32个通道的数字和过滤器中对应的32个数字的乘积之和,然后应用ReLU非线性函数。如果过滤器不止一个,而是多个,那么输出结果为6×6×过滤器数量。这种方法通常称为1×1卷积,有时也被称为Network in Network。
1x1 卷积可以用来缩减输入图片的通道数目,即降维。
4.GoogLeNet的特点
随着网络的加深,参数也越来越多,很容易产生过拟合且计算复杂度太大。
解决问题的方法:将全连接层甚至一般的卷积层都转化为稀疏连接。
原因:这样既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。
GoogLeNet使用平均池化来代替全连接层,从而大大减少了参数量。同时为了避免训练过程中的梯度消失问题,在网络中间引入了两个辅助的softmax分类层用于向前传导梯度(辅助分类器),从而避免离末尾softmax较远的层难以训练的问题。