文章是对博主视频讲解的一些总结。
博主链接:https://blog.csdn.net/qq_37541097?spm=1001.2014.3001.5509
1.预言
ResNet来自2015年,是出自微软实验室之手。可以训练152层超深网络。
对于一般网络而言,加深网络会带来问题:
- 梯度的消失或者爆炸(引入数据标准化处理、权重初始化、BN)
- 网络的退化(引入残差结构)
2.亮点
- 超深的网络结构(突破1000层)
- 提出residual模块(残差块)
- 使用BN加速训练(丢弃dropout)
2.1 残差网络块
目的解决网络的退化
- 在网络层数增加,梯度消失或者是梯度爆炸会越来越明显。
1.在反向传播的过程中每层梯度误差小于1,这样当经过很多层以后会趋近于0
2.在反向传播的过程中每层梯度误差大于1,这样当经过很多层以后会趋近于无穷大
- 下面的结构可以解决深度深的问题
层数较浅的网络,采用下面这种残差结构
- 层数较深的网络,采用下面这种的残差结构
主要就是增加了shortcut连接,(就算中间的卷积都为0了,也有shortcut连接保住老本)
2.2 Batch Normalization
BN本质上是解决传播过程中的梯度消失问题
目的是:使我们的一批(Batch)feature map满足均值为0,方差为1的分布规律
2.3迁移学习
- 能够快速的训练出一个理想的结果
- 当数据集较小时也能训练出理想的效果
常见的迁移学习的方式:
- 载入权重后训练所有参数
- 载入权重后只训练最后几层参数
- 载入权重后在原网络基础上再添加一层全连接层,仅训练最后一个全连接层(常用)
3.网络结构
下面时上表中的其中一个,34层网络