图论 - 学习成本函数以找到最优路径

时间:2012-11-04 17:31:59

标签: machine-learning graph-theory classification

这是一个有监督的学习问题。

我有一个有向无环图(DAG)。每个边都有一个特征向量X,每个节点(顶点)有一个标签0或1.任务是找到一个成本函数w(X),这样任何一对节点之间的最短路径具有最高的比率1s到0s(最小分类错误)。

解决方案必须很好地概括。我尝试了逻辑回归,并且学习的逻辑函数很好地预测了给出传入边缘特征的节点的标签。但是,该方法不考虑图形的拓扑,因此整个图形中的解决方案不是最优的。换句话说,考虑到上面的问题设置,逻辑函数不是一个好的权重函数。

虽然我的问题设置不是典型的二进制分类问题设置,但这里有一个很好的介绍: http://en.wikipedia.org/wiki/Supervised_learning#How_supervised_learning_algorithms_work

以下是一些更多细节:

  1. 每个特征向量X是实数的d维列表。
  2. 每条边都有一个特征向量。也就是说,给定一组边E = {e1,e2,.. en}和一组特征向量F = {X1,X2 ... Xn},则边ei与向量Xi相关联。
  3. 可以得到函数f(X),因此f(Xi) 给出边ei指向标记为1的节点的可能性。 这种功能的一个例子就是我上面提到的通过逻辑找到的功能 回归。但是,正如我上面提到的,这种功能是非最佳的。
  4. 问题是: 给定图形,起始节点和结束节点,如何学习最优成本函数w(X),以使节点1s与0s的比率最大化(最小分类误差)?

3 个答案:

答案 0 :(得分:5)

这不是一个真正的答案,但我们需要澄清这个问题。我可能会稍后回来找一个可能的答案。

以下是DAG的示例。

enter image description here

假设红色节点是起始节点,黄色节点是结束节点。如何根据

定义最短路径
  

1s到0s的最高比率(最小分类误差)?

编辑:我为每个节点添加名称,为前两个边添加两个示例名称。

在我看来,你无法学习这样的成本函数,它将特征向量作为输入,其输出(边缘权重等等)可以指导您在考虑图形拓扑的情况下走向任何节点的最短路径。原因如下:

  • 假设您没有所说的特征向量。给定上面的图表,如果您想要找到与1 s到0 s的比率相对应的所有对最短路径,那么最好使用Bellman equation或更具体的Dijkastra加上适当的启发式函数(例如,路径中1 s的百分比)。另一种可能的无模型方法是使用q-learning,其中我们获得了访问1节点的奖励+1和访问0节点的-1。我们一次一个地学习每个目标节点的查找q表。最后,当所有节点都被视为目标节点时,我们拥有全对最短路径。

  • 现在假设,你神奇地获得了特征向量。既然你没有这些载体就能找到最优的解决方案,那么当它们存在时它们会如何发挥作用呢?

  • 有一种可能的条件是您可以使用特征向量来学习优化边权重的成本函数,也就是说,特征向量依赖于图拓扑(节点之间的链接和{的位置) {1}}和1 s)。但我根本没有在你的描述中看到这种依赖性。所以我猜它不存在。

答案 1 :(得分:1)

这看起来像遗传算法具有极好潜力的问题。如果您将所需的功能定义为例如(但不限于)特征的线性组合(您可以添加二次项,然后是立方,ad inifititum),然后基因是系数的向量。增变器可以只是合理范围内的一个或多个系数的随机偏移。根据当前突变,评估函数只是沿着最短路径的1到0到0的平均比率。在每一代中,选择最好的几个基因作为祖先并变异以形成下一代。重复直到ueber基因即将到来。

答案 2 :(得分:1)

我相信你的问题非常接近反强化学习领域,在那里你可以参加某些专家演示"最佳路径并尝试学习成本函数,以便您的计划者(A *或某些强化学习代理)输出与专家演示相同的路径。该培训以迭代方式完成。我认为在您的情况下,您可以创建专家演示,使其成为经过最多1个标记边缘的路径。以下是关于同一篇文章的好文章的链接:Learning to Search: Functional Gradient Techniques for Imitation Learning。它来自机器人社区,其中运动规划通常被设置为图形搜索问题,学习成本函数对于展示期望的行为至关重要。