最近的工作用是深度度量学习的改进,这里将DML进行一个总结。
根据个人的理解,开篇用一句话介绍一下度量学习:
“不同于分类学习,度量学习是通过学习数据之间的相似性程度来获得一个更有意义或者说更具可分性的特征空间。”
Traditional metric learning
核心目的:
1 通过一个optimal的距离度量来判断样本之间的相似性
2 减小相似样本之间的距离,增加不相似样本之间的距离
限制条件:往往利用的的是线性映射,导致很难解决实际问题中的non-linear问题。(当然大部分传统方法都会遇到这个问题,最常见的方法就是核方法,譬如SVM原本只能解决线性分类,但是加入高斯核或多项式核就可以解决非线性分类,还有PCA-KPCA这些)
Deep metric learning(DML)
通过深层结构,学习到高抽象化的非线性特征以及数据之间的相似性关系。
DML三大关键点: 采样策略、合适的距离度量函数以及模型结构,因此当前DML模型往往基于指定任务在这些方面进行改进。[1]
距离度量
度量学习希望学习到一种distance metric,使得在该distance metric下,相似数据(不相似数据)能够在空间中有更好的分布。最经典的就是利用马氏距离(Mahalanobis distance),如下式,其中 x i ∈ R m x_i \in R^m xi∈Rm
D ( x i , x j ) = ( x i − x j ) T M ( x j − x j ) D(x_i, x_j) = \sqrt{(x_i-x_j)^TM(x_j-x_j)} D(xi,xj)=(xi−xj)TM(xj−xj)
作为一个距离函数,那么一定要包含几个性质:非负、对称以及三角不等,如果想在度量上进行创新一定要注意这些。马氏距离中的 M M M具有半正定和对称性,那么根据矩阵理论相关知识, M M M的特征值要全部非负,且存在n阶实矩阵 W W W使得 M = W T W M = W^TW M=WTW ,则上述式子可以转化为:
D ( x i , x j ) = ( x i − x j ) T