ResNet残差神经网络

出现背景:

随着神经网络发展,网络层数增多,梯度消失和退化问题变得严重。梯度消失使得网络难以训练,退化问题使得模型的准确率下降。

梯度消失

  • 链式求导法则的影响:在神经网络中,梯度通过链式求导法则进行反向传播。随着网络层数的增加,链式求导中会涉及多个导数的连乘。如果这些导数的值都小于 1,那么连乘的结果会随着层数的增加而指数级地减小,导致梯度在反向传播过程中逐渐消失,使得前面的层难以得到有效的梯度信息来进行参数更新。
  • 激活函数的选择:一些激活函数,如 Sigmoid 函数和 Tanh 函数,其导数的取值范围是有限的。当输入值较大或较小时,导数会趋近于 0。在深层网络中,经过多个激活函数的作用后,很容易使得神经元的输出进入到激活函数的饱和区域,导致导数很小,进而引发梯度消失问题。

退化问题

  • 训练难度增加:随着神经网络层数的增加,模型的复杂度呈指数级增长,这使得训练过程变得更加困难。优化算法需要在一个非常复杂的高维空间中寻找最优解,容易陷入局部最优解或鞍点,导致模型难以收敛到理想的性能。
  • 数据拟合与过拟合:深层网络具有很强的表示能力,可以拟合非常复杂的函数。然而,这也意味着它更容易过拟合训练数据。当模型过拟合时,它在训练集上的表现可能很好,但在测试集或新数据上的泛化能力较差,导致模型的实际性能下降。
  • 梯度消失导致的信息传递不畅:梯度消失问题会使得前面的层难以接收到有效的梯度信息,从而无法很好地进行参数更新。这意味着前面的层在训练过程中无法充分学习到数据的特征,导致整个网络的特征提取能力下降,进而影响模型的性能,表现为退化问题。

原理:

传统神经网络中,每层输出作为下层输入。但在ResNet中,增加了一条捷径连接,让每层输入直接跳过若干层,与后面某层的输出连接。残差公式为:y=F(x)+x  x为输入值,F(x)是经过一些列卷积操作后的值。y是最终输出,这种操作网络可以直接学习到残差F(x),而不是直接学习到x到y的映射,使训练更加容易。

网络结构:

ResNet基本单元是残差块,网络由多个残差块堆叠而成,形成神经网络。常见的 ResNet-50、ResNet-101 和 ResNet-152 等,分别表示具有 50 层、101 层和 152 层的 ResNet 网络。这些网络在大规模数据集取得非常好的性能。

优点:

1.解决梯度消失和退化问题:通过残差连接,梯度可以反向传播到前面的层,避免梯度消失问题。使得训练极深的网络成为可能。同时提升了效率。

2.训练效率高:残差网络使得训练更容易,可以使用更大学习率

3.泛化能力强

缺点:

  • 计算资源消耗大:ResNet 通常具有较深的网络结构和大量的参数,例如 ResNet-152 包含多达 152 层的网络结构,这使得模型在训练和推理过程中需要占用大量的计算资源,包括 GPU 内存和计算时间。在一些资源受限的设备上,如移动设备或嵌入式设备,部署 ResNet 模型可能会面临困难。
  • 容易过拟合:尽管 ResNet 通过残差连接等方式缓解了梯度消失和退化问题,使得训练深度网络变得更容易,但它仍然可能在训练数据有限的情况下出现过拟合现象。尤其是在面对一些复杂的图像数据集或任务时,如果训练数据不足,ResNet 可能会过度拟合训练数据中的噪声和细节,导致在测试集或实际应用中的泛化性能下降。
  • 对小目标检测效果有限:在目标检测任务中,ResNet 对于小目标的检测效果有时不如一些专门针对小目标设计的网络结构。这是因为 ResNet 的下采样操作较多,随着网络层数的增加,特征图的分辨率逐渐降低,小目标的信息可能会在这个过程中丢失或被弱化,从而影响对小目标的定位和识别。
  • 模型结构复杂:ResNet 的网络结构相对复杂,由多个残差块堆叠而成,每个残差块又包含多个卷积层、批归一化层等组件。这使得模型的理解和解释变得较为困难,不利于对模型内部工作机制的深入分析。同时,复杂的结构也增加了模型调整和优化的难度,需要更多的经验和技巧来进行超参数调整和模型训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值