diff --git a/chapter_natural-language-processing/beam-search.md b/chapter_natural-language-processing/beam-search.md index 757462ebd23bca99eb0ba109566e67483a92960c..babda295132de350fd4b5c64ef4227a4aeb67323 100644 --- a/chapter_natural-language-processing/beam-search.md +++ b/chapter_natural-language-processing/beam-search.md @@ -13,7 +13,7 @@ $$y_{t'} = \operatorname*{argmax}_{y \in \mathcal{Y}} \mathbb{P}(y \mid y_1, \ld 作为输出。一旦搜索出“<eos>”符号,或者输出序列长度已经达到了最大长度$T'$,便完成输出。 -我们在描述解码器是提到,基于输入序列生成输出序列的条件概率是$\prod_{t'=1}^{T'} \mathbb{P}(y_{t'} \mid y_1, \ldots, y_{t'-1}, \boldsymbol{c})$。我们将该条件概率最大的输出序列称为最优序列。而贪婪搜索的主要问题是不能保证得到最优序列。 +我们在描述解码器时提到,基于输入序列生成输出序列的条件概率是$\prod_{t'=1}^{T'} \mathbb{P}(y_{t'} \mid y_1, \ldots, y_{t'-1}, \boldsymbol{c})$。我们将该条件概率最大的输出序列称为最优序列。而贪婪搜索的主要问题是不能保证得到最优序列。 下面我们来看一个例子。假设输出词典里面有“A”、“B”、“C”和“<eos>”这四个词。图10.9中每个时间步下的四个数字分别代表了该时间步生成“A”、“B”、“C”和“<eos>”这四个词的条件概率。在每个时间步,贪婪搜索选取条件概率最大的词。因此,图10.9中将生成输出序列“A”、“B”、“C”、“<eos>”。该输出序列的条件概率是$0.5\times0.4\times0.4\times0.6 = 0.048$。