正好课程作业需要用到迁移学习,就顺便学习了很厉害的ResNet网络,是真的厉害呀。
首先给出最具有权威性的论文原文。
论文地址:Deep Residual Learning for Image Recognition
1、ResNet的亮点
1.1、现在的网络层数越来越多,很有可能出现梯度消失和梯度爆炸的问题-----resnet利用了BN(Batch Normalization)方式
1.2、如果只采用扁平的plain结构的网络,层数过高反而精度越低这类的退化问题----resnet采用了residual(残差结构)的网络结构
1.3、模型层数越高,参数越多,计算复杂度越大,优化越困难-----采用residual网络结构能够在不增加参数的情况下更好拟合
2、ResNet网络结构解析
先放出ResNet的网络结构(论文中给出的是34layers):
我们先来看看为什么要使用残差网络,在传统的网络模型中,都是靠着不同的层数堆叠,但这种方式当层数很深时,会增大训练误差,因此会造成不好优化,论文中给出了传统模型在两个数据集上的结果。
看到56-layer的网络的误差比20-ayer的误差还要大,所以当层数比较深时,plain网络并不能很好拟合数据,因此提出了新型的残差网络。作者又做了实验来验证网络能够解决退化问题。如下图:
左侧是扁平网络,34层的错误率比18层的要高,右侧是残差网络,34层的错误率比18层的低了,所以深层的残差网络表现更好。
残差网络的组成结构分别是residual representations(相当于主干和short connection(相当于捷径 组成,我们来看看核心组成成分: