【问题标题】:What does the beam size represent in the beam search algorithm?波束搜索算法中的波束大小代表什么?
【发布时间】:2014-04-11 23:01:55
【问题描述】:

我有一个关于光束搜索算法的问题。

假设n = 2(我们将从每个节点扩展的节点数)。所以,一开始,我们只有根,我们从它扩展了 2 个节点。现在,从这两个节点,我们再扩展两个。所以,目前,我们有 4 片叶子。我们将继续这样做,直到找到答案。

这就是光束搜索的工作原理吗?它是只扩展每个节点的n = 2,还是一直保持2个叶子节点?

我曾经认为n = 2 的意思是每个节点最多应该有 2 个活动节点,而不是整个树的两个。

【问题讨论】:

  • 请查看我更新的答案。

标签: algorithm search artificial-intelligence beam-search


【解决方案1】:

"standard" beam search algorithm 中,在每一步中,您当前“了解”的节点总数是有限的,而不是您将从每个节点遵循的节点数。

具体来说,如果n = 2,则意味着“梁”的大小在任何时候都最多为2。因此,最初,您从一个节点开始,然后发现所有可从该节点到达的节点,但丢弃除两个之外的所有节点,并以 2 个节点完成步骤 1。在第 2 步,您有两个节点,您将展开这两个节点,并再次丢弃所有节点,除了正好 2 个节点(总计,不是每个节点!)。在接下来的步骤中,类似地,您将在每一步之后保留 2 个节点。

选择要保留的节点通常由一些启发式函数完成,该函数评估哪个节点最接近目标。

请注意,束搜索算法不完整(即,如果存在,它可能找不到解决方案)也不是最优的(即,它可能找不到最佳解决方案)。看到这一点的最好方法是见证当n = 1,它基本上减少到best-first-search

【讨论】:

    【解决方案2】:

    在束搜索中,我们不是在每个时间步选择最好的令牌生成,而是在每个步骤保留 k 个可能的令牌。这种固定大小的内存占用量 k 称为光束宽度,比喻手电筒光束可以参数化为更宽或更窄。

    因此,在解码的第一步,我们在整个词汇表上计算一个 softmax,为每个单词分配一个概率。然后我们从这个 softmax 输出中选择 k-best 选项。这些初始的 k 个输出是搜索边界,这 k 个初始词称为假设。假设是一个输出序列,一个翻译到目前为止,连同它的概率。

    在随后的步骤中,k 个最佳假设中的每一个都通过传递给不同的解码器来递增扩展,每个解码器都会在整个词汇表上生成一个 softmax,以将假设扩展到每个可能的下一个标记。这些 k∗V 假设中的每一个都由 P(yi|x,y

    光束尺寸(或光束宽度)是前面提到的k。

    来源:https://web.stanford.edu/~jurafsky/slp3/ed3book.pdf

    【讨论】:

    • 我对您的回答投了反对票,因为我发现它令人困惑。你开始说“上面的图片说明了一切。”但是,看着它,它并没有告诉我任何事情。一般来说,这不是一个明确的答案。通过解释图片使您的答案更清楚,我将删除我的反对票。
    • @nbro 我已经更新了我的答案,不知道现在还可以吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多