【论文阅读】Deep Residual Learning for Image Recognition

论文简介:

《Deep Residual Learning for Image Recognition》文章出自微软亚洲研究院何凯明团队,其分别获得ImageNet 2015 Detection, localization,Classification 任务的第一名,也分别获得 COCO 2015 Detection,Segmentation 任务的第一名。

一、Introduction 介绍

更大更深的网络模型具有更强大的representation power,由于梯度消失、梯度爆炸(vanishing/exploding gradients)等原因,深层网络比浅层网络更难进行训练。梯度消失、梯度爆炸在网络训练的起始阶段就会阻碍网络的收敛,较好的初始化策略,数据的归一化处理,Batch normalization,正则化,Dropout等技术已经可以有效的促进深度网络的高效训练。BN层的引入基本解决了plain net的梯度消失和梯度爆炸问题。

对于深层网络出现了退化现象(degradation),对于相同的数据集,更深层的网络比浅层的网络在训练集和测试集上都具有更大的误差。这不是因为过拟合问题,过拟合是训练集误差更小,测试集误差较大。

对于一个浅层网络和深层网络来说,浅层网络的解空间包含于深层网络的解空间,深层网络的解应该不差于浅层网络的解,因为只需要将增加的多余层变为恒等映射,将其他层的权重原封不动的从浅层网络的对应层复制过来。更出色的解明明存在,却找到了较差的解。其表明不是所有的网络系统(浅层、深层)都具有相近的优化难度。

有两种解决思路,一种是调整求解方法,比如更好的初始化、更好的梯度下降算法等;另一种是调整模型结构,让模型更易于优化——改变模型结构实际上是改变了error surface的形态。

二、Residual Block

假设期望的隐含映射为H(x),作者没有设法去促使堆叠的非线性网络层去拟合H(x),而是让网络层去拟合残差F(x)=H(x)-x,那么原来的期望的隐含映射变为H(x)=F(x)+x。相对于让非线性网络层去拟合恒等映射,让其去学习成0会更加容易(权重参数为0,使用L2正则化就可以轻松实现)。

Residual Block如下图所示,对传统网络层在旁边加一个恒等映射路径(identity mapping,shortcut connection),非线性网络层路径拟合残差F(x),F(x)与x按通道逐元素相加。Feature map 经 max pooling 后(x,y)空域尺寸变小后,需要相应的卷积stride变为2,来使得空域尺寸相等。通道数不相等时,可以采用缺少的通道全部补为全0通道,或者对x进行线性映射(W*x),1x1卷积核进行通道维度的增大或者降维。

【论文阅读】Deep Residual Learning for Image Recognition

Residual Block可以分为两种,常规block和bottleneck block,如下图右边图所示,bottleneck block由于在中间层对通道维度进行了降维再升维的处理,相对于普通residual block(左边),会具有更少的网络参数,左边适用于网络层数较少的网络,右边适用于网络层数较多的网络。

【论文阅读】Deep Residual Learning for Image Recognition

三、ResNet  残差网络

ResNet是由多个Residual Block的串联构成,下图为ResNet-34与34-layer plain net和VGG网络图示,以及堆叠不同数量Residual Block得到的不同规模的ResNet,18,34,50,101,152层的ResNet。

【论文阅读】Deep Residual Learning for Image Recognition

【论文阅读】Deep Residual Learning for Image Recognition