基于示例的距离度量学习方法解析
在机器学习领域,距离度量学习是一个重要的研究方向,它对于处理高维或结构化输入数据具有关键作用。本文将详细介绍几种常见的距离度量学习方法,包括线性和凸方法、深度度量学习、分类损失和排序损失等,并探讨如何优化这些损失函数以提高计算效率。
1. 线性和凸方法
线性和凸方法旨在学习马氏距离矩阵 $M$,可以直接将其作为凸问题求解,也可以通过线性投影间接求解。以下是几种具体的方法:
- 大间隔最近邻(LMNN) :该方法的目标是学习马氏矩阵 $M$,使得最近邻分类器在使用所得距离度量时表现良好。对于每个数据点 $i$,选择一组目标邻居 $N_i$,通常是与 $i$ 具有相同类别标签且欧氏距离最近的 $K$ 个点。优化目标是最小化每个点 $i$ 与其目标邻居 $j$ 之间的距离:
[L_{pull}(M) = \sum_{i=1}^{N} \sum_{j \in N_i} d_M(x_i, x_j)^2]
同时,要确保错误标签的示例远离目标邻居。通过最小化以下损失来实现:
[L_{push}(M) = \sum_{i=1}^{N} \sum_{j \in N_i} \sum_{l=1}^{N} I(y_i \neq y_l) [m + d_M(x_i, x_j)^2 - d_M(x_i, x_l)^2] +]
其中,$[z] + = \max(z, 0)$ 是铰链损失函数,$m \geq 0$ 是间隔参数。总体目标是 $L(M) = (1 - \lambda)L_{pull}(M) + \lambda L_{push}(M)$,其中 $0 < \lambda <
超级会员免费看
订阅专栏 解锁全文
1099

被折叠的 条评论
为什么被折叠?



