RNN(递归神经网络)可以作为正常的神经网络进行训练吗?

时间:2016-02-24 22:48:21

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

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

非常感谢!

1 个答案:

答案 0 :(得分:5)

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