随着神经网络层数的不断增加,模型精度不断得到提升。但随着网络深度的加深,梯度消失、梯度爆炸问题十分明显,网络甚至出现了退化,训练精度和测试精度迅速下降。
那么,如何又能加深网络层数、又能解决梯度消失问题、又能提升模型精度呢?
残差结构
将靠前若干层的某一层数据输出直接跳过多层引入到后面数据层的输入部分。意味着后面的特征层的内容会有一部分由其前面的某一层线性贡献。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210704144728942.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTgwOTA4,size_16,color_FFFFFF,t_70#pic_center)
两个基本块
一、Conv block
Conv Block输入和输出的维度(通道数)是不一样的,所以不能连续串联。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021070414491123.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTgwOTA4,size_16,color_FFFFFF,t_70#pic_center)
二、Identity block
输入维度和输出维度(通道数)相同,可以串联,用于加深网络的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210704145039537.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyOTgwOTA4,size_16,color_FFFFFF,t_70#pic_center)
参考博客:
深度学习:ResNet(残差网络)