最后更新于:2020-04-17 18:29:34
本文是机器学习入门的基础版,学习对象产品经理同学;
目前图像检索中最基础的检索能力:
NN检索
-
最近邻检索(Nearest Neighbor Search)
ANN检索
-近似最近邻检索Approximate Nearest Neighbor。区别于ANN
最近邻检索就是根据数据的相似性,从数据库中寻找与目标数据最相似的项目。这种相似性通常会被量化到空间上数据之间的距离,可以认为数据在空间中的距离越近,则数据之间的相似性越高。
K最近邻
(K-Nearest Neighbor,KNN)检索:当需要查找离目标数据最近的前k个数据项时。
最近邻检索是线性复杂度的,不能满足对于大规模数据检索的时间性能要求。
2.应用领域
起初应用于文档检索系统,最近邻检索作为具有查找相似性文档信息的方法;
随后在地理信息系统中,最近邻检索也被广泛应用于位置信息,空间数据关系的查询、分析与统计;
如今在
图像检索
、数据压缩、模式识别以及机器学习等领域都有非常重要的作用。
在图像处理与检索的研究中,基于
内容
的图像检索方法(CBIR)是目前的主流。
2.1 图像的内容是什么?
这里的“内容”是指:图像中包含的主要对象的几何形状、颜色强度、表面纹理等外在特性,以及前景与后景的对比程度等整体特征。
图像的描述方式:局部特征描述子(SIFT、SURF、BRIEF) ,全局特征描述子(GIST),特征频率直方图,纹理信息,显著性区域等。
最近邻检索的引入将图像检索转化到
特征向量空间
,通过查找与目标特征向量距离最近的向量来获得相应图像之间的关系。 这种特征向量之间的距离通常被定义为欧几里得距离(Euclidean distance),即是空间中两点之间的直线距离。
3.发展趋势
最近邻检索作为数据检索中使用最为广泛的技术一直以来都是国内外学者研究的热点。近些年,涌现出大量以最近邻检索或近似最近邻检索为基本思想的两类方法。一类是基于提升检索结构性能的方法,主要方法大多基于树形结构;另一类主要基于对数据本身的处理,包括哈希算法、矢量量化方法等。
3.1 最近邻检索(精确检索)
背景
:精确检索中数据维度一般较低,所以会采用穷举搜索,即在数据库中依次计算其中样本与所查询数据之间的距离,抽取出所计算出来的距离最小的样本即为所要查找的最近邻。当数据量非常大的时候,搜索效率急剧下降。
基于树结构的最近邻检索方法
概述:由于实际数据会呈现出簇状的聚类形态,因此可以考虑对数据库中的样本数据构建数据索引,索引树就是最常见的方法。其基本思想是对搜索空间进行层次划分,再进行快速匹配。
结论:当数据维度不太高(如d< 20),通常采用树型索引结构对数据进行分区以实现高效索引,如最经典的KD树算法 、R树、M树等等,它们的时间和空间复杂度都是以d为指数的指数级别的,在实际搜索时也取得了良好的效果。
当d=1时,只要采用传统的二分查找法或者各类平衡树就能找到最近邻;
当d=2时,将最近邻检索问题转化为求解查询点究竟落在哪个区域的Voronoi图问题,再通过二分查找树就能很好的解决。
3.2 近似最近邻检索
背景:面对庞大的数据量以及数据库中高维的数据信息,现有的基于 NN 的检索方法无法获得理想的检索效果与可接受的检索时间。因此,研究人员开始关注近似最近邻检索(Approximate Nearest Neighbor,ANN)。
概述:
近似最近邻检索利用数据量增大后数据之间会形成簇状聚集分布的特性,通过对数据分析聚类的方法对数据库中的数据进行分类或编码,对于目标数据根据其数据特征预测其所属的数据类别,返回类别中的部分或全部作为检索结果。
近似最近邻检索的核心思想:搜索可能是近邻的数据项而不再只局限于返回最可能的项目,在牺牲可接受范围内的精度的情况下提高检索效率。
一种是采用哈希散列的办法,另一种则是矢量量化。
3.2.1 局部敏感哈希(LSH)
核心思想:在高维空间相邻的数据经过哈希函数的映射投影转化到低维空间后,他们落入同一个吊桶的概率很大而不相邻的数据映射到同一个吊桶的概率则很小。在检索时将欧式空间的距离计算转化到汉明(Hamming)空间,并将全局检索转化为对映射到同一个吊桶中的数据进行检索,从而提高了检索速度。这种方法的主要难点在于如何寻找适合的哈希函数。
3.2.2 矢量量化
其代表是乘积量化(PQ)。它的主要思想是将特征向量进行正交分解,在分解后的低维正交子空间上进行量化,由于低维空间可以采用较小的码本进行编码,因此可以降低数据存储空间 。
PQ方法采用基于查找表的非对称距离计算(Asymmetric Distance Computation,ADC)快速求取特征向量之间的距离,在压缩比相同的情况下,与采用汉明距离的二值编码方法,采用ADC的PQ方法的检索精度更高。