我有点困惑为什么反向传播中的激活衍生物是它的原因。
首先,当我从反向传播算法中删除激活导数并将其替换为常数时,网络仍然会进行训练,尽管速度稍慢。所以我认为它对算法来说并不重要,但它确实提供了性能优势。
但是,如果激活导数是(简单地说),只是激活函数相对于当前输入的变化率,那么为什么这会提高性能呢?
当然,在激活功能变化最快的值时,我们需要更小的值,因此重量更新更小?这将防止在激活函数的陡坡附近的重量变化发生大的输出变化。但是,这与算法实际工作方式完全相反。
有人可以向我解释为什么它会像这样设置以及为什么会提供这样的性能提升?
答案 0 :(得分:1)
我不完全确定这是否是你所要求的,但这个答案可能提供一些你想要了解的内容。
想象一下错误曲线:
我们正在尝试使用梯度下降来最小化成本函数的正确性?让我们假设我们处于曲线的外部,误差非常高。通过用曲线计算梯度下降,该函数将认识到斜率陡峭,因此误差很大,因此需要很大的步骤。当它沿着曲线向下移动时,斜率缓慢接近0,因此每次将采取更小的步长。
用活化衍生物可视化梯度下降:
看看它是如何从迈出重要的一步,每次采取更小的步骤?这是通过使用活化衍生物实现的。它开始时迈出了一大步,因为它有一条陡峭的曲线。随着斜率变小,步长也变小。
如果使用常数值,则必须选择一小段步骤以避免超出最小值,因此必须使用更多迭代才能获得类似的结果。