机器学习中的哈希学习总结(learning to hash)
1 定义
哈希学习(learning to hash)是通过机器学习机制将数据映射成二进制串的形式,能显著减少数据的存储和通信开销,从而有效提高学习系统的效率。
2 目的
学到数据的二进制哈希码表示,使得哈希码尽可能地保留原空间中的近邻关系,即保相似性。
具体来说,每个数据点会被一个紧凑的二进制串编码,在原空间中相似的两个点应当被映射到哈希码空间中相似的两个点。
图 1是哈希学习的示意图,以图像数据为例,原始图像表示某种经过特征抽取后的高维实数向量,通过从数据中学习到的哈希函数h变换后,每幅图像被映射到一个8位 (bit) 的二进制哈希码,原空间中相似的两幅图像将被映射到相似 (即海明距离较小) 的两个哈希码,而原空间中不相似的两幅图像将被,映射到不相似 (即海明距离较大) 的两个哈希码。
3 重要地位
1)使用哈希码表示数据后,所需要的存储空间会被大幅减小。
2)因为通过哈希学习得到的哈希码位数(维度)一般会比原空间的维度要低,哈希学习也能降低数据维度,从而减轻维度灾难问题。
3)此外,基于哈希学习得到的二进制哈希码可以构建索引机制,实现常数或者次线性级别的快速近邻检索,为上层学习任务的快速实现提供支撑。
4 哈希学习方法
第一步,先对原空间的样本采用度量学习进行降维,得到一个低维空间的实数向量表示。
第二步,对得到的实数向量进行量化 (即离散化) 得到二进制哈希码。
例如,假设样本在原空间中的特征表示为一个5维实数