深度学习笔记之残差网络(ResNet)

引言

本节将介绍残差网络( Residual Network,ResNet \text{Residual Network,ResNet} Residual Network,ResNet),本篇不是论文解读,仅针对论文种提到的问题进行描述,并介绍残差网络的原理

论文链接: Deep Residual Learning for Image Recognition \text{Deep Residual Learning for Image Recognition} Deep Residual Learning for Image Recognition

引子:深度神经网络的性能问题

我们不否认,深度神经网络相比浅层,能够学习到更深层次的、更加丰富的特征信息。

但是一个神经网络模型层数越深,并不代表神经网络的性能越优秀。神经网络隐藏层数量越多,意味着反向传播过程中针对深层神经元(距离输入层更近的部分)梯度消失的可能性越高。为了预防/缓解这种情况,我们通常会使用:

其次,深度神经网络使得网络的复杂程度增大,在训练过程中容易出现过拟合 ( Overfitting ) (\text{Overfitting}) (Overfitting)

这里观察论文中的 1 1 1,它描述的是不同深度的神经网络对于同一数据集 ( CIFAR-10 ) (\text{CIFAR-10}) (CIFAR-10)训练和测试过程中错误率 ( Error Rate ) (\text{Error Rate}) (Error Rate)的变化情况:
题外话:错误率像‘阶梯形式’的下降过程,主要是通过减小学习率得到的效果。
不同深度神经网络在CIFAR-10训练/测试过程错误率变化情况
通过上述图像观察可知,深层网络(红色线)的错误率下降情况明显不如浅层网络(黄色线),这里我们并不排除过拟合产生的影响,但也不全是过拟合产生的效果

  • 如果仅是过拟合现象导致的结果,那么无论是深层网络 ( 56-Layer ) (\text{56-Layer}) (56-Layer)还是浅层网络 ( 20-Layer ) (\text{20-Layer}) (20-Layer),它的训练过程产生的错误率应该是相近的;而仅在测试过程中存在较大差距。
  • 但实际情况是:无论在训练过程还是测试过程深层网络与浅层网络之间 均存在较大差距。这只能说明:在针对该数据集的学习过程中,深层网络模型在性能方面劣于浅层网络模型。

核心问题:深层神经网络训练难

分析上述示例,为什么神经网络层数增加后,精度反而会变差 ? ? ?

  • 暂时抛开神经网络的学习过程,仅从逻辑角度思考:如果某浅层网络对于数据集存在一个比较不错的拟合效果,那么对应深层网络(浅层网络中插入一些新的层)的拟合效果也不应该变得很差。观察下图:
    浅层网络/深层网络的恒等映射
    其中左图表示浅层网络 ( Shallow Network ) (\text{Shallow Network}) (Shallow Network)的某部分 ( Buliding Block ) (\text{Buliding Block}) (Buliding Block);而右图表示在对应浅层网络位置插入一个新的网络层而构成的深层网络 ( Deep Network ) (\text{Deep Network}) (Deep Network)
    当然,整个网络并非仅加入了这一层,这仅仅描述网络某部分的变化;并且图中添加层的位置也不唯一,任意位置均可。

    以上图中这种插入方式为例,我们可以将这个新网络层 ( AddLayer ) (\text{AddLayer}) (AddLayer)看作成未插入之前两隐藏层之间的恒等映射 ( Identity Mapping ) (\text{Identity Mapping}) (Identity Mapping)。也就是说,它仅仅是对原始网络层做了一个简单的传递工作—— AddLayer \text{AddLayer} AddLayer插入之后,其输出与浅层网络的对应输出几乎没有变化。从而也不影响后续的传递过程。

  • 逻辑角度观察该情况时是过于理想的。实际情况下,由于神经网络的反向传播过程,它只会将更多有效梯度传递到较浅的网络层(距离输出层近的那些网络层),而较深的网络层梯度的传递效果较差(梯度变化的效果较小 / / /过小)。见下图:
    真实反向传播中的恒等映射
    对应那些较深的网络,它们获取的梯度很小,甚至是几乎没有变化。这意味着:有没有这个层影响不大。而满足这种条件的无效层就可看作是逻辑角度中的恒等映射
    第二种情况仅仅说明‘神经网络’学习过程中的 Identity Mapping \text{Identity Mapping} Identity Mapping和逻辑角度认知的 Identity Mapping \text{Identity Mapping} Identity Mapping之间存在偏差。但它依然按照逻辑角度认知执行的。

  • 但在执行真正的学习过程,使用算法对最优权重迭代的过程中(论文中使用的是随机梯度下降 ( Stochastic Gradient Descent,SGD ) (\text{Stochastic Gradient Descent,SGD}) (Stochastic Gradient Descent,SGD))基于第二种情况无法找到和浅层效果相当的精确解
    个人理解:上面说的那么多,想表达的意思是:深度模型的学习性能差绝不仅仅是因为‘过拟合/梯度消失’产生的结果:

    • 而是在原始神经网络已经有比较不错的拟合效果的条件下,强行地增加了神经元/网络层的数量,从而使网络深层部分梯度没有有效传达导致这些层/神经元成为了恒等映射
    • 这个恒等映射是存在偏差的。个人认为主要原因是模型权重初始化的问题。我们的本意想让初始化的参数通过反向传播算法将其优化为有益的权重信息;但是这些深层网络的权重因梯度消失的原因,并没有得到有效的优化/甚至是没有被优化。这反而使这些未优化好的权重成为了噪声/累赘,从而导致了模型性能降低。
    • 可以对比一下,假设将‘浅层网络’内增加一系列对浅层网络输出完全不产生任何影响,并且不传播梯度 0 0 0层,这么一比较自然会出现差距:
      向浅层网络种添加0层(不传播梯度)

该部分有个人想法的小伙伴欢迎一起探讨。

残差网络的执行过程

残差网络提出一种通过人为构造恒等映射 的方式,使它能让更深的网络更容易地训练,并且学习效果越好。

  • 首先观察正常情况下/没有执行残差连接 ( Residual Connection )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值