一、认识ResNet
ResNet(Residual Network)是一种深度神经网络结构,被广泛应用于图像分类、目标检测和语义分割等计算机视觉任务中。它是由微软亚洲研究院的何凯明等人于2015年提出的,通过引入残差连接(residual connections)解决了深层网络训练过程中的梯度消失和梯度爆炸问题,有效地加深了网络的深度。
网络亮点
1、超深的网络结构(突破1000层)
其他网络比如VGG。GoogleNet、AlexNet深度也就在十几层到二十几层。
如果将一系列的卷积和池化不断叠加,也能得到一个超深的网络。但是数据结果表明不是层数越深结果越好。
左边图中是将卷积层和池化层进行简单的堆叠所搭建的网络结构。橙黄色表示是20层网络结构所训练出来的效果,红色的线表示56层网络结构训练出来的效果,很明显可以看出20层的比56层结构所训练出来的效果要好很多。
造成这样的层数加深,训练效果变差的原因是什么呢?
==》1、随着网络的层数不断加深,梯度消失或者梯度爆炸这个现象会越来越明显。
梯度消失:假设每一层的误差梯度是小于1的数,在反向传播过程中,每向前传播一次,都要乘一个小于1的系数,当网络越来越深的时候,乘的小于1的系数越多就越趋近于0,这样梯度会越来越小,这就是常说的梯度消失现象。
梯度爆炸:反之,如果每一层的梯度是一个大于1的数,在反向传播过程中,每经过一层都要乘一个大于1的数,随着层数不断加深,那么梯度就会越来越大,这就是梯度爆炸。
梯度消失和梯度爆炸怎么解决?
对数据进行标准化处理、权重初始化、batch normalization
==》2、退化问题(degradation