【深度】从经典深度学习模型探讨图像识别新方向

学术plus2019-07-07 03:33:08


学术plus】 新添加号内搜索功能!

进入公众号→点击菜单【智库扫描】→【搜搜文章】

→输入关键词→一键检索您需要的文章。快来试试!


【兼职】神秘岗位正在向你招手,敢来么?

【厚度】学术plus年终巨献:2017年 你不可以错过的重磅报告们!(全文阅读链接)


本文转载自:专知,来源:专知内容组(编)


【导读】1月22日,深度学习工程师George Seif发布一篇文章,主要介绍了一些经典的用于图像识别的深度学习模型,包括AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet的网络结构及创新之处,并展示了其在ImageNet的图像分类效果。这些经典的模型其实在很多博文中早已被介绍过,作者的创新之处在于透过这些经典的模型,讨论未来图像识别的新方向,并提出图像识别无监督学习的趋势,并引出生成对抗网络,以及讨论了加速网络训练的新挑战。文章梳理了用于图像识别的深度学习方法的脉络,并对将来的挑战和方法做了分析,非常值得一读!专知内容组编辑整理。


Deep Learning for Image Recognition: why it’s challenging, where we’ve been, and what’s next

用于图像识别的深度学习:为什么这是一个挑战,我们做过哪些工作,接下来要做哪些


在过去的几年中,深度学习绝对主导了计算机视觉,在许多任务和相关竞赛中取得了最好效果。 这些计算机视觉竞赛中最受欢迎、最知名的竞赛是ImageNet。ImageNet竞赛任务是:让研究人员创建一个模型,对给定的图像进行分类。


过去的几年里,深度学习技术极大推进了这场比赛,甚至超越了人类的表现。


今天我们要回顾一下这方面的进展,从而了解深度学习是如何推动其发展的,了解我们可以从中学到什么,以及我们走到哪一步。


ImageNet的挑战




那么ImageNet挑战有什么难的呢? 让我们先看看数据。ImageNet分类任务的数据是从Flickr和其他搜索引擎收集的,由人类手动标记,总共有1000个类别,每个图像属于其中一个。


数据集的分布如下表所示。

 ImageNet Dataset


到2012年,ImageNet拥有近130万个训练图像。 这样一个大规模的图像分类任务的主要挑战是图像的多样性。在这里我们可以看一下这个例子。


看看下面的图片。 在左侧,我们看到来自另一个图像分类challange的一些示例图像:PASCAL。在PASCAL挑战中,只有大约20,000个训练图像和20个对象类别。 这个挑战的类别:如“鸟”,“狗”和“猫”,如下所示。说到ImageNet的挑战,这是一个全新的比赛。 ImageNet并没有一个叫做“狗”的普通类,它包含了各种各样的狗。 事实上,ImageNet并没有PASCAL的“狗”类别,而是有120种不同品种的狗类(更加细粒度:如哈士奇、德国牧羊犬、秋田犬等,而不是统一的“狗”类)!因此,我们用于此任务的任何模型/算法都必须能够处理这些非常“细粒度”和“特定”的类,即使它们看起来非常相似并且很难区分。


更技术性地讲,我们希望最大化类间差异性。这意味着我们需要两个图像,每个图像包含一种不同类型的鸟类,因此即使它们都是鸟类,但在我们的数据集中,它们都属于不同的类别。

Inter-class Variability(类间差异性


这是ImageNet的另一个具有挑战性的特性:同一个类的对象可以看起来很不一样。 让我们看看下面的图片。左边的两个都来自“orange”类,右边的两个都来自“pool table”类。 然而,每一对图像看起来都不一样!对于人类,我们可以看到其中一个桔子被切开,另一个桔子没被切开。 我们也可以看到一张桌子的图片放大了,另一张没有放大。这就是所谓的类内差异性。 我们希望尽量减少这种变化,因为我们希望在我们的深度学习模型中,同一类的两幅图像看起来是相似的。

Intra-class Variability(类内差异性 


有了这些图像分类的挑战,让我们来回顾一下深度学习是如何在这个任务上取得重大进展的。


深度学习在图像分类方面的快速发展




自2012年以来,几乎每年都在为图像分类任务开发深度学习模式方面取得重大突破。由于数据规模庞大且具有挑战性,ImageNet挑战一直是衡量进展的主要标杆。在这里,我们要看看深度学习这个任务的进展,以及一些主要网络结构。


  • 开始的一切:AlexNet




早在2012年,多伦多大学就在NIPS上发表一篇论文,效果则是令人震惊的。该论文是“ImageNet Classification with Deep Convolutional Neural Networks”。

(地址:

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf )


 在ImageNet挑战中错误率降低了近50%,它成为“现有领域中最有潜力的论文之一”,这在当时是前所未有的进展。


本文提出使用深度卷积神经网络(CNN)进行图像分类任务。与今天使用的相比,这是相对简单的。这篇论文的主要贡献是:


  • 第一个成功使用深度卷及网络进行大规模图像分类。这是因为ImageNet提供了大量标记数据,以及在两个GPU上使用并行计算来训练模型。


  • 他们使用ReLU作为非线性激活函数,发现它们相对于tanh函数表现更好,训练时间更短。ReLU非线性激活函数现在几乎成为深度网络的默认激活函数。


  • 他们使用数据增强技术,包括图像翻转,水平反射(horizontal reflections)和均值减法(mean subtraction)。 这些技术如今被广泛用于许多计算机视觉任务。


  • 他们使用dropout层来解决训练数据过拟合的问题。


  • 他们提出的连续卷积和pooling层的方式,最后是全连接层,仍然是当今许多最先进网络的基础。


基本上,AlexNet提供的设置和baseline都称为计算机视觉领域CNN的默认技术!


  • 更深:VGGNet



VGGNet的论文“Very Deep Convolutional Neural Networks for Large-Scale Image Recognition”于2014年出版,进一步使用更多卷积和ReLU加深卷积网络。他们的主要想法是,你并不需要任何花哨的技巧来提高高精度。只要有很多小的3x3卷积和非线性激活函数的更深层的网络就可以做到这一点! VGGNets的主要贡献是:


  • 只使用3x3大小的过滤器,而不是AlextNet中使用的11x11。他们表明,两个连续的3×3卷积与单个5×5卷积具有等价的接受场或“视场”(即它所看到的像素);相似地,三个连续的3×3卷积相当于一个7×7卷积。这样做的好处是可以模拟更大的过滤器,同时保持较小过滤器尺寸的好处。较小的过滤器的第一个好处是减少了参数的数量。其次是能够在每个卷积之间使用ReLU函数,将更多的非线性引入到网络中,使决策函数更具有判别力。


  • 随着每层输入volumes(input volumes)的空间尺寸减小(作为pooling层的结果),volumes的深度增加。这背后的想法是,随着空间信息的减少(从max pooling下采样),它应该被编码为更多的可区分特征,以用于更准确的分类。因此,特征图的数量随着深度增加而增加,以便能够捕获这些用于分类的特征。


  • 它引入了一种新的数据增强方式: scale jittering。


  • 使用Caffe工具箱构建模型。 此时,深度学习库越来越受欢迎。


VGGNet:https://arxiv.org/pdf/1409.1556.pdf


  • 更深:GoogLeNet和Inception模块




GoogLeNet架构是第一个真正解决计算资源问题以及“Going Deeper with Convolutions”论文中的多尺度处理。随着我们的分类网络越来越深,我们必须得使用大量的内存。另外,过去已经提出了不同的计算滤波器尺寸:从1x1到11x11; 你怎么决定该用哪一个?inception模块和GoogLeNet解决了所有这些问题,具体贡献如下:

GoogLeNet:

https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf


  • 通过在每个3x3和5x5之前使用1x1卷积,初始模块减少了通过每层的特征映射的数量,从而减少了计算量和内存消耗!


  • 初始模块具有全部并行的1x1,3x3和5x5卷积。这背后的想法是通过训练让网络决定什么信息将被学习和使用。它还允许进行多尺度处理:模型可以通过较小的卷积和较大卷积的高抽象特征来恢复局部特征。


  • GoogLeNet是第一个提出CNN层并不总是必须按顺序排列。本文的作者表示,您还可以增加网络宽度而不仅仅是深度以获得更好的性能。


  • 跳过一条捷径:ResNet




自2015年在“图像识别的深度残差学习”一文中发布以来,ResNet已经在很多计算机视觉任务中提高了准确性。ResNet架构是ImageNet上第一个超过人类级别的性能测试的模型,而他们在residual learning方面的主要贡献在今天许多最先进的网络中经常被默认使用:

ResNet:https://arxiv.org/pdf/1512.03385.pdf


  • 文章揭露了:将层进行简单的堆叠,从而使网络非常深并不总是有帮助,也可能取得相反的结果。


  • 为了解决上述问题,他们引入了结合skip-connections的残差学习(residual learning)。这个想法是,通过添加skip连接作为快捷方式,每一层层可以直接访问前一层的函数,允许特征信息更容易地在网络上进行传播。 它也有助于训练,因为梯度能更高效地反向传播。