大众号/AI火线
作者|George Seif
编译 | 郝毅
编辑|Emily
AI 火线导读: 近年来,深度学习在计算机视觉范畴曾经占据了相对的主导位置,在许多相关义务和竞赛中都取得了最好的表现。这些计算机视觉竞赛中最有名的就是 ImgaeNet。参与 ImageNet 竞赛的研讨人员经过发明更好的模型来尽能够准确地分类给定的图像。过来几年里,深度学习技术在该竞赛中获得了疾速的开展,甚至逾越了人类的表现。如今我们来回忆一下深度学习的的演化,从而深化地理解它是如何开展的、我们可以从中学到什么以及将来该当如何开展。
ImageNet 竞赛的应战
那么 ImageNet 应战赛的难点在哪里呢?让我们先从它的数据开端说起。ImageNet 分类义务的数据是经过手工标注的 1000 类图片,这些图片来自于 Flickr 和其他搜索引擎。数据的散布状况如表格所示:
在 2012 年,ImageNet 曾经拥有了近 130 万张训练图像。关于这种大规模图像分类义务,最大的应战就是图像的多样性。我们经过几个例子来阐明这个成绩。
在下图中,右边是另一个图像分类应战赛 PASCAL 中的样例图像。在 PASCAL 竞赛中,有近 20000 张训练图像和 20 个物体品种。这项竞赛中有很罕见的类,比方像下图中的“鸟”,”狗“和”猫“。再看 ImageNet 应战赛,跟后面的竞赛完全不同。ImageNet 并没有一个叫做”狗“的普通类,ImageNet 对每个种类的狗都有一个对应的类。不同于 PASCAL 只要”狗“这一品种,关于不同种类的狗,ImageNet 共有 120 个类。因而任何可以用于这个义务的算法或模型都必需可以处置这些十分细粒度的、详细的类,即便它们看起来十分类似并难以区分。
从技术角度讲,我们想要最大化类间变量。也就是说,关于包括两种不同种类的鸟类图像,我们的模型需求判别出它们之间的差别性,即便它们都是鸟,但是在我们的数据集中它们却是不同的类。
ImageNet 另一个具有应战性的缘由是:同一类物体能够看起来很不相反。我们来看一下上面这些图。右边的两幅图像都来自于”橙子“这一类,左边的两幅图像都来自于”桌球台“这一类。但是,每一张图像看起来都不一样!作为人类我们可以区分出其中一张图中的橙子被切开了而另一张图中的则没有;也可以看到随着中国经济向消费型模式的转型, 电子商务和移动电子商务的快速发展带来了支付行业强劲的增长。一张图中的桌子是缩小了的而另一张图中的没有。这就是所谓的类间变量。我们希望最小化这个变量,由于关于同一类的两张图像,我们需求深度学习模型可以以为它们看起来很相像。
深度学习在图像分类中的疾速开展
自 2012 年以来,针对图像分类义务的深度学习模型的开展简直每年都会有严重打破。由于数据规模庞大且具有应战性,ImageNet 应战赛不断是权衡图像分类义务的标杆。在这里,我们要深化理解一下深度学习在这个义务上的开展以及推进这一开展的次要框架。
2012 年,一篇来自多伦多大学的文章惹起了一切人的留意。这篇文章就是《ImageNet Classification with Deep Convolutional Networks》,发布在 NIPS 上。这篇文章随后成为了该范畴最具影响力的论文,并且在 ImageNet 应战赛上降低了 50% 的错误率,这是一个史无前例的停顿。
这篇文章建议运用深度卷积神经网络 (CNN) 来停止图像分类。相比于明天运用的各种卷积神经网络,它绝对来说比拟复杂。这篇文章的次要奉献是:
- 第一次成功地将深度神经网络使用在大规模图像分类成绩上。这其中的一局部缘由是 ImageNet 中有 少量带有标注 的数据,同时,运用了两个 GPU 并行计算。
- 运用 ReLU 作为 非线性激活函数 ,相比于 tanh 函数,ReLU 在取得更好的功能的同时还能增加训练工夫。如今,ReLU 曾经逐步成为深度网络的默许激活函数。
- 运用数据加强技术,包括图像平移 (image translation)、程度翻转 (horizontal reflections) 和均值减法 (mean subtraction)。这些技术在如今的很多计算机视觉义务中都被普遍运用。
- 运用 随机失活 (dropout) 来避免模型对训练数据 过拟合 。
- 提出 延续卷积、池化层及全衔接层 的网络构造,这一构造至今依然是许多顶尖网络的根底。
总的来说,AlexNet 是一项里程碑式的任务,它提供了运用 CNN 完成计算机视觉义务的基准和根本技术。
论文《Very Deep Convolutional Neural Networks for Large-Scale Image Recognition》于 2014 年问世,文中的 VGGNet 进一步扩展了包括许多卷积层和 ReLu 的深度网络。它们的中心思想是,你并不需求很多新奇的技巧来取得很高的精确率,少量的 3×3 卷积核和非线性网络就可以做到这一点!这篇论文的次要奉献是:
- 运用了尺寸只要 3×3 的滤波器替代 AlexNet 中 11×11 的滤波器。他们以为,两个延续的 3×3 卷积和一个 5×5 的卷积核具有相反的承受域(receptive field)或许视场 (即可观测到的像素数量);相似地,三个延续的 3×3 卷积核相当于一个 7×7 的卷积核。这样做的益处是,运用较小的滤波器尺寸就可以取得与更大的滤波器相反的效果。而较小的滤波用具有的一个益处是增加了参数的数量,其次是在每个卷积层之间运用 ReLU 函数可以在网络中引入更多的非线性,使决策函数更具有判别性。
- 随着每层输出量的空间尺寸减小(由于池化层的作用),它的深度在逐步添加。缘由是随着空间信息的减小(经过最大池化降采样),图像被编码为更具有判别性的特征来进步分类义务的精确率。因而特征图 (feature map) 的数量随着深度而添加,以便将这些特征图用在分类义务中。
- 它引见了一种新的数据加强方式:颤动 (scale jittering)。
- 运用 Caffe 工具包搭建模型,从此深度学习库变得越来越盛行。
在文章《Going Deeper with Convolutions》中,GoogLeNet 框架初次真正处理了 计算资源 的成绩,并提出了 多尺度处置 办法。当我们不时加深分类网络的深度,我们面临着需求运用少量内存的窘境。另外,之前曾经开展出了很多不同尺寸的滤波器:从 1×1 到 11×11,如何选择运用哪种滤波器?Inception 模块和 GoogLeNet 处理了这些成绩,详细奉献如下:
- 经过在每个 3×3 和 5×5 卷积之前运用 1×1 卷积,Inception 模块无效地增加了每层特征图的数量,从而增加了计算量和内存损耗!
- Inception 模块具有并行的 1×1、3×3 和 5×5 卷积操作。这面前的想法是让网络经过训练来决议哪些信息该当被学习和运用。它还可以停止多尺度处置:模型可以辨别经过较小的卷积核和更大的卷积核取得部分特征与笼统特征。
- GoogLeNet 初次引入这样的想法:CNN 的每一层并不总是要顺次叠加。本文的作者表示,在追求更深层的网络构造的同时,添加网络宽度当然也可以取得更好的功能。
自从 2015 年《Deep Residual Learning for Image Recognition》初次发布,ResNet 在众多计算机视觉义务的准确度上取得了宏大的提升。ResNet 在 ImageNet 应战赛上初次逾越人类表现,并且残差学习 (residual learning) 如今被普遍使用于很多功能最好的网络:
- 证明单纯的堆积网络层使网络更深,这不见得总是好的,实践上这样有能够招致网络功能更差。
- 为理解决下面提到的这个成绩,他们引入了跨越式衔接的残差学习。这个想法经过运用跨越式衔接作为一种捷径,网络的深层可以运用后面层的特征。这样使得特征信息可以更好地经过网络传达。异样,训练时梯度也可以更高效地反向传达。
- 第一个“超深”的网络,通常运用 100-200 层。
在文章《Densely Connnected Convolutional Networks》中提出的 DenseNet 将快捷衔接开展到了极致。DenseNet 扩展了 ResNet 中快捷衔接的想法,但比其具有更稀疏的衔接:
- DenseNet 将每一层与其它层经过前馈方式衔接。这样网络的每一层可以运用后面一切层的特征图作为输出,并且它的特征图将会被前面一切层运用。
- 运用了串联的方式而不是相似于 ResNet 中直接相加的方式,原始特征因而可以直接经过这些层。
- 比 ResNet 获得了更好的效果。DenseNet 无效地抑制了梯度消逝的成绩,加强了特征传达,鼓舞特征再应用,大幅增加了参数量。
以上就是过来几年中图像分类义务开展中的一些重要框架。令人冲动的是,这些已获得的严重打破与停顿曾经被用于处理很多实践使用,但是依然存在一个成绩……
深度学习将来将如何开展
正如我们所回忆的那样,面向图像分类的深度学习新生的改变世界的企业将会诞生,从而更好的服务整个人类世界,走向更高科技的智能化生活。研讨不断蓬勃开展!我们曾经在该范畴获得了很多严重打破,甚至逾越了人类的表现。深度神经网络如今曾经普遍地使用于许多商业化的图像分类成绩中,甚至成为了很多新兴科技的根底。
虽然深度学习曾经获得了很多严重的停顿,但是我们仍需坚持谦逊的态度,力图让它变得更好。深度学习在图像分类成绩中依然存在很多应战,假如我们想要取得更进一步的开展,如何处理这些应战是至关重要的。这里我将回忆一些我以为重要的研讨人员正在积极尝试处理的成绩:
如今,大局部图像分类义务运用的深度学习办法都是有监视的,即我们需求少量的标注数据来停止训练,这些数据是单调的,而且难以取得。比方 ImageNet 应战赛有 130 万张训练样本,但是只要 1000 个不同的品种,并且需求人工获取和标注一切的图像,这是十分费时费力的任务。
很多时分,当公司想要将一个图像分类网络使用到他们本人的详细使用中,他们需求运用迁移学习的思想来微调在 ImageNet 上预训练过的网络。为了微调网络,他们还需求搜集本人的数据并停止标注,这依然是有趣且费时的进程。
研讨人员目前正在积极努力地处理这个成绩,并获得了一些停顿。越来越多的任务开端转向这个方面,比方疾速无效地迁移学习,半监视学习和小样本学习。我们能够无法直接进入无监视学习,但是这些办法的研讨是朝着正确方向迈出的重要一步。
生成对立网络 (GAN) 的盛行带来了图像分类的一个新应战:对立图像。对立图像的类别对人类来说是不言而喻的,但是深度网络却不能正确地辨认。比方下面的图像,只是参加了细微的失真 (表观上的),深度网络就将它从熊猫分到了长臂猿。
这张图像在人类看来这依然是一只熊猫,但是由于某些缘由招致深度网络停止了错误的分类。这在实践使用的时分是十分风险的:试想一下假如自动驾驶汽车没有辨认出行人而直接开过来会怎样?招致这一成绩的局部缘由能够是由于我们对网络外部的原理和机制没有充沛的了解,但是无论如何,研讨人员正在积极地投身于处理这个具有应战性的成绩当中。
深度学习方面的很多提高是由硬件(尤其是 GPU)的改良所驱动的,GPU 可以高速地处置并行计算顺序。由于运用矩阵操作,深度网络需求少量的乘加运算,而 GPU 十分擅长这些运算。这关于深度学习的开展来说十分棒,但是并不是一切中央都有 GPU 可以用!
许多顶尖的网络,包括下面曾经讨论过的网络,都只能在高端 GPU 上正常运转。挪动设备是一个宏大的市场,如何让深度神经网络也能效劳于这个市场是关键一步。此外,随着网络越来越深,它们往往需求更多的内存,这也限制了更多的设备来运转网络。
实践上,这方面的研讨最近曾经有了很大的提升,逐步盛行的 MobileNets 是一种可以直接在挪动端运转深度网络的框架。它运用另一种卷积方式来增加内存耗费和推理工夫。
总结
本文引见了图像分类的难点,并回忆了深度学习在该范畴获得的惊人停顿。同时提到一些正在面临的应战,可以看到运用新的迷信和工程办法来应对这些应战是件非常令人冲动的事情。
检查英文原文:
https://towardsdatascience.com/deep-learning-for-image-classification-why-its-challenging-where-we-ve-been-and-what-s-next-93b56948fcef