学习残差神经网络(ResNet)

残差网络(Residual Network)是一种非常有效的缓解梯度消失梯度爆炸问题网络,极大的提高了可以有效训练的网络的深度。

1.1残差网络的介绍和结构


残差单元可以以跳层连接的形式实现,将单元的输入直接与单元输出加在一起,然后再激活。因此残差网络可以轻松使用主流的自动微分深度学习框架实现,直接使用BP算法更新梯度。残差神经网络的概念图如下所示:
在这里插入图片描述
如下图所示:pain network 和 残差网络的模型如下图所示:
在这里插入图片描述
在这里插入图片描述

残差网络很好的解决了深度神经网络的模型退化问题,在ImageNet和CIFAR-10等图像任务上取得非常好结果。在同等层数前提下,残差网络也收敛的更快;并且去除个别神经网络层,残差网络的表现不会受到显著的影响

1.2 残差网络的原理

在这里插入图片描述
经过展开,在前向传播时,输入信号可以从任意底层直接传到高层;其包含了一个天然的恒等映射,一定程度上解决了网络退化的问题。

1.3 个人理解

看了很多关于残差网络的资料和解释,我个人对残差网络有如此高的学习能力的解释如下:
一般来说,神经网络的深度不应该太深,否则会出现梯度消失和梯度爆炸的情况。loss值在减小到一定程度后,随着训练的增加甚至会反弹。


而残差网络(ResNet)的深度可以很深,很容易学得恒等函数,让loss很难反弹。


一个网络深度越深,它在训练集上训练的效率就会有所减弱,这也是有时候我们不希望加深网络的原因。残差网络起作用的主要原因就是这些残差块学习恒等函数非常容易,很多时候甚至可以提高效率,因此创建类似残差网络可以提升网络性能。

在这里插入图片描述

与普通网络的串行结构相比,残差单元增加了跳跃映射,将输入与输出直接进行相加,并且补充卷积过程中损失的特征信息。由上图可知,设网络块学习到的映射是直接学习很难学习到的,但对一个残差函数来说,却可以很容易学习到的。因为此时网络块的训练目标是将逐渐逼近于某一特定映射。因此,最后的映射就是将F(x)和x相加。


换句话说,拿一个网络块为例:以前都是一个模块中的**一层**在学习恒等函数,现在,变成了这个模块中的**两层**(输入+输出)来学习恒等函数。学习恒等函数的层数变多了,效果自然就加强了。
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值