《Deep Residual Learning for Image Recognition》论文解析

朋友们从本周开始我会着手更新新系列的博客,论文解析系列。当然此系列我会尽力细致地介绍论文,不过因为水平有限,难免会有理解不到位甚至错误的地方,因此欢迎评论探讨。同时本系列更趋向于介绍论文大致思想,对于论文中太细的小细节便不再做更多介绍,若是大家想更加详细地了解一篇论文的话,还是去看英文原版的吧。但若是想快速了解论文思想和梗概或是不一样的读者想法,大概看看我的博客也不错。欢迎大家评论区留言提建议。

 

第一篇先拿resnet开刀了,这篇文章想来是近年来deep learning领域最有名的文章了吧,2016CVPR best paper,为之后几年的很多研究打下了基础。这一篇文章可以说写的是非常好啊,逻辑清晰且通俗易懂。同时这个新的网络结构思路也是天马行空惊为天人。恺明酱现在好像去了facebook。话不多说,进入正题:

《Deep Residual Learning for Image Recognition》

Abstract:

事情的起因在于越深的网络越难以训练,因此作者提出了残差网络。在ImageNet数据集上,作者使用了152层的残差网络进行训练,比VGG网络深了8倍,但是复杂度却更低。同时精度取得了第一。

 

Introduction:

首先,作者抛出观点,随着网络层数的加深,网络的表达能力会更强,这已经被很多研究所证实。与此同时,梯度消失/爆炸问题也随之出现,但是随着归一地初始化以及在网络中间层进行归一化等等方式的出现,反向传播的梯度下降又变得可行起来。

但是呢,有一个问题出现了,见下图:

图中56层的‘plain’网络,即56层全连接网络,不仅是测试误差,它的训练误差也比20层的网络高!那么这就不是一个过拟合问题了,因为如果是过拟合的话,训练时误差应该很低而测试时很高。而图中是无论训练还是测试都更高。

我们试想一下,假设有两个网络,三层和五层网络,我们最终要得到的结果是1。如果三层网络就可以输出1,那么五层网络只要在最后两层做一个恒等变换,文中叫“identity mapping”,便也可以得到1。因此理论上五层网络绝对不应该比三层网络差的,但是呢实验结果表明,这多出来的网络层并不能做到这种恒等变换。因此在这篇文章中,何恺明给出了解决方法,见下图:

设网络输入为x,经过几层网络的输出为F(x),而要传给下层网络的输入为H(x),右边那条路叫做shortcut(捷径)。

在正常的网络中,应该传递给下一层网络的输入是

H(x)=F(x)

但在resnet中,传递给下一层的输入变为

H(x)=F(x)+x

这样网络会比之前的方式更容易优化。试想极端情况,这几层网络完全是多余的,那么在正常的网络中,这几层网络就要努力做到恒等变换,使得

H(x)=F(x)=x

而在resnet中,只需要把F(x)变为0即可,输出变为

H(x)=F(x)+x=0+x=x

很明显,将网络的输出优化为0比将其做一个恒等变换要容易得多。

 

于是乎,resnet的核心公式如下:

其中Ws是一个矩阵。当然作者也指出实验证明了对于同等维度的变换不需要用到Ws,只需要在维度不一致的情况下使用Ws来统一维度即可。而且此网络结构完全适用于CNN。

整个的resnet结构对比图如下:

以及各个层数的resnet详细结构表:

当然啦作者还做了个对比实验:

上图左边是plain network,加了BN(batch normalization)来训练以防止梯度消失。而右边是resnet的结果。可以看出对于普通网络,更深的网络训练误差不一定更低,而resnet有效地克服了这个问题。而且resnet并没有增大网络的参数。

 

值得一提的是,由于在F(x)+x的时候会有维度不一致的问题,作者在这里提出了三种shortcut的方式。A、升维的时候直接用0padding(与前面的图一样,没有多余参数) B、升维的时候用1*1的卷积层来进行升维  C、在所有shortcut中使用1*1卷积。

结果自然是C最好,但是因为C的结果只好了一点点,但是参数多了很多,所以并没有被采用(结果好的原因只是因为参数变多了而已)。而A的方式因为相比普通网络完全没有增多参数,且结果也相当不错得到了采用。

 

在实验部分作者跑了许多实验,当然结果都是为了说明resnet非常牛逼,这里就不做过多的介绍了。感兴趣的朋友请看看原文吧。比较惹人注意的是1000+层的网络出现了过拟合,结果并没有比100+的网络更好。

deep residual learning for image recognition是一种用于图像识别的深度残差学习方法。该方法通过引入残差块(residual block)来构建深度神经网络,以解决深度网络训练过程中的梯度消失和梯度爆炸等问题。 在传统的深度学习网络中,网络层数增加时,随之带来的问题是梯度消失和梯度爆炸。这意味着在网络中进行反向传播时,梯度会变得非常小或非常大,导致网络训练变得困难。deep residual learning则使用了残差连接(residual connection)来解决这一问题。 在残差块中,输入特征图被直接连接到输出特征图上,从而允许网络直接学习输入与输出之间的残差。这样一来,即使网络层数增加,也可以保持梯度相对稳定,加速网络训练的过程。另外,通过残差连接,网络也可以更好地捕获图像中的细节和不同尺度的特征。 使用deep residual learning方法进行图像识别时,我们可以通过在网络中堆叠多个残差块来增加网络的深度。这样,网络可以更好地提取图像中的特征,并在训练过程中学习到更复杂的表示。通过大规模图像数据训练,deep residual learning可以在很多图像识别任务中达到甚至超过人类表现的准确性。 总之,deep residual learning for image recognition是一种利用残差连接解决梯度消失和梯度爆炸问题的深度学习方法,通过增加网络深度并利用残差学习,在图像识别任务中获得了突破性的表现。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哎呦不错的温jay

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

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

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

打赏作者

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

抵扣说明:

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

余额充值