2

训练 RNN 和简单的神经网络有什么区别?可以使用前馈和后向方法训练 RNN 吗?

提前谢谢!

4

1 回答 1

7

区别在于重复. 因此,RNN 不能像您尝试计算梯度一样轻松训练 - 您很快就会发现,为了在第 n 步获得梯度 - 您实际上需要为 n-1 个先前步骤“展开”您的网络历史。这种被称为 BPTT(通过时间的反向传播)的技术正是如此——将反向传播直接应用于 RNN。不幸的是,这在计算上既昂贵又具有数学挑战性(由于梯度消失/爆炸)。人们正在许多层面上创建解决方法,例如引入可以有效训练的特定类型的 RNN(LSTM、GRU),或通过修改训练过程(例如梯度钳位)。总而言之——理论上你可以在数学意义上做“典型的”反向传播,从编程的角度来看 - 这需要更多的工作,因为您需要通过历史“展开”您的网络。这在计算上是昂贵的,并且在数学意义上难以优化。

于 2016-02-24T23:14:04.087 回答