我正在摩西建立一个自动翻译器。为了提高性能,我使用了对数线性权重优化。这种技术有一个随机组件,可能会略微影响最终结果(但我不确切知道多少)。
假设模型的当前性能为25 BLEU。
现在假设我修改语言模型(例如更改平滑),我获得了26 BLEU的性能。
我的问题是:我怎么知道改进是因为修改,还是只是来自随机组件的噪音?
答案 0 :(得分:2)
这几乎就是统计数据。你基本上可以做两件事之一(从基本的解决方案集中,当然还有更高级的解决方案):
尝试测量/建模/量化随机性的影响,如果你知道是什么导致它,你可能能够实际计算它对你的模型有多大影响。如果无法使用分析解决方案,您可以随时培训20个具有相同数据/设置的模型,收集结果并估算噪声分布。一旦你有了这个,你可以进行统计测试,以检查改善是否具有统计学意义(例如通过ANOVA测试)。
更简单的方法(但在数据/时间方面更昂贵)是通过平均来简单地减少方差。简而言之 - 而不是训练一个模型(或评估模型一次),这很难确定噪声成分 - 做多次,10,20,并平均结果。这样可以减少分析中结果的差异。这可以(并且应该)与之前的选项结合使用 - 因为现在每次运行有20个结果,因此您可以再次使用统计检验来查看这些是否是显着不同的事情。