【问题标题】:Why do we want to scale outputs when using dropout?为什么我们要在使用 dropout 时缩放输出?
【发布时间】:2019-05-10 09:05:03
【问题描述】:

来自dropout paper

“这个想法是在测试时使用单个神经网络而不会丢失。 该网络的权重是经过训练的缩小版本 权重。如果在训练期间以概率 p 保留一个单元,则 该单元的输出权重在测试时乘以 p 为 如图 2 所示。这确保了对于任何隐藏单元的预期 输出(在用于在训练时丢弃单元的分布下)是 与测试时的实际输出相同。”

为什么我们要保留预期的输出?如果我们使用 ReLU 激活,权重或激活的线性缩放会导致网络输出的线性缩放,并且对分类精度没有任何影响。

我错过了什么?

【问题讨论】:

    标签: machine-learning neural-network deep-learning dropout


    【解决方案1】:

    准确地说,我们要保留的不是“预期输出”而是输出的预期值,也就是我们要弥补训练中的差异(当我们不传递某些节点的值时)并通过保留输出的平均(预期)值来测试阶段。

    在 ReLU 激活的情况下,这种缩放确实会导致输出的线性缩放(当它们为正时),但您为什么认为它不会影响分类模型的最终准确性?至少在最后,我们通常应用 sigmoid 的 softmax,它们是非线性的并且依赖于这种缩放。

    【讨论】:

    • 为什么通过softmax或sigmoid传递缩放输出会影响分类精度?最大的输出仍然是最大的,对吧?
    • 好吧,例如,如果我们使用 sigmoid,那么可能存在没有缩放的值意味着 0 而不是 1。实际上,使用 softmax 也可能是这种情况。仅当您将其作为最后一层并使用 softmax 获取最大概率并且仅考虑准确度/精度/召回率(例如,不是对预测概率敏感的 roc_auc_score)时,准确度才会相同。
    • 您是在说在 sigmoid 之后应用硬阈值,例如二元分类器:如果 sigmoid(y) > 0.5 则为 A 类,否则为 B 类?
    • 是的,如果您不应用它并根据预测概率(例如 roc_auc_score)测量分数,那么这种缩放也会影响分数。
    • 好的,有道理。您是否看到任何其他可能需要缩放的场景,例如批量标准化?
    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2010-12-22
    • 2023-04-03
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多