您的位置:首页 > 理论基础 > 计算机网络

【深度学习】残差结构:1000层网络

2016-10-12 17:53 579 查看
本文介绍网络从几层加深到一千层的各种关键技术,尤其聚焦残差结构(Residual)在其中发挥的作用。

问题

网络的层数越深,可覆盖的解空间越广,理论上应该有越高精度。

但简单地累加层数,并不能直接带来更好的收敛性和精度。

网络的宽度也是决定性能的关键因素,“深vs宽”未有定论,不在本文讨论之列。

几层到几十层

问题:梯度消失

对于较深的网络时,在反向传播时,很容易由于响应过大/过小,进入梯度为0的区域。导致浅层无法训练。

解决

ReLU

2012年5层的AlexNet1使用了ReLU结构,斩获当年ILSVRC图像分类竞赛第一名。

ReLU响应函数(蓝色)的值域是[0,∞],只要响应为正,梯度不会消失



ReLU的另一个优点是:计算很快

Batch Normalization

2015年初的Batch Normalization2虽然没有打榜ImageNet,不过在2015年ILSVRC的参赛算法中已经是标准配置。

Batch Normalization对每一个mini-batch样本进行归一化,削减了训练时网络内部的方差变化,避免过大或过小的响应。

BN的额外优点是:可以使用较大的学习率,并且对参数初始值不敏感

一百层

问题

当层数更深时,出现了“退化问题”:深层网络和浅层网络相比,训练误差和测试误差都更大。

虽然参数更多,但深层网络的问题显然不是over-fitting:训练集上的表现也很糟糕。

解决

残差结构

2015年的Deep Residual3训练出了152层网络,勇夺2015年ILSVRC分类问题第一名。

作者的设计思路如下:

如果新增的层为单位映射H(x)=x,深层网络等价于浅层网络,性能不应该变差;

但是,仅通过叠加深度网络中的非线性层,很难模拟单位映射;

所以,干脆创造一个包含单位映射的结构H(x)=x+F(x),直接训练F(x)的参数。

一个典型的残差结构如下,蓝色为需要训练的卷积层,绿色为Batch Normalization,红色为激活层 ReLU:



数据流维持尺寸和通道数不变。新增的直通路只需要添加一个对位加运算,计算量极低

瓶颈式残差结构

这个结构可以进一步增加深度,但依然保有较低的运算量。



数据流先压缩成N通道,再重新扩展成M通道。卷积核较大的一层(3*3)中,使用较小的通道数N;而通道数较多(M)的两层中,使用较小的卷积核尺寸(1*1)

虽然深度远超20层的VGG4网络,但Deep Residual网络的计算复杂度却比前者更低。

一千层

问题

进一步增加层数,还能获得更好的结果吗?

解决:直通结构

2016年的Identity Mapping5训练出了惊人的1001层网络,在CIFAR-10获得低于5%错误率。

和残差结构相比,直通结构把直通路x上的非线性运算,转移到了运算路F(x)上。



即使堆叠多个直通结构,也能保证一条无损的x传递到网络深层。

A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification

with deep convolutional neural networks. In NIPS,

2012.
S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep

network training by reducing internal covariate shift. In ICML, 2015.
He, Kaiming, et al. “Deep residual learning for image recognition.” arXiv preprint arXiv:1512.03385 (2015).
K. Simonyan and A. Zisserman. Very deep convolutional networks

for large-scale image recognition. In ICLR, 2015.
He, Kaiming, et al. “Identity mappings in deep residual networks.” arXiv preprint arXiv:1603.05027 (2016).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习 算法
相关文章推荐