联合编译:Blake、高斐
雷锋网注:何凯明博士,2007年清华大学毕业之后开始在微软亚洲研究院(MSRA)实习,2011年香港中文大学博士毕业后正式加入MSRA,目前在Facebook AI Research (FAIR)实验室担任研究科学家。曾以第一作者身份拿过两次CVPR最佳论文奖(2009和2016)——其中2016年CVPR最佳论文为图像识别中的深度残差学习(Deep Residual Learning for Image Recognition),本文为何凯明博士在ICML2016上的tutorial演讲以及相关PPT整理。相比学术论文,他在演讲PPT中深入浅出地描述了深度残差学习框架,大幅降低了训练更深层次神经网络的难度,也使准确率得到显著提升。
ICML 2016 tutorial
何凯明——Facebook AI Research(8月加入)
介绍
背景
从浅到深
深度残差网络
从10层到100层
从100层到1000层
应用
Q & A
“用于图像识别的深度残差学习” CVPR2016
一个能够用来训练“非常深”的深度网络又十分简洁的框架
在以下几个领域中都能实现当下最好的表现
图像分类
对象检测
语义分割
等等
在五个主要任务轨迹中都获得了第一名的成绩
ImageNet分类任务:“超级深”的152层网络
ImageNet检测任务:超过第二名16%
ImageNet定位任务:超过第二名27%
COCO检测任务:超过第二名11%
COCO分割任务:超过第二名12%
在ILSVRC2010年左右还主要是浅层网络,大部分需要手动调教特征。在ILSVRC2012年时,出现了8层的网络——AlexNet,降低了10%的错误率。而后ILSVRC2014出现的VGG和GoogleNet是相当成功的,它们分别将层级提到了19层、22层,错误率也降低到了7.3、6.7。到去年的ILSVRC2015,我们的ResNet将层级提到了152层,将错误率降到了3.57。
AlexNet, 8层 (ILSVRC 2012)
AlexNet, 8层 (ILSVRC 2012)
VGG, 19层 (ILSVRC 2014)
GoogleNet, 22层 (ILSVRC 2014)
AlexNet, 8层 (ILSVRC 2012)
VGG, 19层 (ILSVRC 2014)
ResNet, 152 层 (ILSVRC 2015)
PASCAL VOC 2007——中间层数代表视觉识别的层数
HOG, DPM——浅层——34%的对象检测率
AlexNet (RCNN)——8层——58%的对象检测率
VGG (RCNN)——16层——66%的对象检测率
ResNet (Faster RCNN)——101层——86%的对象检测率
许多第三方实现工具
Facebook AI Research’s Torch ResNet
Torch, CIFAR-10,使用 ResNet-20到 ResNet-110, 训练代码等
Lasagne, CIFAR-10, 使用 ResNet-32 和 ResNet-56 以及训练代码等
Neon, CIFAR-10, 使用预训练的 ResNet-32到 ResNet-110 模型、代码等
Torch, MNIST, 100层
Neon, Place2 (mini), 40层
容易重现结果
一系列的扩展和后续工作
6个月内超过200词引用(在2015年12月发布在arXiv上后)
初始化算法
批归一化算法
学习更好的网络是否与堆叠层数一样简单?
“平原”网络:堆叠3x3卷积网络……
与第20层网络相比,第56层网络存在更高的训练误差与测试误差。
层数过深的平原网络具有更高的训练误差
这是一个在许多数据集中都能够观察到的普遍现象
网络层数较浅的模型(18层)
网络层数较深的模型(34层)
较高分辨率空间
一个较深的网络模型不应当具有较高的训练误差
通过构建形成的分辨率:
原始层:由一个已经学会的较浅模型复制得来
附加层:设置为“恒等”
至少具有相同的训练误差
优化难题:随着网络层数不断加深,求解器不能找到解决途径
平原网络
H(x)是任意一种理想的映射
希望第2类权重层能够与H(x)拟合
H(x)是任意一种理想的映射
希望第2类权重层能够与F(x)拟合
使H(x) = F(x) + x
F(x)是一个残差映射w.r.t 恒等
如果说恒等是理想,很容易将权重值设定为0
如果理想化映射更接近于恒等映射,便更容易发现微小波动
VLAD & 费舍尔向量(Fisher Vector) [Jegou et al 2010], [Perronnin et al 2007]
编码残差向量;强大的较浅表示法。
产品量化(IVF-ADC) [Jegou et al 2011]
量化残差向量;高效最近邻搜索。
多栅 & 分层的先决前提 [Briggs, et al 2000], [Szeliski 1990, 2006]
解决残差次要问题;高效PDE求解器。
保持网络的简约性
我们的基本设计方案(VGG-style)
所有的3x3卷积层(几乎所有)
空间规模/2=>#过滤器x2 (~每一层的复杂度相同)
简约的设计风格;保持设计风格的简约性
其他评论:
无隐层fc
无信息流失
所有的平原/残差网络都是从头开始训练的。
所有的平原/残差网络都运用组归一化(Batch Normalization)
标准化的超参数&增强
深度残差网络(ResNets)能够在没有任何难题的情况下得到训练
深度残差网络(ResNets)具有较低的训练误差和测试误差
深度残差网络(ResNets)能够在没有任何难题的情况下得到训练。
深度残差网络(ResNets)具有较低的训练误差和测试误差。
一个逐层深入的实际可行的设计方案
较深的ResNets具有较低的误差
与VGG-16/19相比,该模型具有较低的时间复杂度。
图像网络分类误差排行前5的网络模型
表征能力
如果能够找到最佳表征方法,将具备构建模型的能力,以拟合训练数据。
如果模型A的分辨率空间是B的父集,模型A的分辨率更高。
优化能力
找到最佳表征方法的可行性
并不是所有的模型都能非常容易地得到优化
归纳能力
倘若训练数据是拟合的,测试的性能如何?
表征能力
残差网络在模型表征方面不存在直接的优势(只是实现重复参数化)
但是,残差网络允许逐层深入地表征所有的模型
优化能力
残差网络使得前馈式/反向传播算法非常顺利进行
在极大程度上,残差网络使得优化较深层模型更为简单
归纳能力
残差网络未直接处理学习深度模型过程中存在的归纳问题
但是,更深+更薄是一种好的归纳手段
另外,对于残差网络的详细介绍可见何凯明博士在2016年CVPR中的最佳论文——图像识别的图像识别中的深度残差学习(Deep Residual Learning for Image Recognition):
在论文中介绍了一个深层次的残差学习框架来解决精准度下降问题。我们明确地让这些层适合残差映射,而不是寄希望于每一个堆叠层直接适合一个所需的底层映射。形式上,把H(x)作为所需的基本映射,让堆叠的非线性层适合另一个映射F(x):=H(x)-x。那么原映射便转化成:F(x)+x。我们假设优化剩余的映射,比优化原来未引用的映射更容易。如果身份映射是最佳的,那么将剩余的映射推为零,就比用一堆非线性层来适应身份映射更容易。
公式F(x)+x可以通过“快捷连接”前馈神经网络实现。快捷连接是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行身份映射,并将它们的输出添加到叠加层的输出。身份快捷连接添加既不产生额外的参数,也会增加不计算的复杂度。通过反向传播的SGD,整个网络仍然可以被训练成终端到端的形式,并且可以在没有修改器的情况下很容易的使用公共资料库(例如Caffe)。
我们在ImageNet上进行了综合性实验展示精准度下降问题,并对我们的方法做出评估。我们发现:
(1)特别深的残差网络很容易优化,但当深度增加时对应的“平面”网(即简单的堆栈层)表现出更高的训练误差。
(2)深度残差网络能够在大大增加深度的同时获得高精准度, 产生的结果本质上优于以前的网络。
相似的现象同样出现在了CIFAR-10集中,这表明了优化的难度,以及我们方法影响的不仅仅是类似于一个特定的数据集。我们在这个超过100层数据集中提出了成功的训练模型,并探讨了超过1000层的模型。
在ImageNet分层数据集中,通过极深的残差网络,我们得到了非常好的结果。152层的残差网络在ImageNet中是最深层的网络,同时相比于VGG网络仍然具有较低的复杂性。我们的集成在ImageNet测试集中有3.57%排前5的误差,并且在2015ILSVRC分类竞争中取得第一名。这种极深的陈述在其它识别任务方面也有出色的泛化性能,并带领我们进一步赢得了第一的位置:在ILSVRC和COCO2015竞赛中的,mageNet检测,ImageNet定位,COCO检测,和COCO分割方面。这有力的证据表明,剩余的学习的原则是通用的,我们期望它适用于其它的视觉和非视觉问题。
本文作者:李尊
本文转自雷锋网禁止二次转载,原文链接
相关资源:残差网络图像分类 复现 tensorflow1.2.0以上