图像检索----迭代量化(Iterative Quantization)理解
来源:互联网 发布:java工程师发展前景 编辑:程序博客网 时间:2024/04/30 01:32
原文出处:http://blog.csdn.net/CHIERYU
一.目标
数据集为:,每个样本为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未经允许请勿用于商业用途)
- 图像检索----迭代量化(Iterative Quantization)理解
- 图像检索----迭代量化(Iterative Quantization)理解
- ITQ(Iterative Quantization)迭代量化方法详解
- 迭代量化方法——Iterative Quantization: A Procrustean Approach to Learning Binary Codes
- ITQ(Iterative Quantization)迭代量化方法详解 hash 哈希算法
- ITQ(Iterative Quantization)迭代量化方法详解 hash 哈希算法
- Iterative Quantization
- 矢量量化(Vector Quantization)
- 矢量量化(Vector Quantization)
- 迭代模型(Iterative Model)
- 图像检索之product quantization 算法解析
- 图像处理--GIF和静态图叠加(三):色彩量化(Color Quantization)
- 对 ASP.NET 图像的颜色量化(Quantization)进行优化(From MS)
- Iterative algorithms(迭代算法)
- 矢量量化(Vector Quantization)(转)
- 对 ASP.NET 图像的颜色量化(quantization)进行优化
- 迭代的快速排序(Iterative Quick Sort)
- 迭代量化:图像的压缩二进制表示
- 连续概率(概率,uva 11346)
- 指之舞:颈椎
- 庞大触角加精准定向,Facebook如何主导2016美国总统大选
- 高斯滤波及高斯卷积核C++实现
- python--Fibonacii序列
- 图像检索----迭代量化(Iterative Quantization)理解
- 關於JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值
- 欧盟要求谷歌停止Android垄断行为 可能提出罚款
- oracle pl/sql 函数
- Java排序算法总结与实现
- 阿里云 CentOS 7 WarkMan环境配置中 pcntl的问题
- CAFFE CIFAR10 MODEL IMAGE 之 cifar10 quick
- Oracle设置空闲客户端超时退出的两种方法
- Python字符串与编码