解决记录链接作为机器学习的约束满足

时间:2015-05-21 21:25:41

标签: machine-learning neural-network matching constraint-satisfaction

我有成对的对象,例如

A = { L, M, N, P } = { <"Lll", 47, 0.004>, <"Mm", 60, 0.95>,  <"Nnnn", 33, 0.2892>,  <"P", 47, 0.0125> }
B = { l, m, n, o } = { <"l", 46, 0.004>, <"m", 0, 0.95>,  <"nn", 33, 0.2892>,  <"oOo", 33, 0.5773> }

...我希望自动训练基于已知良好数据的算法,以了解如何将集合成员链接为

{ <L, l>, <M, m>, <N, n>, <?, o>, <P, ?> }

...最多只有一个匹配任何一个元素的每个元素。集合不必具有相同的大小并且不保证它们的重叠 - 可能没有匹配,也许所有匹配,可能是匹配和不匹配的混合。但是 预计在很多情况下都是人类可识别的匹配,并且计算机应该接近它。

到目前为止已经尝试了

H(a, b, w1, w2, w3)将来自<a1, a2, a3>的{​​{1}}和来自A的{​​{1}}的{​​{1}}分为<b1, b2, b3> B,{ {1}}和f1(a1, b1) * w1 + f2(a2, b2) * w2 + f3(a3, b3) * w3是手工制作的,f1f2f3是参数化权重。我按照他们的分数对所有对w1进行排序,然后选择其中没有一个成员已经由更高得分的对表示的对。我使用粗略的爬坡来训练重量,以便得到的对映射为训练数据所期望的。完美的加权配置具有阈值w2,其从不正确的配对得分描绘正确的配对得分w3。该算法常规地在几百或几千次迭代之后找到完美的配置,用于我的训练数据约为800 A × B组,总共2500对8-uples(而不是所示的3-uples)。我还没有给它一个验证数据集,以找出这种方法过度拟合的严重程度。

我对这个问题的固定方面的硬编码处理感到不满意。我只能想象用于评分对的机器学习技术,但随后的映射是手工制作的,并且可能不像将集映射视为一个整体的理想解决方案那样聪明。因为机器学习部分并不考虑整套,所以在我看来,它错过了可用于做出更好决策的一些信息。

我认为上面的插图可以重构为首先将t中的所有对作为S_ab(对于n元组)和然后使用(A, B)每个S_ab对匹配和不匹配的神经网络训练。这考虑了一对并输出匹配/不匹配,并且没有考虑整个集合。

我的理解是,神经网络不会处理可变大小的输入,但也许我可以为A × BS_ab = < f1(a1, b1), f2(a2, b2), ..., fn(an, bn) >选择一个上限,并找到一些未使用的填充的中性编码节点。并且输出可以是沿着轴的匹配矩阵,其沿着侧面指向[n, ?, 1]的元素,并且沿着底部指向||A||。但是那时网仍然会对元素的顺序敏感,不是吗?

所以......

是否有机器学习技术能够以这种方式可靠地将集合映射到集合?它以明显的方式与记录联系有关。这是一个约束满足问题,因为每个元素最多可以匹配一次。如果结果的人为修正可以作为反馈以改进未来结果,那将是理想的。如果你有办法,可以请我为我拼写,因为我不熟悉机器学习概念。

0 个答案:

没有答案