Bra*_*roy 5 machine-learning machine-translation data-partitioning
我想知道在机器学习中是否可以接受一个数据集可能多次包含相同的输入,但每次都有另一个(有效!)输出。例如在机器翻译的情况下,输入句子但每次都给出不同的翻译。
一方面,我会说这绝对是可以接受的,因为输出的差异可能会更好地对小的潜在特征进行建模,从而使模型具有更好的泛化能力。另一方面,我担心多次使用相同的输入会使模型偏向于该给定的输入——这意味着第一层(在深度神经网络中)可能在这个输入上“过度拟合”。具体来说,当在测试集中多次看到相同的输入时,这可能会很棘手,但在训练集中从未出现,反之亦然。
一般来说,你可以做任何有效的事情,而这个“任何有效的事情”也是回答你的问题的关键。您需要做的第一件事是定义性能指标。如果要学习的函数定义为X |-> Y其中 X 是源句子,Y 是目标句子,则性能度量是一个函数,f((x,y)) -> |R并且可以用来定义必须由神经网络优化的损失函数。
为了简单起见,我们假设您使用准确性,即完全匹配句子的比例。如果你有像(x,y1)这样的相互矛盾的例子(x,y2),那么你就无法再达到 100% 的准确性,这感觉很奇怪,但不会造成任何伤害。另一个很酷且重要的事实是,根据定义,每个句子只能正确匹配一次——假设神经网络的预测中没有随机成分。这意味着具有更多替代翻译的句子在构建模型中的权重不会更高。优点是这种方法可能会产生更好的泛化效果。不利的一面是,这种方法可能会导致优化损失停滞不前,从而可能导致模型陷入最佳选择之间。
一种更简洁的方法是考虑绩效衡量/损失的定义中存在替代翻译的事实。您可以将性能指标定义为
其中 1I 为指示函数。
这将提供一个更清晰的指标。显然,您需要将上述推导应用于您的目标指标
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |