在大数据检索和近似最近邻搜索领域,无监督哈希方法通过学习紧凑的二进制编码来加速查询过程。其中,无监督顺序投影学习哈希(Unsupervised Sequential Projection Learning for Hashing,简称USPLH)是一种高效的迭代方法,它通过逐步引入伪成对约束来学习投影方向,确保哈希码的比特位尽可能独立且信息丰富。本文将详细介绍USPLH的训练原理,并基于一个MATLAB实现逐步剖析其核心功能,帮助读者理解如何在实际数据上应用该算法。
USPLH的算法原理
USPLH的核心思想是顺序学习每个哈希位的投影向量。第一位从标准PCA获取,后续位则在残差空间上引入成对约束进行优化。这些约束基于前一位的投影结果生成伪标签(如“必须链接”和“不能链接”),从而逐步提升编码的质量。
假设输入数据矩阵X ∈ ℝ^{N×D}(N为样本数,D为维度),目标码长nbits。算法假设N >> D,适用于大规模高维数据。
主要步骤:
数据中心化:减去样本均值,确保零均值。
第一位投影:使用PCA获取最大方差方向,计算阈值b作为二值化边界。
后续位迭代:
计算残差空间,排除前位的影响以确保比特独立。
生成伪成对约束:基于前位投影,选取边界附近和边缘点的子集,构建相似矩阵S(正值表示必须链接,负值表示不能链接)。
累积约束协方差,并与残差协方差结合进行PCA,得到新投影。