我正在用 moses 构建一个自动翻译器。为了提高其性能,我使用对数线性权重优化。这种技术有一个随机分量,它会对最终结果产生轻微影响(但我不知道具体有多少)。
假设模型的当前性能为 25 BLEU。
假设现在我修改了语言模型(例如更改平滑),我得到了 26 BLEU 的性能。
我的问题是:我怎么知道改进是因为修改,还是只是来自随机分量的噪声?
我正在用 moses 构建一个自动翻译器。为了提高其性能,我使用对数线性权重优化。这种技术有一个随机分量,它会对最终结果产生轻微影响(但我不知道具体有多少)。
假设模型的当前性能为 25 BLEU。
假设现在我修改了语言模型(例如更改平滑),我得到了 26 BLEU 的性能。
我的问题是:我怎么知道改进是因为修改,还是只是来自随机分量的噪声?
这几乎就是统计的全部内容。你基本上可以做两件事中的一件(从基本的解决方案中,当然还有很多更高级的):
尝试测量/建模/量化随机性的影响,如果您知道是什么原因造成的,您可能能够实际计算出它对模型的影响程度。如果无法进行解析解,您始终可以使用相同的数据/设置训练 20 个模型,收集结果并估计噪声分布。完成此操作后,您可以执行统计测试以检查改进是否具有统计显着性(例如通过 ANOVA 测试)。
更简单的方法(但在数据/时间方面更昂贵)是通过平均来简单地减少方差。简而言之——与其训练一个很难确定噪声分量的模型(或评估模型一次),不如重复多次,10 次、20 次,然后平均结果。这样可以减少分析结果的方差。这可以(并且应该)与之前的选项结合使用 - 因为现在您每次运行有 20 个结果,因此您可以再次使用统计测试来查看这些是否是显着不同的东西。