0

我已阅读此处给出的答案。我的确切问题与公认的答案有关:

  1. 变量独立性:大量的正则化和努力使你的变量保持独立、不相关和相当稀疏。如果您使用 softmax 层作为隐藏层 - 那么您将保持所有节点(隐藏变量)线性相关,这可能会导致许多问题和较差的泛化性。

放弃隐藏层中的变量独立性会出现什么并发症?请提供至少一个例子。我知道隐藏变量独立性在编码反向传播方面有很大帮助,但反向传播也可以为 softmax 编码(请验证我在这个声明中是否正确。我似乎已经根据我的说法得到了正确的方程。因此声明) .

  1. 训练问题:试着想象一下,为了让你的网络更好地工作,你必须让隐藏层的一部分激活值低一点。然后 - 你会自动让其余的人在更高的水平上进行平均激活,这实际上可能会增加错误并损害你的训练阶段。

我不明白即使在 sigmoid 隐藏神经元中你如何实现这种灵活性,你可以微调特定给定神经元的激活,这正是梯度下降的工作。那么我们为什么还要担心这个问题。如果您可以实现反向传播,其余部分将由梯度下降处理。微调权重以使激活正确不是您想要做的事情,即使您可以做,但您做不到。(如果我的理解有误,请纠正我)

  1. 数学问题:通过对模型的激活创建约束,您会在没有任何逻辑解释的情况下降低模型的表达能力。在我看来,努力使所有激活都相同是不值得的。

请解释这里所说的

  1. 批量标准化:我明白了,这里没有问题
4

1 回答 1

2

1/2。我认为您不知道作者要说什么。想象一个有 3 个节点的层。其中 2 个节点对输出错误的错误责任为 0;所以有一个节点需要调整。因此,如果您想改善节点 0 的输出,那么您会立即影响该层中的节点 1 和 2——可能会使输出更加错误。

微调权重以使激活正确不是您想要做的事情,即使您可以做,但您做不到。(如果我的理解有误,请纠正我)

这就是反向传播的定义。这正是你想要的。神经网络依靠激活(非线性)来映射函数。

3.你基本上对每个神经元说'嘿,你的输出不能高于 x,因为这一层中的其他一些神经元已经具有值 y'。因为 softmax 层中的所有神经元的总激活值为1,这意味着神经元不能高于特定值。对于小层 - 小问题,但对于大层 - 大问题。想象一个有 100 个神经元的层。现在想象他们的总输出应该是1. 这些神经元的平均值将是0.01-> 这意味着您正在使网络连接依赖(因为平均而言,激活将保持非常低) - 因为其他激活函数输出(或接受输入)范围(0:1/ -1:1)。

于 2017-05-28T17:07:48.353 回答