循环神经网络(RNN)相对于前馈神经网络(MLP)的优势

机器算法验证 神经网络
2022-03-26 23:44:30

假设我们同时使用 RNN 和 MLP 来完成相同的任务,并且每个网络都训练有素。由于RNN比MLP使用更多的信息,理论上它的性能应该比MLP更好。有什么例外吗?如果是这样,为什么?

2个回答

从理论上讲,MLP 可以将任何函数逼近到任意精度,因此不需要 RNN。然而,这并不意味着它可以在野外使用。假设我们谈论的是时间序列输入,教科书的答案是你可以在前馈网络中输入你的时间序列,方法是让输入层也包含来自先前时间点的输入。因此有效地将时间序列问题转化为前馈问题。但是,您必须事先选择输入的长度,并且您将无法学习依赖于很久以前发生的输入的函数。你可以通过一个 RNN 来解决这个问题,理论上它可以在它的上下文层中存储任意很久以前的信息。然而,在实践中,您将遇到梯度爆炸/消失问题。

出于讨论的目的,我假设您将 RNN 用于时间序列分析的典型用例,其中递归操作允许响应取决于时间演变的状态;例如,网络现在可以检测到随时间的变化。在本例中,这正是您想要循环神经网络的附加功能。那部分听起来你知道。

不利的一面是,它可能更难以训练,并且在收敛方面存在多个问题。例如,反向传播“信号”倾向于随着“时间”呈指数衰减。学习算法的选择可能更加有限。(SGD 显然不能在没有认真修改的情况下丢弃中间时间步长)。

还有其他方法可以解决其中一些问题;例如Long-Short Term Memory,它基本上使用门控方法来构建可以“设置”或“清除”的循环电路。

即使您不是在谈论时间序列(例如,递归神经网络也已与卷积层一起使用以扩展有效像素邻域。)您仍然会遇到类似的收敛和指数反向传播衰减问题。