在图像检索、近邻搜索等大规模数据场景中,哈希学习(Hashing)是一种非常高效的近似最近邻搜索技术。其中,Iterative Quantization(ITQ)是一种经典的无监督哈希方法,它能在保持数据方差最大化的同时,尽可能减小PCA降维后数据的量化误差,从而得到更高质量的二进制编码。本文将详细介绍ITQ算法的原理与实现过程。
什么是ITQ?
ITQ的全称是Iterative Quantization,中文可译为“迭代量化”。该方法的核心思想是在PCA降维后的数据上,寻找一个最优的正交旋转矩阵,使得数据在旋转后进行简单阈值量化(即符号函数)时产生的量化损失最小。
相比直接对PCA投影后的数据进行量化,ITQ通过学习一个旋转矩阵R,能够显著降低二进制编码的量化误差,从而提升最终的检索性能。
算法原理
假设我们已经对原始高维特征进行了PCA降维,得到数据矩阵V ∈ ℝⁿˣᶜ,其中n是样本数量,c是目标二进制码的长度(即降维后的维度)。
ITQ的目标是找到一个正交矩阵R ∈ ℝᶜˣᶜ,使得:
Z = V × R
之后对Z的每个元素应用符号函数(≥0取1,否则取0)得到的二进制矩阵B与原始V的线性投影尽可能保持一致,即最小化量化误差。
由于直接优化这个目标较为困难,ITQ采用了一种迭代优化的策略:
初始化一个随机正交矩阵R(通过对随机矩阵做SVD取前c个奇异向量实现)。
固定R,计算Z = V × R,对Z应用符号函数得到二进制矩阵UX(+1或-1)。