强化学习和深度强化学习有什么区别?

35

深度强化学习和强化学习有什么区别?我基本上知道强化学习是什么,但在这个背景下,具体术语“深度”代表什么意思?

2个回答

75

强化学习

在强化学习中,一个智能体试图在给定状态下找到最佳的行动。

例如,在游戏《吃豆人》中,状态空间将是您所处的二维游戏世界、周围的物品(豆子、敌人、墙壁等),而行动将是在这个二维空间中移动(向上/向下/向左/向右)。

因此,根据游戏世界的状态,智能体需要选择最佳行动以最大化奖励。通过强化学习的试错过程,它通过这些 (state, action) 对积累了"知识",即,它可以告诉我们在给定的(state, action) 的情况下会有正面还是负面的奖励。我们称这个值为 Q(state, action)

一种存储这些知识的简单方法是像下面这样的表格:

state | action | Q(state, action)
---------------------------------
  ... |   ...  |   ...

"(状态,行动)"空间可能非常大。

然而,当游戏变得复杂时,知识空间可能会变得巨大,不再可行存储所有的(状态,行动)对。如果你用原始术语思考,即使是稍微不同的状态仍然是一个独立的状态(例如,敌人通过同一走廊的不同位置)。你可以使用某些可以概括知识的方法,而不是存储和查找每个小的不同状态。

所以,你可以创建一个神经网络,例如预测输入的(状态,行动)的奖励(或选择给定状态的最佳行动,无论你想如何看待它)

用神经网络来逼近Q

因此,实际上你拥有一个神经网络,该网络基于输入的(状态,行动),预测 Q。这比以上表格中存储每个可能值要容易处理得多。

Q = neural_network.predict(state, action)

深度强化学习

深度神经网络

为了能够处理复杂的游戏,神经网络可能需要是"深层的",这意味着仅使用一些隐藏层可能不足以捕捉到所有复杂的知识细节,因此使用深度神经网络(有很多隐藏层)。

额外的隐藏层使得网络可以内部生成能够帮助其学习和概括复杂问题的特征,这在浅层网络上可能是不可能的。

结束语

简而言之,深度神经网络允许强化学习应用于更大的问题。您可以使用任何函数逼近器来逼近 Q,如果您选择使用神经网络,它并不一定需要是一个深度神经网络。只是最近研究人员使用它们获得了巨大的成功。


非常感谢您的全面回答。据我所理解,“深度”是指通过神经网络逼近Q值函数,并且可以在更大的范围内使用强化学习。 - Christopher Klaus
2
"Deep"指的是深度学习中的多层处理。一般来说,我们可以认为“Deep RL”标签可应用于任何具有深度学习组件的RL方案。例如,这篇论文使用深度置信网络作为逼近器。在你问之前 :) - bakkal
1
其他论文:强化学习中的深度自动编码神经网络,也许最著名的是使用深度强化学习玩雅达利游戏,采用了深度(和卷积)神经网络。 - bakkal

12

概述:深度 RL(强化学习)使用深度神经网络来近似 Q(s,a)。非深度 RL 使用表格函数来定义 Q(s,a)。


流行的强化学习算法使用函数 Q(s,a) 或 V(s) 来估计回报(折扣奖励之和)。该函数可以通过离散输入和输出的表格映射来定义。然而,这对于连续状态或大量状态是有限制的。在处理大量状态时,需要更广泛的方法。

函数逼近用于大型状态空间。一种流行的函数逼近方法是神经网络。通过添加许多隐藏层,可以创建深度神经网络。

因此,深度强化学习使用函数逼近,而不是表格函数。具体来说,DRL 使用深度神经网络来近似 Q 或 V(甚至是 A)。


哦,不仅是用于策略的DNN,还有用于替代Q函数的DNN? - Dee
1
你可以对策略函数或价值函数进行函数逼近。或者两者都可以。在这种情况下,通过深度神经网络实现策略逼近。 - Luis B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接