开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算:特征量化编码】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/811/detail/15708
特征量化编码
量化编码目的就是压缩特征来节省它的存储空间的特征,这种高维的特征,它是个高维的浮点数把它变换成什么通过量化编码变成码字的一个ID,就是一个整数,这样不仅节省了空间,同时整数的运算要比浮点运算来得快,进行距离相似度的计算的时候效率高。量化编码之后的值通常是放在的特征索引的索引项里面。
量化方法:
比如像向量量化,k-means 这种算法,迪卡尔集型的码子空间的,比如像积量化,PQ,OPQ,LOPQ 都属于这种积量化,还有直和型的残差向量量化 RVQ,还有 ELVQ ,增强型的向量量化,还有线性组合型的加性量化 AQ ,组合量化 CQ
整个的量化编码的目标就是使均方误差 MSE 最小,不能说量化之后是压缩了,但是误差很大,但它也就失去了出这个压缩的目的。量化的目的是数据变小,但是它的误差也要尽可能的小。方法不同,近20年有很多的算法出来,专门有一篇综述是讲的量化,感兴趣可以了解这篇综述。
以这种笛卡尔积型,积量化那么为例:
基量化是一个分段量化方法,每一段,它有一个 VQ 的量化器。比如说原始的 SIFT 特征,把它分成若干段。分成多少段,通常这个段的数量要要能够整除原来的这种特征的维数。
量化看下面这个有很多的这些,比如说128维的特征,把它怎么样分段,每一段有相同的维数,在每一段都有它自己的量化器,比如说 k-means 对量化结果,再对它进行串联,最终的 QS 等于分段的它的量化的结果,再对它进行串联起来,其中 q(x) 就是相应的量化器,比如说用了K-means 的 k 到底取多少,还是用其它的方法,码字空间就是各子码书空间的直积,其中 C 就是码书空间。
这样做的效果就是以最小的一个空间开销得到了一个较大的码字空间。
举个例子:
这是一个 N 乘128位,比如说 N 幅图像,分了很多的块,一幅图像分成 N 块,就有 N 个N 乘以128维的特征向量。
有了这个以后,就把这个特征分段,比如说这里边分成四段,原来的128位分成四段,每一段就是32位,在每一段里边对他进行量化,比如说在 PQ 里面,K 等于256,就是取 K 均值。
相当于把这个特征聚类成256个集合。这样的组合成这不就有4乘256个。最终的集合那么最终出来的这样话以后就把一个 N 乘 128 维的特征转换成了 N 乘以4 的整数。二百五十六可以用二进制数值八位表示。如果是十进制数就是0到256,最后这个值其实就是这么一个矩阵。250 , N 乘以 4,里首先他为数原来是 N 乘以128,现在维数大幅降低,降低了三十二倍,原来是 128 ,现在是 4 。里面原来存在的浮点数现在是八位的二进制数。这里面的数字其实就是聚类的集合它的符号,是哪个集合, K 取得越大特征分的这个集合越小,它的误差就越小,因此K 不能取太小,小了以后分的太粗,误差就会很大。那么这样做完之后,就对每一个特征,都给它分配了应的集合。256个C 的中心其实就是这样的数字。就把这128维这样的特征转换成了量化编码后的整数。
索引里面检索里面用起来就方便,如果说觉得只保留了它集合的至心的话。相当于集合的编号,它的数字还不够准确,还可以继续,比如说直和型就是残差量化,就是存的不是这个集合的至心,是实际的这个落在这个集合里面,再去跟那个中心求一个差,把这个差值求下来,如果这个差值,再对它进行 k-means 的量化,又对这个差进行分组,逐级去分可以叠加,最终使这个误差就会更就是多层级量化,后层以前层的残差作为输入,量化结果就等于各层量化结果的和。码字空间就等于各层的码数空间的和,这么做是准确性会提高,但是占用的空间也会增大,但是它是和关系,不是积的关系。
层数越多量化的误差就越小,还有像线性组合 AQ 它就有多个码书,量化结果就是各个码书量化结果之和。码数的空间就等于各个码数空间的直接相加。比如说量化方法不同就生成了多个码书。
这是不同的量化方法在同一个这种数据集上它的效果,比如说检测图像,它的准确率,它的召回率,它的性能。
比如说 R 它的 @ ,100个里面。能够反馈个多少真实的结果,它性能的对比,不同的量化方法它的性能是不一样的。比如说 RVQ那么它的效果是不错的,但是它的 data怎样。再往后看 CompQ .它不同的算法,有的是层数不同,有的是里面的这种量化器的设计不同,就是说最后的效果也不尽相同。
在选择的时候注意,是牺牲空间,还是适当的牺牲一点点的精度。如果把整个的量化方法复杂度提高了,但这个倍数太大,提高的这个精度很小,建议不要把这量化的这个方法搞得太复杂,除非牺牲算法的复杂度,空间的这种复杂度提高的换来的是值得的查询精度。关于量化还可以去深入的分析,这篇综述介绍了截止到去年到现在,不同的量化方法的优缺点。