我们是否需要在训练过程中使用波束搜索?

Sha*_*ana 3 deep-learning tensorflow

如果我们在seq2seq模型中使用波束搜索,它将提供更合适的结果.有几个tensorflow实现.但是,通过每个单元格中的softmax功能,您无法在训练过程中使用波束搜索.那么在使用光束搜索时还有其他任何修改过的优化函数吗?

Sha*_*ana 10

正如Oliver提到的那样,为了在训练过程中使用波束搜索,我们必须使用波束搜索优化,这在序列到序列学习作为波束搜索优化的论文中清楚地提到.

我们不能在训练过程中使用波束搜索和当前的丢失功能.因为当前损耗函数是在每个时间步长上采用的对数损失.这是一种贪婪的方式.它还在本文中明确提到了序列到神经网络的序列学习.在3.2节中,它已经整齐地提到了上述情况.

在此输入图像描述

"其中S是训练集.一旦训练完成,我们通过根据LSTM找到最可能的翻译来产生翻译:"

因此,原始的seq2seq架构仅在测试时使用波束搜索.如果我们想在训练时使用这种波束搜索,我们必须使用另一种损失和优化方法,如本文所述.


Oli*_*ver 1

序列到序列学习作为波束搜索优化是一篇论文,描述了在训练过程中使用波束搜索所需的步骤。 https://arxiv.org/abs/1606.02960

以下问题包含一个可以执行波束搜索的脚本,但它不包含任何训练逻辑 https://github.com/tensorflow/tensorflow/issues/654