cifarclassify
实现常用图像分类算法
CV-News-Classification
图像分类入门 -图像分类的概念
背景与意义
所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像。虽然看起来挺简单的,但这可是计算机视觉领域的核心问题之一,并且有着各种各样的实际应用。在后面的课程中,我们可以看到计算机视觉领域中很多看似不同的问题(比如物体检测和分割),都可以被归结为图像分类问题。
一个简单的例子
以下图为例,图像分类模型读取该图片,并生成该图片属于集合 {cat, dog, hat, mug}中各个标签的概率。需要注意的是,对于计算机来说,图像是一个由数字组成的巨大的3维数组。在这个例子中,猫的图像大小是宽248像素,高400像素,有3个颜色通道,分别是红、绿和蓝(简称RGB)。如此,该图像就包含了248X400X3=297600个数字,每个数字都是在范围0-255之间的整型,其中0表示全黑,255表示全白。我们的任务就是把这些上百万的数字变成一个简单的标签,比如“猫”。
图像分类的任务,就是对于一个给定的图像,预测它属于的那个分类标签(或者给出属于一系列不同标签的可能性)。图像是3维数组,数组元素是取值范围从0到255的整数。数组的尺寸是宽度x高度x3,其中这个3代表的是红、绿和蓝3个颜色通道。
分类的种类
图像分类包括通用图像分类、细粒度图像分类等。图1展示了通用图像分类效果,即模型可以正确识别图像上的主要物体。
图1. 通用图像分类
图2展示了细粒度图像分类-花卉识别的效果,要求模型可以正确识别花的类别。图2. 细粒度图像分类展示
分类的难点
对于人来说,识别出一个像“猫”一样视觉概念是简单至极的,然而从计算机视觉算法的角度来看就值得深思了。我们在下面列举了计算机视觉算法在图像识别方面遇到的一些难点,要记住图像是以3维数组来表示的,数组中的元素是亮度值。
- 视角变化(Viewpoint variation):同一个物体,摄像机可以从多个角度来展现。
- 大小变化(Scale variation):物体可视的大小通常是会变化的(不仅是在图片中,在真实世界中大小也是变化的)。
- 形变(Deformation):很多东西的形状并非一成不变,会有很大变化。
- 遮挡(Occlusion):目标物体可能被挡住。有时候只有物体的一小部分(可以小到几个像素)是可见的。
- 光照条件(Illumination conditions):在像素层面上,光照的影响非常大。
- 背景干扰(Background clutter):物体可能混入背景之中,使之难以被辨认。
- 类内差异(Intra-class variation):一类物体的个体之间的外形差异很大,比如椅子。这一类物体有许多不同的对象,每个都有自己的外形。
面对以上所有变化及其组合,好的图像分类模型能够在维持分类结论稳定的同时,保持对类间差异足够敏感。
常用的图像数据集
数据是视觉识别研究中最重要的因素之一,通 常我们更多关注于模型、算法本身,事实上,数据在 视觉任务中的作用越来越明显.大数据时代的到来, 也使得研究人员开始更加重视数据.在数据足够多 的情况下,我们甚至可以使用最简单的模型、算法, 比如最近邻分类、朴素贝叶斯分类器都能得到很好 的效果.鉴于数据对算法的重要性,我们将在本节对 视觉研究中物体分类与检测方面的主流数据集进行概 述。
MNIST 数据集
早期物体分类研究集中于一些较为简单的特定 任务,如OCR、形状分类等.OCR中数字手写识别 是一个得到广泛研究的课题,相关数据库中最著名 的是MNIST数据库.MNIST是一个数字手写识 别领域的标准评测数据集,数据库大小是60000,一 共包含10类阿拉伯数字,每类提供5000张图像进 行训练,1000张进行测试.MNIST的图像大小为 28×28,即784维,所有图像为手写数字,存在较大 的形变.
CIFAR 数据集
CIFAR-10和CIFAR-100数据库是Tiny images的两个子集,分别包含了10类和100类物 体类别.这两个数据库的图像尺寸都是32×32,而 且是彩色图像.CIFAR-10包含6万的图像,其中 5万用于模型训练,1万用于测试,每一类物体有 5000张图像用于训练,1000张图像用于测试. CIFAR-100与CIFAR-10组成类似,不同的是包含 了更多的类别:20个大类,大类又细分为100个小 类别,每类包含600张图像.CIFAR-10和CIFAR-100数据库尺寸较小,但是数据规模相对较大,非常 适合复杂模型特别是深度学习模型训练,因而成为 深度学习领域主流的物体识别评测数据集.
Caltech 数据集
Caltech-101是第一个规模较大的一般物体识 别标准数据库,除背景类别外,它一共包含了101类 物体,共9146张图像,每类中图像数目从40到800 不等,图像尺寸也达到300左右.Caltech-101是以 物体为中心构建的数据库,每张图像基本只包含一 个物体实例,且居于图像中间位置.物体尺寸相对图 像尺寸比例较大,且变化相对实际场景来说不大,比 较容易识别.Caltech-101每类的图像数目差别较 大,有些类别只有很少的训练图像,也约束了可以使 用的训练集大小.Caltech-256与类Caltech-101类 似,区别是物体类别从101类增加到了256类,每类 包含至少80张图像.图像类别的增加,也使得 Caltech-256上的识别任务更加困难,使其成为检 验算法性能与扩展性的新基准。
15 Scenes 数据集
15 Scenes是由Lazebnik等人在Li等人的13 Scenes数据库的基础上加入了两个新的场景构成的,一共有15个 自然场景,4485张图像,每类大概包含200~400张 图像,图像分辨率约为300×250.15 Scenes数据库 主要用于场景分类评测,由于物体分类与场景分类 在模型与算法上差别不大,该数据库也在图像分类 问题上得到广泛的使用
PASCAL VOC 数据集
PASCAL VOC从2005年到2012年每年都发布关于分类、检测、分割等任务的数据库,并在相应数据库上举行了算法竞赛,极大地推动了视觉研究的发展进步.最初2005年PASCAL VOC数据库只包含人、自行车、摩托车、汽车共4类,2006年类别数目增加到10类,2007年开始类别数目固定为20类,以后每年只增加部分样本.PACAL VOC数据库中物体类别均为日常生活中常见的物体,如交通工具、室内家具、人、动物等.PASCAL VOC数据库共包含9963张图片,图片来源包括filker等互联网站点以及其他数据库,每类大概包含96~2008张图像,均为一般尺寸的自然图像.PASCAL VOC数据库与Caltech-101相比,虽然类别数更少,但由于图像中物体变化极大,每张图像可能包含多个不同类别物体实例,且物体尺度变化很大,因而分类与检测难度都非常大.该数据库的提出,对物体分类与检测的算法提出了极大的挑战,也催生了大批优秀的理论与算法,将物体识别的研究推向了一个新的高度.
ImageNet 数据集
随着分类与检测算法的进步,很多算法在以上 提到的相关数据库上性能都接近饱和,同时随着大 数据时代的到来、硬件技术的发展,也使得在更大规 模的数据库上进行研究和评测成为必然.ImageNet是由Li主持构建的大规模图像数据库,图像类别按照WordNet构建,全库截止2013年共有1400万张图像,2.2万个类别,平均每类包含1000张图像.这是目前视觉识别领域最大的有标注的自然图像分辨率的数据集,尽管图像本身基本还是以目标为中心构建的,但是海量的数据和海量的图像类别,使得该数据库上的分类任务依然极具挑战性.除此 之外,ImageNet还构建了一个包含1000类物体 120万图像的子集,并以此作为ImageNet大尺度视 觉识别竞赛的数据平台,也逐渐成为物体分类算法 评测的标准数据集.
SUN数据集
SUN数据库的构建是希望给研究人员提供一个覆盖较大场景、位置、人物变化的数据库,库中的场景名是从WordNet中的所有场景名称中得来的.SUN数据库包含两个评测集,一个是场景识别数据集,称为SUN-397,共包含397类场景,每类至少包含100张图片,总共有108754张图像.另一个评测集为物体检测数据集,称为SUN2012,包含16873张图像。
Tiny images 数据集
Tiny images是一个图像规模更大的数据库, 共包含7900万张32×32图像,图像类别数目有 7.5万,尽管图像分辨率较低,但还是具有较高的区分度,而其绝无仅有的数据规模,使其成为大规模分 类、检索算法的研究基础.
我们也可以发现,物体类别越多,导致类间差越小,分类与检测任务越困难,图像数目、图像尺寸的大小,则直接对算法的可扩展性提出了更高的要求, 如何在有限时间内高效地处理海量数据、进行准确 的目标分类与检测成为当前研究的热点.
图像分类入门 2-图像分类的基本方法
传统的图像分类方法
一般来说,图像分类通过手工特征或特征学习方法对整个图像进行全部描述,然后使用分类器判别物体类别,因此如何提取图像的特征至关重要。在深度学习算法之前使用较多的是基于词袋(Bag of Words)模型的物体分类方法。词袋方法从自然语言处理中引入,即一句话可以用一个装了词的袋子表示其特征,袋子中的词为句子中的单词、短语或字。对于图像而言,词袋方法需要构建字典。最简单的词袋模型框架可以设计为底层特征抽取、特征编码、分类器设计三个过程。
模型简介
图像识别领域大量的研究成果都是建立在PASCAL VOC、ImageNet等公开的数据集上,很多图像识别算法通常在这些数据集上进行测试和比较。PASCAL VOC是2005年发起的一个视觉挑战赛,ImageNet是2010年发起的大规模视觉识别竞赛(ILSVRC)的数据集,本节中我们基于这些竞赛介绍图像分类模型。
词袋模型(Bag-of-Words)
词袋模型(Bag-of- Words)最初产生于自然语言 处理领域,通过建模文档中单词出现的频率来对文档进行描述与表达.简单说就是讲每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后看这个袋子里装的都是些什么词汇,将其分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的.Csurka等人于2004年首次 将词包的概念引入计算机视觉领域,由此开始大量 的研究工作集中于词包模型的研究。在2012年之前,词袋模型是VOC竞赛 中物体分类算法的基本框架,几乎所有的参赛算法 都是基于词袋模型。通常完整建立图像识别模型一般包括底层特征提取、特征编码、空间约束、分类器设计、模型融合等几个阶段。
向量中每个元素表示词典中相关元素在文档中出现的次数。不过,在构造文档向量的过程中可以看到,我们并没有表达单词在原来句子中出现的次序(这是本Bag-of-words模型的缺点之一,不过瑕不掩瑜甚至在此处无关紧要)。
- 底层特征提取: 底层特征提取是物体分类框架中的第一步,底层特征提取方式有两种:一种是基于兴趣点检测,另一种是采用密集提取的方式。
- 兴趣点检测算法通过某种准则选择具有明确定义的、局部纹理特征比较明显的像素点、边缘、角点、区块等,并且通常能够获得一定的几何不变性,从而可以在较小的开销下得到更有意义的表达,最常用的兴趣点检测算子有Harris角点检测子、FAST(Features from Accelerated Segment Test)算子、 LoG(Laplacian of Gaussian)、DoG(Difference of Gaussian)等。
- 密集提取的方式则是从图像中按固定的步长、尺度提取出大量的局部特征描述,大量的局部描述尽管具有更高的冗余度,但信息更加丰富,后面再使用词包模型进行有效表达后通常可以得到比兴趣点检测更好的性能.常用的局部特征包括SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)、HOG(Histogram of Oriented Gradient,方向梯度直方图)、LBP(Local Binary Pattern,局部二值模式)等等。
从上表可以看出,2012年之前历年最好的物体分类算法都采用了多种特征年采样方式上密集提取与兴趣点检测相结合,底层特征描述也采用了多种特征描述子,这样做的好处是,在底层特征提取阶段,通过提取到大量的冗余特征,最大限度的对图像进行底层描述,防止丢失过多的有用信息,这些底层描述中的冗余信息主要靠后面的特征编码和特征汇聚得到抽象和简并。事实上,近年来得到广泛关注的深度学习理论中一个重要的观点就是手工设计的底层特征描述子作为视觉信息处理的第一步,往往会过早地丢失有用的信息,直接从图像像素学习到任务相关的特征描述是比手工特征更为有效的手段。
-
特征编码: 密集提取的底层特征中包含大量的冗余与噪声,为提高特征表达的鲁棒性,需要使用一种特征变换算法对底层特征进行编码,从而获得更具区分性、更加鲁棒的特征表达,这一步对物体识别的性能具有至关重要的作用,因而大量的研究工作都集中在寻找更加强大的特征编码方法,重要的特征编码算法包括向量量化编码、核词典编码、稀疏编码、局部线性约束编码、显著性编码、Fisher向量编码、超向量编码等。
- 向量量化编码:向量量化编码是简单的特征编码,它的出现甚至比词包模型的提出还要早.向量量化编码是通过一种量化的思想,使用一个较小的特征集合(视觉词 典)来对底层特征进行描述,达到特征压缩的目的. 向量量化编码只在最近的视觉单词上响应为1,因而又称为硬量化编码、硬投票编码,这意味着向量量化编码只能对局部特征进行很粗糙的重构.但向量量化编码思想简单、直观,也比较容易高效实现,因而从2005年第一届PASCAL VOC竞赛以来,就得到了广泛的使用.
- 软量化编码(核词典编码):在实际图像中,图像局部特征常常存在一定的模糊性,即一个局部特征可能和多个视觉单词差别很小,这个时候若使用向量量化编码将只利用距离最近的视觉单词,而忽略了其他相性很高的视觉单词.为了克服这种模糊性问题, van Gemert 等人提出了软量化编码(又称核视觉词典编码)算法:局部特征不再使用一个视觉单词描述,而是由距离最近的犓个视觉单词加权后进行描述,有效解决了视觉单词的模糊性问题,提高了物体识别的精度。
- 稀疏编码:稀疏表达理论近年来在视觉研究领域得到了大量的关注,稀疏编码通过最小二乘重构加入稀疏约束来实现在一个过完备基上响应的稀疏性。约束是最直接的稀疏约束,但通常很难进行优化,近年来更多使用的是约束, 可以更加有效地进行迭代优化,得到稀疏表达.2009年Yang等人将稀疏编码应用到物体分类领域, 替代了之前的向量量化编码和软量化编码,得到一 个高维的高度稀疏的特征表达,大大提高了特征表达的线性可分性,仅仅使用线性分类器就得到了当时最好的物体分类结果,将物体分类的研究推向了 一个新的高度上.稀疏编码在物体分类上的成功也不难理解,对于一个很大的特征集合(视觉词典),一个物体通常只和其中较少的特征有关,例如,自行车通常和表达车轮、车把等部分的视觉单词密切相关, 与飞机机翼、电视机屏幕等关系很小,而行人则通常在头、四肢等对应的视觉单词上有强响应.但稀疏编码存在一个问题,即相似的局部特征可能经过稀疏编码后在不同的视觉单词上产生响应,这种变换的不 连续性必然会产生编码后特征的不匹配,影响特征 的区分性能.
- 局部线性约束编码:为了解决稀疏编码产生的特征不匹配问题,研究人员又提出了局部线性约束编码。它通过加入局部线性约束,在一个局 部流形上对底层特征进行编码重构,这样既可以保 证得到的特征编码不会有稀疏编码存在的不连续问 题,也保持了稀疏编码的特征稀疏性.局部线性约束 编码中,局部性是局部线性约束编码中的一个核心 思想,通过引入局部性,一定程度上改善了特征编码 过程的连续性问题,即距离相近的局部特征在经过 编码之后应该依然能够落在一个局部流形上.局部 线性约束编码可以得到稀疏的特征表达,与稀疏编 码不同之处就在于稀疏编码无法保证相近的局部特 征编码之后落在相近的局部流形.从上表可以看出, 2009年的分类竞赛冠军采用了混合高斯模型聚类 和局部坐标编码(局部线性约束编码是其简化版 本),仅仅使用线性分类器就取得了非常好的性能.
- 显著性编码:显著性编 码引入了视觉显著性的概念,如果一个局部特征 到最近和次近的视觉单词的距离差别很小,则认为 这个局部特征是不“显著的”,从而编码后的响应也 很小.显著性编码通过这样很简单的编码操作,在 Caltech101/256,PASCAL VOC2007等数据库上 取得了非常好的结果,而且由于是解析的结果,编码 速度也比稀疏编码快很多.Huang等人发现显著 性表达配合最大值汇聚在特征编码中有重要的作 用,并认为这正是稀疏编码、局部约束线性编码等之 所以在图像分类任务上取得成功的原因.
- 超向量编 码与Fisher向量编码:超向量编 码,Fisher向量编码是近年提出的性能最好的 特征编码方法,其基本思想有相似之处,都可以认为 是编码局部特征和视觉单词的差.Fisher向量编码 同时融合了产生式模型和判别式模型的能力,与传 统的基于重构的特征编码方法不同,它记录了局部 特征与视觉单词之间的一阶差分和二阶差分.超向 量编码则直接使用局部特征与最近的视觉单词的差 来替换之前简单的硬投票.这种特征编码方式得到 的特征向量表达通常是传统基于重构编码方法的 M倍(M是局部特征的维度).尽管特征维度要高出 很多,超向量编码和Fisher向量编码在PASCAL VOC、ImageNet等极具挑战性、大尺度数据库上获 得了当时最好的性能,并在图像标注、图像分类、图 像检索等领域得到应用.2011年ImageNet分类竞 赛冠军采用了超向量编码,2012年VOC竞赛冠军 则是采用了向量量化编码和Fisher向量编码.
空间特征约束: 特征编码之后一般会经过空间特征约束,也称作空间特征汇聚。特征汇聚是指在一个空间范围内,对每一维特征取最大值或者平均值,可以获得一个紧致的、一定特征不变形的特征表达,同时也避免了使用特征 集进行图像表达的高额代价.金字塔特征匹配是一种常用的特征聚会方法,这种方法提出将图像均匀分块,在分块内做特征汇聚。
通过分类器分类: 经过前面步骤之后一张图像可以用一个固定维度的向量进行描述,接下来就是学习一个分类器对图像进行分类。通常使用的分类器包括K紧邻、神经网络、SVM(Support Vector Machine, 支持向量机)、随机森林等。而使用核方法的SVM是最为广泛的分类器,在传统图像分类任务上性能很好。
图像分类入门 3-图像分类的基本方法
深度学习模型
深度学习模型是另一类物体分类算法,其基本思想是通过有监督或者无监督的方式学习层次化的特征表达,来对物体进行从底层到高层的描述.主流的深度学习模型包括自动编码器(Auto-encoder)、受限波尔兹曼机(Restricted Boltzmann Machine,RBM)、深度信念网络(Deep Belief Nets,DBN)、卷积神经网络(Convolutional Neural Networks,CNN)、生物启发式模型等.
自动编码器:自动编码器(Auto-encoder)是20世纪80年代提出的一种特殊的神经网络结构,并且在数据降维、特征提取等方面得到广泛应用.自动编码器由编码器和解码器组成,编码器将数据输入变换到隐藏层表达,解码器则负责从隐藏层恢复原始输入.隐藏层单元数目通常少于数据输入维度,起着类似“瓶颈”的作用,保持数据中最重要的信息,从而实现数据降维与特征编码.自动编码器是基于特征重构的无监督特征学习单元,加入不同的约束,可以得到不同的变化,包括去噪自动编码器(Denoising Autoencoders)、稀疏自动编码器(Sparse Autoencoders)等,这些方法在数字手写 识别、图像分类等任务上取得了非常好的结果.
受限玻尔兹曼机是一种无向二分图模型,是 一种典型的基于能量的模型(Energy Based Models,EBM).之所以称为“受限”,是指在可视层和隐藏层之间有连接,而在可视层内部和隐藏层内部不存在连接.受限玻尔兹曼机的这种特殊结构,使得它具有很好的条件独立性,即给定隐藏层单元,可视层单元之间是独立的,反之亦然.这个特性使得它可以实现同时对一层内的单元进行并行Gibbs采样.受限玻尔兹曼机通常采用对比散度(Contrastive Divergence,CD)算法进行模型学习.受限玻尔兹曼机作为一种无监督的单层特征学习单元,类似于前面提到的特征编码算法,事实上加了稀疏约束的受限玻尔兹曼机可以学到类似稀疏编码那样的Gabor 滤波器模式.
深度信念网络(DBN)是一种层次化的无 向图模型.DBN的基本单元是RBM(Restricted Boltzmann Machine),首先先以原始输入为可视层, 训练一个单层的RBM,然后固定第一层RBM权重,以RBM隐藏层单元的响应作为新的可视层,训练下一层的RBM,以此类推.通过这种贪婪式的监督训练,可以使整个DBN模型得到一个比较好的初始值,然后可以加入标签信息,通过产生式或者判别式方式,对整个网络进行有监督的精调,进一步改善网络性能.DBN的多层结构,使得它能够学习得到层次化的特征表达,实现自动特征抽象,而无监督预训练过程则极大改善了深度神经网络在数据量不够时严重的局部极值问题.Hinton等人通过这种方式,成功将其应用于手写数字识别、语音识别、基于内容检索等领域.
卷积神经网络(CNN)最早出现在20世纪 80年代,最初应用于数字手写识别,取得了一定的成功.然而,由于受硬件的约束,卷积神经网络的高强度计算消耗使得它很难应用到实际尺寸的目标识别任务上.Hubel和Wiesel在猫视觉系统研究工作的基础上提出了简单、复杂细胞理论,设计出来一 种人工神经网络,之后发展成为卷积神经网络.卷积神经网络主要包括卷积层和池化层,卷积层通过用固定大小的滤波器与整个图像进行卷积,来模拟Hubel和Wiesel提出的简单细胞.池化层则是一种降采样操作,通过取卷积得到的特征图中局部区块的最大值、平均值来达到降采样的目的,并在这个过程中获得一定的不变性.池化层用来模拟Hubel和Wiesel理论中的复杂细胞.在每层的响应之后通常还会有几个非线性变换,如sigmoid、tanh、relu等, 使得整个网络的表达能力得到增强.在网络的最后通常会增加若干全连通层和一个分类器,如 softmax分类器、RBF分类器等.卷积神经网络中卷积层的滤波器是各个位置共享的,因而可以大大降低参数的规模,这对防止模型过于复杂是非常有益的,另一方面,卷积操作保持了图像的空间信息,因而特别适合于对图像进行表达.
CNN网络示例
- 卷积层(convolution layer): 执行卷积操作提取底层到高层的特征,发掘出图片局部关联性质和空间不变性质。卷积层在CNN中扮演着很重要的角色——特征的抽象和提取
- 池化层(pooling layer): 执行降采样操作。通过取卷积输出特征图中局部区块的最大值(max-pooling)或者均值(avg-pooling)。降采样也是图像处理中常见的一种操作,可以过滤掉一些不重要的高频信息。池化操作(Pooling)用于卷积操作之后,其作用在于特征融合和降维,其实也是一种类似卷积的操作,只是池化层的所有参数都是超参数,都是不用学习得到的。
- 全连接层(fully-connected layer,或者fc layer): 输入层到隐藏层的神经元是全部连接的。
它还有一个作用是去除空间信息(通道数),是一种将三维矩阵变成向量的过程(一种全卷积操作) - 非线性变化: 卷积层、全连接层后面一般都会接非线性变化层,例如Sigmoid、Tanh、ReLu等来增强网络的表达能力,在CNN里最常使用的为ReLu激活函数。
- Dropout [10] : 在模型训练阶段随机让一些隐层节点权重不工作,提高网络的泛化能力,一定程度上防止过拟合。
下面是卷积神经网络领域中比较有名的几种结构:
LeNet: 第一个成功的卷积神经网络应用,是Yann LeCun在上世纪90年代实现的。当然,最著名还是被应用在识别数字和邮政编码等的LeNet结构。
AlexNet:AlexNet卷积神经网络在计算机视觉领域中受到欢迎,它由Alex Krizhevsky,Ilya Sutskever和Geoff Hinton实现。AlexNet在2012年的ImageNet ILSVRC 竞赛中夺冠,性能远远超出第二名(16%的top5错误率,第二名是26%的top5错误率)。这个网络的结构和LeNet非常类似,但是更深更大,并且使用了层叠的卷积层来获取特征(之前通常是只用一个卷积层并且在其后马上跟着一个池化层)。
GoogLeNet: ILSVRC 2014的胜利者是谷歌的Szeged等实现的卷积神经网络。它主要的贡献就是实现了一个奠基模块,它能够显著地减少网络中参数的数量(AlexNet中有60M,该网络中只有4M)。还有,这个论文中没有使用卷积神经网络顶部使用全连接层,而是使用了一个平均池化,把大量不是很重要的参数都去除掉了。GooLeNet还有几种改进的版本,最新的一个是Inception-v4。
VGGNet: ILSVRC 2014的第二名是Karen Simonyan和 Andrew Zisserman实现的卷积神经网络,现在称其为VGGNet。它主要的贡献是展示出网络的深度是算法优良性能的关键部分。他们最好的网络包含了16个卷积/全连接层。网络的结构非常一致,从头到尾全部使用的是3x3的卷积和2x2的池化。他们的预训练模型是可以在网络上获得并在Caffe中使用的。VGGNet不好的一点是它耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。后来发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。
ResNet: 残差网络(Residual Network)是ILSVRC2015的胜利者,由何凯明等实现。它使用了特殊的跳跃链接,大量使用了批量归一化(batch normalization)。这个结构同样在最后没有使用全连接层。读者可以查看何恺明的的演讲(视频,PPT),以及一些使用Torch重现网络的实验。ResNet当前最好的卷积神经网络模型(2016年五月)。何凯明等最近的工作是对原始结构做一些优化,可以看论文Identity Mappings in Deep Residual Networks,2016年3月发表。
两类模型的联系和区别
这里我们将最为流行的词包模型与卷积神经网络模型进行对比,发现两者其实是极为相似的.在词包模型中,对底层特征进行特征编码的过程,实际上近似等价于卷积神经网络中的卷积层,而池化层所进行的操作也与词包模型中的池化操作一样.不同之处在于,词包模型实际上相当于只包含了一个卷积层和一个池化层,且模型采用无监督方式进行特征表达学习,而卷积神经网络则包含了更多层的简单、复杂细胞,可以进行更为复杂的特征变换,并且其学习过程是有监督过程的,滤波器权重可以根据数据与任务不断进行调整,从而学习到更有意义的特征表达.从这个角度来看,卷积神经网络具有更为强大的特征表达能力,因此它在图像识别任务中的出色性能就很容易解释了.