【问题标题】:Sorting in Beam Search束搜索中的排序
【发布时间】:2016-07-11 09:20:03
【问题描述】:

虽然我对光束搜索有很好的了解,但我对光束搜索有疑问。当我们选择 n 条最佳路径时,我们应该对它们进行排序还是简单地保持它们存在的顺序并丢弃其他昂贵的节点?

我对此进行了很多搜索,但每个地方都说最好。没有发现我们应该对它们进行排序吗?

我认为我们应该对它们进行排序,因为通过应用排序,我们将很快到达目标节点。但是我想确认我的排序想法,直到现在我才找到它。

如果您能帮助我改进我的概念,我将不胜感激。

【问题讨论】:

  • 请检查我的更新答案。

标签: artificial-intelligence heuristics beam-search


【解决方案1】:

当我们选择 n 条最佳路径时,我们应该对它们进行排序还是简单地保持它们存在的顺序并丢弃其他昂贵的节点?

我们只是对它们进行排序并保留前 k 个。

在初始化后的每个步骤中,您对 beam_size * words_size 假设进行排序并选择前 k 个。对于每个 beam_size * words_size 假设,其权重/概率是沿其历史归一化长度(长度归一化)的所有概率的乘积。

一个问题源于完整的假设可能有不同的长度。因为模型通常将较低的概率分配给较长的字符串,所以一个简单的算法也会为 y 选择较短的字符串。在早期的解码步骤中,这不是问题;由于波束搜索的广度优先性质,所有被比较的假设都具有相同的长度。通常的解决方案是对每个假设应用某种形式的长度归一化,例如简单地将负对数概率除以单词数:

更多信息请参考this answer

参考: https://web.stanford.edu/~jurafsky/slp3/ed3book.pdf

【讨论】:

    【解决方案2】:

    ****束搜索使用广度优先搜索来构建其搜索树。在树的每一层,它都会生成当前层状态的所有后继,***

    按照启发式成本的升序对它们进行排序

    ***。但是,它仅在每个级别存储预定数量的最佳状态(称为波束宽度)。接下来只扩展那些状态。光束宽度越大,修剪的状态就越少。使用无限的波束宽度,不会修剪任何状态,并且波束搜索与广度优先搜索相同。 注意:(我在搜索过程中从 WikipediA 获得了此信息。)可能会有所帮助。****

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 2021-08-01
      • 1970-01-01
      • 2013-11-22
      相关资源
      最近更新 更多