图像检索----迭代量化(Iterative Quantization)理解

一.目标

数据集为:这里写图片描述,每个样本为d维,每个样本为一个行向量。假设所有样本都是0均值的,即满足一下条件:
这里写图片描述
通过c个函数这里写图片描述把每个样本x映射到一个二进制超立方体的一个顶点上,其中这里写图片描述是一个列向量。因此得到每个样本x在二进制超立方体上的二进制编码,编码长度c,用矩阵表示描述这个过程就是:
这里写图片描述
其中sgn函数是对矩阵的元素级操作,得到的是同样大小的矩阵。ITQ的目标就是学习一个编码矩阵:这里写图片描述

二.算法推导过程

在应用ITQ算法之前要对数据做PCA降维,把数据从d维降到c维,编码时编码长度就是c维。

什么样的二进制编码才是好的编码呢?所有位(总共c位编码)上编码的结果要满足编码为-1(实际上使用的是0而不是-1)和1的样本数相等且各位上编码应该是不相关的(否则出现编码冗余了)。而编码0和1的样本数相等等价于编码值的方差最大。即:
这里写图片描述
但是上式中含有sng(xw)函数不好处理,于是采用一种signed magnitude relaxation技术,将上式化为:
这里写图片描述
这样就讲一个离散的目标函数转化为一个连续的目标函数。这个式子跟PCA的目标式很像。这里写图片描述就是样本的协方差矩阵。因此,要找到协方差矩阵的前c个特征值对应的特征向量作为W。

另外,假设实数空间这里写图片描述中一个点v是样本点x乘以W投影后得到的投影空间中一个点,在欧式距离的测度下,v到超平面立方体这里写图片描述上最近的点就是超立方体的一个顶点这里写图片描述。因此,二值量化的目标函数是最小化这个距离这里写图片描述。于是使用等式替换V=XW,sgn(V)=B,二值量化误差目标式可以化为:
这里写图片描述
由于迹具有性质这里写图片描述,因此如果W是(1)的解,那么WR也是(1)的解。于是目标式可以变为:
这里写图片描述
目标式中使用的是F范数,即矩阵各元素的平方和再开根号。

但是Jegou et al发现不使用正交矩阵R,而仅仅使用一个随机旋转矩阵R也取得了很好的结果,而找一个随机旋转矩阵R要比找正交矩阵简单得多。

三.推导步骤

1.降维。

在上述推导的指导下,先将数据从d维降到c维,然后使用RR(random rotate)方法找个旋转矩阵R,大小为c*c(实际中可以先随机生成一个矩阵,然后做SVD分解,用S作为旋转矩阵),右乘到降维后的数据V,最小化目标式(2)求得一个粗糙解。下面开始应用ITQ算法迭代新R,使得目标式(2)的值减少。

2.固定R,更新B。

这里写图片描述
从上面可以看到最小化(3)式等价于最大化这里写图片描述,其中这里写图片描述 。当这里写图片描述时更新这里写图片描述,否则更新这里写图片描述为0。

3.固定B,更新R。

当B固定时求解这个(2)目标式的最小值就是一个Orthogonal Procrustes problem。于是,先对矩阵这里写图片描述做SVD分解为这里写图片描述,更新R使得这里写图片描述

4)分支判断。

迭代次数是否达到50次,如果没有,则回到第2步;如果达到了,就结束循环。计算最后得到的编码就是sgn(XWR),大小为n*c。

参考文献:
1.Gong Y, Lazebnik S. Iterative quantization: A procrustean approach to learning binary codes[C]//Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011: 817-824.

(转载请注明作者和出处:http://blog.csdn.net/CHIERYU 未经允许请勿用于商业用途)

你可能感兴趣的:(索引技术,近似最近邻检索技术)