对ResNet核心思想的理解

参考文献:
1.深度残差网络的理解
2.残差网络ResNet网络原理及实现
3.论文原文

分析摘录:

我们作这样一个假设:假设现有一个比较浅的网络(Shallow Net)已达到了饱和的准确率,这时在它后面再加上几个恒等映射层(Identity mapping,也即y=x,输出等于输入),这样就增加了网络的深度,并且起码误差不会增加,也即更深的网络不应该带来训练集上误差的上升。而这里提到的使用恒等映射直接将前一层输出传到后面的思想,便是著名深度残差网络ResNet的灵感来源。

ResNet引入了残差网络结构(residual network),通过这种残差网络结构,可以把网络层弄的很深(据说目前可以达到1000多层),并且最终的分类效果也非常好,残差网络的基本结构如下图所示,很明显,该图是带有跳跃结构的:
在这里插入图片描述

残差网络借鉴了高速网络(Highway Network)的跨层链接思想,但对其进行改进(残差项原本是带权值的,但ResNet用恒等映射代替之)。

假定某段神经网络的输入是x,期望输出是H(x),即H(x)是期望的复杂潜在映射,如果是要学习这样的模型,则训练难度会比较大;回想前面的假设,如果已经学习到较饱和的准确率(或者当发现下层的误差变大时),那么接下来的学习目标就转变为恒等映射的学习,也就是使输入x近似于输出H(x),以保持在后面的层次中不会造成精度下降。

在上图的残差网络结构图中,通过“shortcut connections(捷径连接)”的方式,直接把输入x传到输出作为初始结果,输出结果为H(x)=F(x)+x,当F(x)=0时,那么H(x)=x,也就是上面所提到的恒等映射。于是,ResNet相当于将学习目标改变了,不再是学习一个完整的输出,而是目标值H(X)和x的差值,也就是所谓的残差F(x) := H(x)-x,因此,后面的训练目标就是要将残差结果逼近于0,使到随着网络加深,准确率不下降。

这种残差跳跃式的结构,打破了传统的神经网络n-1层的输出只能给n层作为输入的惯例,使某一层的输出可以直接跨过几层作为后面某一层的输入,其意义在于为叠加多层网络而使得整个学习模型的错误率不降反升的难题提供了新的方向。至此,神经网络的层数可以超越之前的约束,达到几十层、上百层甚至千层,为高级语义特征提取和分类提供了可行性。

个人白话解读:

【1】就是说我们一开始是希望:输入x,输出H(x);但是我们知道,当H(x)过于复杂时,这样的模型训练难度很大,直接训练不现实;

【2】这时候如果我们继续恒等映射学习,就是说接下来的几层我们学的是一个恒等映射,那么显然就是x=H(x);从误差角度来说,虽然层数变多了几层,但是由于这是个恒等映射,因此误差即使不降低,最起码也是不会增加的;

【3】残差网络采用的上图中的shortcut connection实际上就是这样一种操作,他把x直接传到了输出,这样这个输出H(x)就不再是x的恒等映射了,因为H(x)=F(x)+x,而不是H(x)=x。

【4】我们说,输出H(x)的表示已经变了,而我们此时的目的是训练加入的这几层,这几层对于输入x来说,会得到一个输出F(x),从H(x)的表达式可以得出:F(x)=H(x)-x,也就是说,F(x)的学习目标就是使得H(x)尽可能贴近x,那么从另一个角度来说,F(x)在做的就是尽可能拟合H(x)和x的残差,就是F(x)->0,残差当然是不会等于0的,F(x)因此也就只能趋近于0,这样的训练目标就会使得F(x)获得x的合理表示,实现层数的累加。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值