生成文本的解码器
在字幕生成,文本摘要和机器翻译等自然语言处理任务中,所需的预测是一系列单词。
为这些类型的问题开发的模型通常为输出一个每个单词在可能的词汇表中的概率分布。...然后由解码器处理将概率转换为最终的单词序列。
在处理生成文本作为输出的自然语言处理任务的循环神经网络时,您可能会遇到这种情况。...0.2, 0.1],
[0.1, 0.2, 0.3, 0.4, 0.5],
[0.5, 0.4, 0.3, 0.2, 0.1]]
data = array(data)
我们将假定这些单词已经被整数编码了...我们来举个具体的例子。
我们可以定义一个函数来执行给定的概率序列和波束宽度参数k的波束搜索。在每个步骤中,每个候选序列都被扩展为所有可能的后续步骤。每个候选步骤通过将概率相乘在一起进行评分。...选择具有最可能概率的k个序列,并且修剪所有其他候选者。该过程然后重复,直到序列结束。
概率是小数,小数乘以小数。为了避免浮点数的下溢,概率的自然对数相乘在一起,使数字更大,更易于计算。