0

看着这段代码

for (i <- (L - 2) to (0, -1)) {
    layerModels(i + 1).computePrevDelta(deltas(i + 1), outputs(i + 1), deltas(i))
}

我想了解为什么我们要通过outputs(i+1)而不是outputs(i)在上面的代码片段中。据我了解,这仅适用于具有导数的 sigmoid 激活层f'(x) = f(x) * (1-f(x)) = outputs(i) * (1-outputs(i))

这意味着为了找到 prevDelta 我们应该使用outputs(i).

4

1 回答 1

0

我想为什么会这样。如果像我这样的人偶然在这里绊倒,我会在这里回答。

您必须注意,我们正在计算第 i 层的增量,它仅取决于下一个(第 i+1 层)层的增量和梯度。您必须注意我们是layerModels(i + 1)根据需要使用而不是layerModels(i)

于 2017-10-09T09:11:16.517 回答