在使用机器翻译的基本序列到序列模型时,我已经能够取得不错的结果。但是不可避免地有些翻译不是最佳的,或者完全不正确。我想知道是否有某种方法可以在模型出错时“纠正”模型,同时又不损害以前表现良好的翻译的理想行为。
作为一个实验,我采用了一个我之前训练过的模型,并收集了几个表现不佳的翻译示例。然后,我将这些示例放入他们自己的小型训练集中,在那里我提供了比模型输出的更理想的翻译。然后,我非常简短地在这个新的小型训练集上训练了旧模型(“学习”新材料只需要 3-6 个训练步骤)。当我测试新模型时,它以我指定的确切方式翻译了这几个示例。但正如我应该预料到的那样,该模型会过度补偿以“记住”那些少数新示例,因此我注意到它开始在之前表现出色的翻译上表现不佳。
除了简单地在更新的数据集上从头开始重新训练模型之外,还有什么方法可以避免这种行为?我想我直觉地理解神经网络的性质不适合进行小的精确校正(即,当只有几个神经元的权重发生变化时,整个模型的性能会发生变化),但也许有办法绕过它,也许是某种类型的混合强化学习方法。
更新:
本文谈到了逐步改进神经机器翻译模型的方法