验证时是否应该关闭标签平滑?

数据挖掘 深度学习 喀拉斯 交叉验证 正则化 标签
2021-09-28 01:32:37

正如题主所说。一方面,答案应该是肯定的,因为标签平滑是一种正则化功能,您如何知道它是否可以在不关闭它的情况下提高性能?另一方面,我还没有看到任何权威人士声称在验证期间应该关闭它,甚至介绍该技术的文章也没有提到它。而且,由于该功能是在 Keras 中实现的,因此在验证期间不会关闭它。

3个回答

大多数人初步了解标签平滑的方式(以及关于该主题的最常见解释必须说什么)在人们如何解决这个问题方面发挥着重要作用。

乍一看,标签平滑正是顾名思义:我们修改标签或其中的一部分以获得更好、更通用、更健壮的模型。我们不希望模型从极端的置信水平中学习(然后用它来预测)是有道理的,尤其是当我们知道某些标签是错误的时,因为这会损害模型在看不见的数据上执行的能力。因此,LS 机制的直观解释是,我们没有为模型提供纯 1 和 0,而是使用较少置信度的值,从而导致更保留的决策函数不会以极端方式外推。现在,我们知道平滑标签不是真正的标签,所以在这一点上出现了主要问题——一旦我们训练了平滑标签,我们是否也使用平滑标签进行验证?

如果您将 LS 纯粹视为一种数据操作技术,则上述问题的答案并不明显,因为根据论点,它可能是双向的。但是,必须记住,LS 几乎总是被视为一种正则化技术——你自己在问题中提到了这一点——这是有充分理由的。根据定义,正则化是用一个额外的正则化项扩展损失函数,这通常与惩罚有关。在 LS 中,这个惩罚项负责惩罚高置信度的预测。尽管它可能看起来不是这样,但一旦应用 LS,它就会成为损失函数的重要组成部分,如果我们打算利用该技术,它应该在训练和验证之间持续存在。当我们在训练中应用 LS 时,我们正在有效地尝试通过添加正则化项来最小化损失函数。在验证期间将其丢弃会破坏首先包含它的目的:如果我们决定也不将 LS 应用于验证集,我们就是错误地期望刚刚接受过专门训练的学习者具有极高的信心(1/0标签),以防止对以前看不见的数据做出过于自信的预测。正确的做法是验证预测的可信度是否符合预期。这就是为什么验证集也应该在损失函数中存在正则化器,即也有平滑标签。如果我们决定不将 LS 也应用于验证集,我们就会错误地期望学习者具有极高的信心(1/0 标签),而该学习者刚刚接受过专门训练,不会对以前看不见的数据做出过于自信的预测。正确的做法是验证预测的可信度是否符合预期。这就是为什么验证集也应该在损失函数中存在正则化器,即也有平滑标签。如果我们决定不将 LS 也应用于验证集,我们就会错误地期望学习者具有极高的信心(1/0 标签),而该学习者刚刚接受过专门训练,不会对以前看不见的数据做出过于自信的预测。正确的做法是验证预测的可信度是否符合预期。这就是为什么验证集也应该在损失函数中存在正则化器,即也有平滑标签。随心所欲。这就是为什么验证集也应该在损失函数中存在正则化器,即也有平滑标签。随心所欲。这就是为什么验证集也应该在损失函数中存在正则化器,即也有平滑标签。

AFAIK 标签平滑在训练时计算损失时出现。验证期间没有损失计算。

标签平滑是一种应用于目标值的正则化技术,使模型可以很好地学习数据而不会过度拟合。验证不需要做标签平滑。但即使你做了,也不会有问题。