我正在使用Moses构建一个自动翻译器。为了提升其性能,我采用了对数线性权重优化技术。这种技术带有随机成分,可能会轻微影响最终结果(但我并不确切知道影响程度)。
假设当前模型的性能为25 BLEU。
现在假设我修改了语言模型(例如,改变平滑方法),结果性能达到了26 BLEU。
我的问题是:如何判断性能提升是由于修改所致,还是仅仅是随机成分带来的噪声?
回答:
这基本上就是统计学的核心内容。你可以采取以下两种基本方法之一(当然,还有更多高级方法):
-
尝试测量/建模/量化随机性的影响,如果你知道是什么导致了随机性,你可能能够计算出它对模型的影响程度。如果无法通过解析方法解决,你可以用相同的数据和设置训练20个模型,收集结果并估算噪声分布。一旦你有了这些数据,你就可以进行统计测试来检查改进是否具有统计学意义(例如通过ANOVA测试)。
-
更简单的做法(但在数据和时间上成本更高)是通过平均来减少方差。简而言之——不要只训练一个模型(或只评估一次模型),因为这样难以确定噪声成分——而是多次进行,10次、20次,并平均结果。这样你就能在分析中减少结果的方差。这可以(而且应该)与前一种选项结合使用——因为现在你每轮有20个结果,因此你可以再次使用统计测试来查看这些结果是否有显著差异。