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

What is the difference between reinforcement learning and deep RL?

深度强化学习和强化学习有什么区别?我基本上知道强化学习是什么,但是具体术语 deep 在这种情况下代表什么?

强化学习

在强化学习中,代理会尝试在给定状态下采取最佳行动。

例如,在视频游戏 Pac-Man 中,状态 space 将是您所在的 2D 游戏世界、周围的物品(pac-dots、敌人、墙壁等)和动作将穿过那个 2D space(去 up/down/left/right)。

因此,鉴于游戏世界的状态,智能体需要选择最佳动作来最大化奖励。通过强化学习的反复试验,它通过这些 (state, action) 对累积 "knowledge",例如,它可以判断给定 (state, action) 对是否会有正面或负面的奖励。我们称这个值为 Q(state, action).

存储这些知识的基本方法是 table,如下所示

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

(state, action)space可以很大

然而,当游戏变得复杂时,知识 space 会变得庞大,存储所有 (state, action) 对不再可行。如果你粗略地考虑一下,即使是稍微不同的状态仍然是一个不同的状态(例如,敌人通过同一条走廊的不同位置)。您可以使用可以概括知识的东西,而不是 存储 查找 每个不同的小状态。

因此,您可以做的是创建一个神经网络,例如预测输入的奖励 (state, action)(或选择给定状态的最佳动作,但是你喜欢看它)

用神经网络逼近 Q

因此,您实际上拥有的是一个神经网络,它预测Q,基于输入(state, action)。这比我们在上面 table 中所做的那样存储每个可能的值要多得多 tractable。

Q = neural_network.predict(state, action)

深度强化学习

深度神经网络

为了能够对复杂的游戏做到这一点,NN 可能需要 "deep",这意味着一些隐藏层可能不足以捕获该知识的所有复杂细节,因此使用深度NN(很多隐藏层)。

额外的隐藏层允许网络在内部提出可以帮助它学习和概括复杂问题的特征,这在浅层网络上可能是不可能的。

结束语

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

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


流行的强化学习算法使用函数 Q(s,a) 或 V(s) 来估计 Return(折扣奖励总和)。该函数可以通过离散输入和输出的表格映射来定义。但是,这限制了连续状态或 infinite/large 个状态。对于大量状态,需要更通用的方法。

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

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