Softmax 层怎么不能使用硬目标收敛

机器算法验证 机器学习 分类 深度学习 收敛 软最大
2022-04-05 10:57:32

这是 Ian Goodfellow 的深度学习书(第 236 页)的引述

使用 softmax 分类器和硬目标的最大似然学习实际上可能永远不会收敛——softmax 永远无法准确预测 0 或 1 的概率......

我已经构建了许多 DNN 模型,并使用 Softmax 层作为分类层,但实际上我从未注意到这是可能的。实际上,我认为这确实有道理,但我们为什么不在实践中面对呢?框架会提前“终止”梯度下降算法并在内部处理这个问题吗?我研究了很多关于 DNN 的书籍和文章,但这是我第一次读到这方面的东西。或者,这仅在某些情况下有效吗?

2个回答

措辞从不收敛可能听起来有点太强了,但实际的说法是

... softmax 永远无法准确预测0或者确切地说1, ...

这在几乎所有情况下都是正确的。在这种情况下,收敛意味着完美地拟合训练数据并为所有输入输出一个单一的概率向量x. 在所有其他情况下,都会有一些损失,这基本上意味着算法还没有收敛。这正是实践中发生的情况:通常,当研究发现训练没有改进或时间限制到期时,学习就会停止。

顺便说一句,这句话摘自正则化一章,作者解释说完美地拟合训练数据是个坏主意,在学习过程中注入噪声实际上可以提高泛化能力。

为什么我们不在实践中面对呢?

多类分类的预测是通过将 argmax 与概率向量相乘来完成的,因此这不是真正的问题。

框架会提前“终止”梯度下降算法并在内部处理这个问题吗?

在深度学习中,通常您没有任何收敛保证,因此大多数框架只是假设您指定了迭代次数或容差(例如,如果 log-loss 变化小于ϵ迭代之间)。

过于自信也存在问题,但马克西姆涵盖了这一点。对于一个具体的例子,你可以看到这篇论文