如何在给定以下数据集的情况下将各种距离函数组合成一个?

时间:2016-11-29 07:35:33

标签: machine-learning

我有几个距离函数可以返回两个图像之间的距离,我希望将这些距离组合成一个距离,使用加权评分,例如: ax1+bx2+cx3+dx4等我希望自动学习这些权重,以便最大限度地减少测试错误。

为此目的,我有一个标记的数据集,其中包含各种三维图像,使得(a,b,c), a b 的距离小于到 c 。 即d(a,b)<d(a,c)

我想学习这样的权重,以便三元组的这种排序可以尽可能准确。(即,对于a&amp; b给出的加权线性分数较少,对于a&amp; c则更多。

什么样的机器学习算法可以用于任务,以及如何实现所需的任务?

1 个答案:

答案 0 :(得分:0)

希望我能正确理解你的问题,但似乎这可以通过直接约束优化更容易解决,而不是经典的机器学习(其算法通常通过约束优化来实现,参见例如SVM)。

例如,可能的目标函数可能是:

argmin_{w} || e ||_2 + lambda || w ||_2

其中w是你的体重向量(哦,上帝为什么这里没有乳胶),e是错误的向量(每个训练三联体一个组件),lambda是一些可调的正则常数(可以为零),您的约束可以是:

max{d(I_p,I_r)-d(I_p,I_q),0} <= e_j for jth (p,q,r) in T s.t. d(I_p,I_r) <= d(I_p,I_q)

代表j约束,其中I_i是图片iT是培训集,

d(u,v) = sum_{w_i in w} w_i * d_i(u,v)

d_i是您的i距离函数。

请注意,e正在衡量您选择的权重与满足训练集中所有选定三元组的距离。如果权重保留标签j的排序,则d(I_p,I_r)-d(I_p,I_q) < 0依旧e_j = 0。如果他们没有,那么e_j将衡量违反培训标签j的数量。解决优化问题会得到最好的w;即错误最低的那个。

如果你不熟悉线性/二次规划,凸优化等...然后开始谷歌搜索:)这类东西存在很多库。

另一方面,如果您更喜欢机器学习方法,您可能可以针对您的问题调整一些metric learning方法。