神经网络和其他分类算法中的目标是 0.1/0.9 而不是 0/1

机器算法验证 物流 神经网络 火车
2022-03-29 09:43:32

Rumelhart、Hinton 和 Williams (PDF)在 1986 年在训练神经网络的背景下写道(第 12 页):

应该注意此激活函数的另一个特征。如果没有无限大的权重,系统实际上无法达到其极值 1 或 0。因此,在期望输出为二进制 {0, 1} 的实际学习情况下,系统永远无法真正实现这些值。因此,我们通常使用 0.1 和 0.9 的值作为目标,尽管我们会说好像在寻找 {0, 1} 的值。

我在最近的任何论文中都没有看到这个建议,也没有在任何实现神经网络的代码中看到这个建议。我的问题:

  1. 这个建议仍然有效,还是在某些时候被证明无效?

  2. 这个建议是否(历史上)用于其他算法,例如逻辑回归?

2个回答

将目标编码为是标签平滑的一个示例。这是这篇评论中强调的技巧之一,它似乎起源于Christian Szegedy 等人的“重新思考计算机视觉的初始架构”。作为某种正则化。它被用作一种正则化策略,以阻止神经网络对结果做出过分自信的预测,因为预测概率不能通过任意接近真实类来提高;相反,真实类的最低损失值出现在 0.9。{0.1,0.9}

标准方法是不使用标签平滑。当我们估计逻辑回归(在最后一层具有 sigmoid 激活的 0 隐藏层神经网络)时,我们从不这样做;问题“按原样”留给牛顿法解决。假设满足通常条件(设计矩阵是满秩的,不存在完美分离),我们估计回归系数没有问题。同样,针对二元问题训练的神经网络也以同样的方式进行!非线性和多层使优化更具挑战性,但核心概念是相同的。

然而,神经网络是更灵活的模型,与逻辑回归相比,能够找到更复杂的关系。这意味着它们也更容易给出未经校准的结果(预测的概率与真实概率并不强烈对应),这种趋势在“你的分类器秘密地是一个基于能量的模型,你应该像对待它一样对待”一个“由 Will Grathwohl 等人撰写。(其中还引用了其他进行类似观察的论文)。

我怀疑他们提出这种方法的原因是反向传播中梯度下降步骤的大小与激活函数的导数成正比。如果您使用逻辑激活函数,则在输出达到 1 或 0 之前,导数在数值上为零。因此,优化永远不会绝对收敛,因为损失函数在权重空间中具有非常长的波谷,并且沿曲线的斜率非常浅底部。使用这些修改后的目标反向传播能够收敛到更明确的最小值。我在 90 年代早期就使用了这种技术‡,它在实践中并没有真正带来太多好处,尤其是在对目标的修改如此之大的情况下!

这种技巧的最新用法可以在Platt Scaling中找到,它用于从支持向量机获得类成员概率的估计†。在 Platt Scaling 中,逻辑回归模型适合 SVM 输出的(留一法)分数,但使用修改后的目标(如 @Sycorax 解释的 +1)作为正则化方法以避免过度拟合。然而,普拉特采用了一种少得多的启发式(也不那么激烈)的方法,并将目标设定为

y+=N++1N+2andy=N+1N+2

这实际上是基于拉普拉斯校正的贝叶斯正则化。

真的- 不要这样做,如果你想要概率(对于大多数实际应用,你会),使用适当的概率分类器,例如核逻辑回归或高斯过程分类器(如果你喜欢贝叶斯)。

‡ PDP 书籍是我第一次了解神经网络的地方!(我的副本是 1989 年的;o)