一、ResNet结构
ResNet是一个突破一千层的网络架构。主要是卷积层Conv和池化层的堆叠。但是普通的堆叠会使得错误率更高,如下图所述,这是因为会产生梯度消失/梯度爆炸等。(梯度就是增量,有大小有方向)
解决方法:权重初始化、标准化处理、BN
堆叠还可能导致退化问题。
解决方法:残差模块residual
两个式子对比,残差模块越多,可以省越多的参数。
网络结构的表格和可视化版。
有的残差结构是实线,有的是虚线。区别?
实线输入输出形状相同,虚线输入输出形状不同。
输入输出形状指的是【高x宽,通道数】
二、Batch Normalization
BN的目的是使我们一批(Batch)feature map满足均值为0,方差为1的分布规律。这样做的目的是使的整个样本集所对应的feature map的数据药满足分布规律,从而加速训练,提升准确率。
具体参考霹雳老师的博文
三、迁移学习
通过使用别人预训练好的模型参数,从而具有以下两点优势。
(但是使用了别人的预训练模型参数,就要注意别人的预处理方式,我们预处理要和他们一样)
优点:
- 能快速训练出一个理想的结果
- 当数据集较小时也能跑出不错的结果
逐层学会更精细的信息,最后用全连接层把这些特征联合起来,
底层通用特征的学习,如角点信息、纹理信息等,其他地方也能用,我们迁移过来,也就是把这些训练好的网络参数我们迁移过来,让我们的网络拥有可以识别底层通用特征的能力。
方法3可以载入所有参数,之后全连接层的结点个数设置成我们的分类个数就可以。