基本信息
文件名称:《深度学习项目案例开发》课件 4.2 使用深度卷积神经网络完成图片分类-ResNet模型.pptx
文件大小:2.21 MB
总页数:19 页
更新时间:2025-06-10
总字数:约3.18千字
文档摘要

任务4:使用深度卷积神经网络完成图片分类4.2任务知识-ResNet深度神经网络

ResNet残差块ResNet模型结构ResNet101模型结构实现ResNet101模型训练

4.任务知识深层神经网络存在的问题VGG等模型的出现使得神经网络模型的深度达到了二十层,模型训练时反向传播过程中梯度会逐层传递梯度可能会在传递过程中逐渐消失(梯度消失)或快速增长(梯度爆炸)梯度消失会导致网络的权重更新非常缓慢,难以有效训练;梯度爆炸则会导致权重更新幅度过大,使得训练过程不稳定。

4.任务知识深层神经网络存在的问题同时当网络变得非常深时,模型的训练误差反而会变得更高。理论上,更深的网络应该具有更强的表达能力,但在实践中,随着层数的增加,训练误差会先减少然后增加,这种现象就是网络退化现象,深度网络的退化问题在很大程度上限制了深度学习模型的性能提升。

4.任务知识残差的概念在传统的深度神经网络中,网络需要直接学习输入x到输出y的复杂映射H(x)。这种直接学习的过程在深层网络中容易导致梯度消失或梯度爆炸问题,影响训练效果。ResNet通过引入残差块,将原始的映射H(x)转换为残差映射F(x)=H(x)?x。这样网络只需学习输入和输出之间的残差F(x),而不是复杂的直接映射。如果最优的映射是恒等映射(即H(x)=x),那么网络只需学习F(x)=0,这大大简化了学习任务。

4.任务知识残差的概念如图所示,虚线框中的部分需要直接拟合出该映射H(x),而右图虚线框中的部分则需要拟合出残差映射F(x)=H(x)-x。残差映射在现实中往往更容易优化。恒等映射是希望学出的理想映射H(x),只需将右图虚线框内上方的加权运算(如仿射)的权重和偏置参数设成0,那么H(x)即为恒等映射。

4.任务知识残差的概念实际中,当理想映射H(x)极接近于恒等映射时,残差映射也易于捕捉恒等映射的细微波动。右图是ResNet的基础架构–残差块(residualblock)在残差块中,输入可通过跨层数据线路更快地向前传播。

4.任务知识ResNet模型结构-捷径连接捷径连接也称为跳跃连接(skipconnections),它直接将输入传递到输出,与通过卷积层得到的残差相加。其基本形式如上右图所示,模型的主路输出为残差函数F(x),模型的之路就是捷径连接,X表示恒等映射,就是直接将输入的特征矩阵X跳过残差层,传递到输出。将主路和之路相加得到H(x)=F(x)+x。最后经过relu激活函数,得到残差块的输出y=ReLu(F(Wi,x)+x),其中Wi表示主路卷积层的参数。因为支路是恒等映射,所以不增加参数,同时在模型训练的反向传播中,需要更新的是F(x)的参数,也就残差的的参数。

4.任务知识ResNet模型结构-瓶颈残差块瓶颈残差块是ResNet中一种更复杂、更有效的残差块设计,专门用于非常深的网络,如ResNet-50、ResNet-101和ResNet-152。其主要目的是通过引入1x1卷积层来减少计算复杂度,同时保持模型的表达能力。瓶颈残差块基本结构包括三个卷积层,分别是1x1卷积层(用于降维)、3x3卷积层(用于特征提取)和1x1卷积层(用于升维)。

4.任务知识ResNet模型结构-瓶颈残差块图是瓶颈残差块的详细结构,假如输入X的shape为56*56*256,经过第1个[1*1,64]的卷积层运算后,输出的shape为56*56*64。再使用第2个[3*3,64]的卷积层运算后,输出的shape为56*56*64。这时按照残差块的运算需要和X進行相加,但是X的shape为56*56*256,所以需要使用第3个[1*1,256]的卷积层对第2层卷积结果进行上采样,输出shape为56*56*256。在整个过程中,矩阵的大小为56*56保持不变,但是通道数变化过程为256-64-64-256,呈现出一种中间大买两头小的形状,像一个瓶子颈部一样,所以起名为瓶颈残差块,它的实际作用就是提取特征,并对数据进行上下采样。

4.任务知识ResNet模型结构-下采样残差模块ResNet中的残差模块有2种,第1种是如图的残差模块,使用了两个步长为1的卷积核,特征的输出和支路的输出shape相同,可以直接进行相加运算。

4.任务知识ResNet模型结构-下采样残差模块第2种是右图所示,输入X为[56,56,64]经过步长为1和2的卷积核运算,输出特征为[56,56,128],这是为了和支路的输出进行相加运算,必须要在支路中增加一个步长为2卷积核大小为(1*1*128)的卷积层,经过这个卷积层运算,支路的输出shape为[56,56,128],这是支路输出就可以和特征的输出进行相加运算了,两种残差模块的支路分别用实线和虚线表示。

4.任务知识ResNet模型结构