使用循环神经网络进行强化学习有哪些用途?

我知道带有反向传播的前馈多层神经网络可以与强化学习结合使用,以帮助其推广我们的代理所采取的行动。也就是说,如果我们有一个很大的状态空间,我们可以采取一些行动,这些行动将有助于推广到整个状态空间。

那么,循环神经网络又有什么作用呢?它们通常用于哪些任务呢?


回答:

循环神经网络,简称 RNN(但请注意,文献中 RNN 经常用于指代 随机神经网络,实际上是循环神经网络的一个特例),有非常不同的“风格”,这导致它们表现出各种行为和特征。但一般来说,这些行为和特征的许多细微差别都**源于单个神经元可获得的[反馈]输入**。这种反馈来自网络的其他部分,无论是本地的还是远程的,来自同一层(包括在某些情况下“自我”),甚至来自不同的层 (*)。反馈信息被视为神经元的“正常”输入,因此至少可以在一定程度上影响其输出。

与 **反向传播** 不同,反向传播用于前馈网络的学习阶段,目的是微调各种[仅前馈]连接的相对权重,而 RNN 中的反馈构成神经元的真正输入。

反馈的用途之一是**使网络更能抵抗输入中的噪声和其他缺陷**(即整个网络的输入)。原因是除了“直接”与网络输入相关的输入(前馈网络中存在的输入类型)之外,神经元还具有关于其他神经元“想法”的信息。这种额外的信息会导致 赫布理论,即[通常]一起触发的神经元应该“鼓励”彼此触发的想法。在实际应用中,来自“类似触发”的相邻神经元(或非相邻神经元)的这种额外输入可能会促使神经元触发,即使其非反馈输入可能不会触发(或触发较弱,具体取决于网络类型)。

这种对输入缺陷的抵抗力的一个例子是 **联想记忆**,这是 RNN 的常见用途。其思想是使用反馈信息来“填补空白”。

另一个相关但不同的反馈用途是 **抑制信号**,由此给定的神经元可以学习到,虽然它的所有其他输入都会促使它触发,但来自网络某些其他部分的特定反馈输入通常表明在某种程度上其他输入不可信(在这种特定情况下)。

反馈的另一个极其重要的用途是,在某些架构中,它可以**为系统引入时间元素**。特定的[反馈]输入可能不会过多地指示神经元“现在”的想法,而是“提醒”神经元,比如说,两个周期前(无论周期代表什么),网络的状态(或其一个子状态)是“X”。这种“记住”[通常]最近过去的能力是抵抗输入噪声的另一个因素,但其主要兴趣可能在于将“预测”引入学习过程。这些时间延迟的输入可以被视为来自网络其他部分的预测:“我听到走廊里有脚步声,预计会听到门铃声[或钥匙的沙沙声]”。

(*) 顺便说一句,在“规则”中允许的连接(无论是反馈还是前馈)的这种广泛自由解释了 **为什么有如此多的不同 RNN 架构** 及其变体)。这些不同架构的另一个原因是,与前馈模型相比,RNN 在数学或其他方面不易于处理。因此,在数学见解或纯粹的试错方法的驱动下,人们正在尝试许多不同的可能性。

这并不是说反馈网络是完全的黑盒子,事实上,某些 RNN(例如 Hopfield 网络)得到了很好的理解。只是数学通常更复杂(至少对我来说是这样 ;-))

我认为以上内容通常(太笼统了!)解决了 @用户名(提问者)关于“RNN 的作用是什么”以及“它们通常用于哪些任务”的问题。为了补充此信息,以下是对 RNN 应用的不完整且非正式的调查。收集此类列表的困难是多方面的:

  • 前馈网络和 RNN 之间的应用重叠(因此隐藏了 RNN 的特殊性)
  • 应用程序通常高度专业化(我们要么停留在诸如“分类”之类的太广泛的概念中,要么深入研究“饱和苯系列中碳位移的预测” ;-))
  • 在庸俗化文本中描述时,通常与神经网络相关的炒作

无论如何,这是列表

  • 建模,特别是[通常是非线性]动态系统的学习
  • 分类(现在,FF Net 也用于此……)
  • 组合优化

此外,还有许多与 RNN 的时间维度相关的应用(通常不会发现 FF 网络的另一个领域)

  • 运动检测
  • 负载预测(如公用事业或服务:预测短期内的负载)
  • 信号处理:滤波和控制

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中创建了一个多类分类项目。该项目可以对…

发表回复

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