欢迎关注个人我的微信公众号:小纸屑算法
图片分类是机器学习经典问题,也是深度学习声名鹊起之做。正是2012年AlexNet在图片分类竞赛ImageNet出乎寻常的性能,使得深度学习一晚上爆红,方有今天人工智能的井喷之势。微信
因为深度学习在图片分类上极其成功,且代码简单,图片分类便成为深刻学习入门学习任务。一般几行代码,就能够调起一个模型训练。因为太简单,致使你们对图片分类缺少可以总体认识。机器学习
本文拟从问题定义、图片分类的粒度、经常使用数据集、评判标准和经典论文等角度,完整充分展示图片分类这个经典问题,让读者有个完整印象。ide
图片分类的定义以下:性能
输入:一张图片学习
输出:图片类别测试
这里的图片类别是指图片内所包含物体的类别。人工智能
传统的图片分类中,一张图片只包含一个类别物体的一个或多个实例。多标签图片分类中,一张图片通常包含多个类别物体的一个或多个实例(如多标签猫狗图片分类,大部分照片不但包含猫,还同时包含狗)。3d
咱们这里只讲传统的图片分类。如下是几个样例:cdn
输入上述图片,正确的输出应该是类别9(图片来自数据集MNIST)
粗粒度图片分类是指跨物种语义级别的分类,比较常见的包括如猫狗分类、ImageNet的1000个类别的分类、CIFAR10的10个类别的分类等。这样的图像分类,各个类别之间由于属于不一样的物种或大类,每每具备较大的类间方差,具备较小的类内方差。
下面是cifar10 中的10个类别的示意图,这就是一个典型的例子。
细粒度图像分类,相对于跨物种的图像分类,级别更低一些。它每每是同一个大类中的子类的分类,如不一样鸟类的分类,不一样狗类的分类,不一样车型的分类等。
下面是以鸟的子类间分类为例,细粒度分类类间由于较为类似,因此类间方差小,而类内因为姿态、光纤等问题,类内方差大。
若是咱们要区分不一样的个体,而不只仅是物种类或者子类,那就是一个识别问题,或者说是实例级别的图像分类,最典型的任务就是人脸识别。
MNIST是手写体数据集,每一张图片是0-9个数字中的一个,图片分辨率28x28,全部图片均是灰度图,所以图片表示为tensor是28x28x1,训练集60000张照片,测试集10000张照片。 如下是16张MNIST中的样本。
Fashion-MNIST的提出是为了方便学者测试算法的有效性,由于MNIST数据集的特征过于简单,致使在MNIST表现好的算法,很难说是算法改进了,仍是数据集过于简单。 Fashion-MNIST,除了类别换成了服装和鞋子等,其余与MNIST如出一辙,一样分辨率28x28,一样灰度图,训练集一样60000,测试集一样10000。基本上在MNIST测试的算法,不用任何修改,就能够在Fashion-MNIST上测试和训练。 如下是30张Fashion-MNIST中的样本。
CIFAR-10数据集由10类32x32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片做为训练集,10000张图片做为测试集。
CIFAR-10数据集被划分红了5个训练的batch和1个测试的batch,每一个batch均包含10000张图片。测试集batch的图片是从每一个类别中随机挑选的1000张图片组成的,训练集batch以随机的顺序包含剩下的50000张图片。不过一些训练集batch可能出现包含某一类图片比其余类的图片数量多的状况。训练集batch包含来自每一类的5000张图片,一共50000张训练图片。
如下是数据集中的类,以及来自每一个类的10个随机图像:
CIFAR-100数据集就像CIFAR-10,除了它有100个类,每一个类包含600个图像。每类各有500个训练图像和100个测试图像。CIFAR-100中的100个类被分红20个超类。每一个图像都带有一个“精细”标签(它所属的类)和一个“粗糙”标签(它所属的超类)
ImageNet数据集自己有约1500万张照片,2.2万个类。基于ImageNet的大规模计算机视觉挑战赛ISLVRC包含5个任务,图像分类(Image Classification)、目标定位(Image Localization)、目标检测(Object Detection)、视频目标检测(Video Object Detection)、场景分类。
因为其图像分类任务名声太盛,致使通常提到ImageNet,一般指的就是其图像分类子任务,这个子任务共有1000个类别,训练集有1,281,167张照片,验证机50,000张,测试集100,000张照片,每张图片大小不一,均为彩色图片。
图片分类的评判标准比较简单。
对一个图片,取几率最大值做为预测。统计下预测正确的比率,即为top1准确率。
对一个图片,若是几率前五中包含正确答案,即认为正确。再统计预测正确的比率,即为top5准确率。
图像分类任务是计算机视觉的基础任务,大量的图像分类经典算法,大幅度推进了计算机视觉的发展。下图是各个经典算法的时间轴,图中都给出了各个经典模型的提出时间点。
上图看起来有点乱,把相同系列的模型放在一块儿,从新整理以下图:
这里只列出经典算法,后面我会逐一讲解这些经典论文。另外,也建议各位每篇都亲自阅读(除了LeNet),很是经典。
本文从问题定义、图片分类的粒度、经常使用数据集、评判标准和经典论文等多个角度完整展现了图片分类这个经典的计算机视觉任务。我相信,一个完整的认识,能让你们更好的开始学习深度学习。