Administrator
发布于 2022-10-05 / 5 阅读
0

Deep Residual Learning for Image Recognition

摘要:

​ 我们知道网络越深,运行模型是能够获取的信息和特征也就越多。但是根据实验表明,随着网络的加深,优化效果反而越差,测试数据和训练数据的准确率反而降低了。如下图所示:

    这是由于网络的加深会造成梯度爆炸梯度消失的问题。使用归一化方法,对输入数据和中间层进行归一化操作。但这种方法只能运用于几十层的网络,网络继续增加,这种方法也就不能用了。这种时候我们就需要用到残差网络Resnet(Deep Residual Learning for lmage Recognition)。

Resnet:

​ 残差网络(Resnet):在进行运算的过程中,可以认为的让神经网络跳过下一层的神经元的连接,隔层相连,弱化每层之间的强联系。残差网络可以用来减轻深层网络中的梯度爆炸和梯度消失的问题。使用残差网络结构,在较高网络层次时,较高层次能保持比较低层次更低的错误率。

residual的计算方式:

​ 使用让特征矩阵隔层相加的方式进行相加,结构如下图所示:

​ resnet中具体有两个不同的residual。分别是BasicBlockBottleneck两种结构。BasicBlock是二层结构的residual。Bottleneck是三层结构的residual。

以Resnet34为例子,可以发现有些残差块的short cut是实线表示的,而有些则是虚线表示。虚线表示short cut使用的1 1的卷积核,该方式是先用1 1的卷积核对特征矩阵进行降为操作,后由用1 * 1的卷积核对特征矩阵进行升维操作。如下图所示:

不同深度的网络结构配置:

   如下图:其中的提供了5种深度的resnet的运行数据。

   论文作者使用resnet模型跑了ImageNet数据集,结果证明使用resnet模型要确实能够降低34层网络的训练和测试的错误率。

论文作者还使用resnet模型跑了CIFAR-10数据集,结果再次证明resnet模型在其他数据集依然能有不错的效果。