分层表示改善图像检索
一种新的度量学习损失函数通过将超类分组并学习其内部共性来提升图像检索性能。
图像匹配的实际应用
图像匹配具有众多实际应用。例如,某中心的StyleSnap或购物应用中的相机搜索功能允许客户上传照片以搜索相似图像。图像匹配通常通过将图像映射到表示空间(嵌入空间)并查找映射位置相近的图像来实现。
在某会议2022年发表的论文中,详细阐述了在训练神经网络计算图像表示时,通过显式建模对象层次结构来提高图像检索精度的方法。
层次化数据结构示例
以购物网站为例,可能将一组产品分类为服装(超类),其中包含T恤和连帽衫等类别,这些类别又包含特定T恤和特定连帽衫的实例。研究展示了在构建图像检索系统时如何利用此类层次结构,或者在没有层次结构时如何构建它们。
在使用多个性能指标对五个不同数据集进行的实验中,将该方法与九种先前方法进行比较,发现该方法在绝大多数情况下都能提供最佳结果。
深度度量学习基础
图像检索的图像匹配通常依赖于深度度量学习(DML),其中深度神经网络不仅学习如何将输入映射到嵌入空间,还学习用于测量该空间接近度的距离函数。
训练DML网络主要有两种损失函数:成对损失和代理损失。成对损失(如对比损失、三元组损失)在正负对之间计算,将正对拉近,同时将负对推远。代理损失(如proxy-NCA、proxy-anchor)学习一组称为代理的嵌入,这些代理代表类成员的平均位置或类中心点。
分层代理损失创新
提出的分层代理损失(HPL)是现有代理损失的扩展。HPL包含代理层次结构,每个训练图像在每个级别分配给单个代理。然后,损失计算为所有级别代理损失的加权和。
在每个级别,每个图像被拉向指定的代理,并远离所有其他代理。这通过在每个级别学习组内共性,引导网络分层分组图像。
当数据层次结构未提供时(例如通过电子商务目录),在训练期间对低级代理应用在线聚类以获得更高级别的代理。具体训练算法包括:
- 对精细代理运行聚类算法(如k-means)以获得粗略代理
- 训练网络T次迭代,更新网络和精细代理
- 每T次迭代后,更新样本到粗略代理的分配,并通过平均分配的较低级代理更新更高级别代理
- 重复步骤2-3直到收敛
实验结果
在最新代理损失(proxy-NCA和proxy anchor loss)基础上实现了HPL,其中proxy anchor loss是度量学习中最先进的损失函数。在五个标准度量学习数据集上评估图像检索精度,发现HPL持续提高了检索精度,实现了新的最先进性能。
该方法不仅帮助模型推广到未见过的类别(通过学习超类内的共性),而且在模型出错时也能产生更合理的检索结果。