循环神经网络(RNN)能像普通神经网络一样训练吗?

训练循环神经网络(RNN)和简单神经网络之间有什么区别?RNN可以使用前馈和反向传播方法进行训练吗?

提前感谢!


回答:

区别在于递归性。因此,RNN不能像普通神经网络那样容易地进行训练。如果你尝试计算梯度,你会很快发现,为了在第n步获得梯度,你实际上需要“展开”网络的前n-1步历史。这种技术,被称为BPTT(时间上的反向传播),正是将反向传播直接应用于RNN的做法。不幸的是,这种方法在计算上既昂贵又在数学上具有挑战性(由于梯度消失/爆炸问题)。人们在许多层面上创造了解决方案,例如引入可以高效训练的特定类型的RNN(如LSTM、GRU),或者通过修改训练过程(如梯度裁剪)。总的来说,从数学意义上讲,你可以在理论上进行“典型”的反向传播,但从编程的角度来看,这需要更多的工作,因为你需要通过历史“展开”你的网络。这在计算上是昂贵的,并且在数学意义上难以优化。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注