机器学习:关于图像分类识别的一些思考

在计算机视觉领域,图像的分类识别,可以说是最基础,最常见的一个问题,从之前的手动特征提取结合传统的分类模型,到如今的深度学习,虽然分类识别领域的各个数据库的识别率在不断被刷新,从常见物体识别,到细粒度物体识别,到人脸识别,似乎各个细分的图像识别领域都在取得不断进步,每次伴随着这些进步,就会有意无意地激起人们对 AI 的遐想和恐慌。

不得不说,CV 发展了这么多年,确实在不断地进步,不过冷静下来细想,除了各个数据库的指标被不断刷新,似乎最本质的问题,依然没有解决,CNN 在 ImageNet 上的成功,虽然让很多人看到了 AI 在图像分类识别领域的突破,但是,最后还是遇到了瓶颈,当下的分类识别研究,比起十几二十年前,确实有了长足的进步,可是,困难依然重重。

影响图像分类识别的因素有很多,最常见的就是光照,形变,尺度;还有就是遮挡,模糊等,这都是一般的因素。如下图所示:

在这里插入图片描述
还有一大类的因素就是同一类别的东西,形态各异,比如下面的 chair 这个类别,所有的图片都可以被认为是 chair,但是要让分类模型去识别这些,可能真的很难,这类问题可以归结为类内差异太大:

在这里插入图片描述

最后还有比较常见的就是细粒度分类,就是可能都属于一个大类,但是细分下来,就存在细微的差异,细粒度分类也是图像分类识别里的一个分支,比较常见的分类就是对 狗,鸟,以及飞机的各种型号的分类,这类问题就是类间差异太小。

在这里插入图片描述

所以总的来说,影响分类识别的因素可以归结为三个方面:

  • 第一种因素,就是比较常见的基于图像本身的一些因素,比如光照,形变,尺度,模糊等等。
  • 第二种因素,就是类内差异太大,比如椅子,桌子,虽然都叫椅子,桌子,可是形态各异。
  • 第三种因素,就是类间差异太小,最常见的就是细粒度分类。

第一种因素,可以说是所有分类识别问题都会经常遇到的,这是因为真实环境就是各种各样的;第二种因素,很多时候都是因为类别定义的问题,人类有的时候,分类并不是基于物体的形状或者样子,而是基于功能,这种基于功能的抽象的类别定义,让分类模型对分类对象的理解更加困难;第三种因素,是属于细粒度分类的问题。对于后面两种因素,我们这里不做讨论,我们只讨论第一种因素对分类识别的影响。

我们考虑最常见的分类情况,比如对常见交通工具以及各种常见动物的分类等等,真实的自然场景总是复杂多变的,光线有强有弱,形状也会有各种变化,因为换个视角观察,同一个物体呈现在图像上的形状也发生了变化,尺度有大有小,因为拍摄的远近距离不同,同一个物体呈现在图像上的大小也会不同,更不用说模糊,遮挡等因素,所以真实的场景就是包含了各种可能。

我们再来回想一下,分类识别模型的训练及预测, 一般来说,就是给定一个训练集,我们在这个训练集上训练了一个模型,然后将这个模型用在测试集上进行预测,计算出一个准确率,然后就宣称自己的模型可以在这个测试集上达到多少多少的准确率。相信经常看 paper 的人就会发现,这是一个非常似曾相识的套路。

其实,很多模型,换一个数据集,哪怕还是同样的类别,性能立马就会大打折扣,这个对于人类来说,会觉得不可思议,还是同样的狗,为什么换几张图,狗就不是狗了,而是猫或者其他什么匪夷所思的东西,所以说,模型在某些方面的 “聪明” 和 “愚蠢” 经常是同时存在的。

模型的不稳定,或者不够 robust,是目前分类识别中最常遇到的问题,我们经常会看到,对某张图稍微修改几个像素的值,这张图在模型眼里就已经千差万别了。人类的视觉感知,相对来说,会稳定的多。

如果仔细分析,就会发现,分类本质上还是一个 mapping 的过程,从高维的图像空间映射到高维的特征空间,然后再映射到标签空间,网络经过一系列复杂的映射,将同一类的图像聚集到一起。

在真实的自然世界中,同一类的图像,在特征空间往往很难最终聚成某一个点,而是会散布在某个高维空间的某个区域里,而不同类的图像,形成不同的区域,彼此理论上应该是没有混叠的,所以我们会说类内距离和类间距离的概念。类内距离要尽可能的小,类间距离要尽可能的大,所以网络的学习过程,其实就是一个对图像特征重新进行分布的过程。

虽然我们希望所有的图像,都能够在高维空间分开,但是实际上,不同类的区域之间多少总会有重叠,这就造成了我们看到有些图像总是会被分错,因为在特征空间,这些图像的特征已经是混在一起了。

所以说,图像分类问题,本质上还是一个数据拟合的过程,而在真实世界里,自然图像不可能会完美地在高维空间里形成一个个彼此没有混叠的区域,所以总是会有被分错的情况。我们寻找的是错误率最低的那个分界面。

而人类的视觉感知,比 CNN 这些模型要鲁棒的多,因为人类的视觉感知,不是简单的一个函数映射,而是经过了漫长的进化演化而来的,融合了目标检测,背景过滤,联想,决策,推理等等各种因素,交织在一起的一个非常精细的智能系统。不是一个简单的 CNN 网络就能轻易替代的,目前的分类模型,可能会在某个非常细化的领域,识别水平会表现很好,可是这些分类模型都很 “单一”,无法将这种认知能力迁移到其他的地方。

发布了219 篇原创文章 · 获赞 211 · 访问量 113万+

猜你喜欢

转载自blog.csdn.net/shinian1987/article/details/89074447
今日推荐