【发布时间】:2016-10-24 16:40:59
【问题描述】:
深度强化学习和强化学习有什么区别?我基本上知道强化学习是关于什么的,但是具体的术语 deep 在这种情况下代表什么?
【问题讨论】:
标签: machine-learning reinforcement-learning q-learning
深度强化学习和强化学习有什么区别?我基本上知道强化学习是关于什么的,但是具体的术语 deep 在这种情况下代表什么?
【问题讨论】:
标签: machine-learning reinforcement-learning q-learning
在强化学习中,代理尝试在给定状态下提出最佳行动。
例如,在视频游戏吃豆人中,状态空间是您所在的 2D 游戏世界、周围的物品(pac-dots、敌人、墙壁等),动作将在该 2D 中移动空间(上/下/左/右)。
因此,鉴于游戏世界的状态,代理需要选择最佳动作来最大化奖励。通过强化学习的反复试验,它通过这些(state, action) 对积累“知识”,例如,它可以判断给定(state, action) 对是否会有积极或消极的奖励。我们称这个值为Q(state, action)。
存储这些知识的基本方法是如下表
state | action | Q(state, action)
---------------------------------
... | ... | ...
(state, action) 空间可以很大
但是,当游戏变得复杂时,知识空间会变得巨大,存储所有(state, action) 对不再可行。如果您从根本上考虑它,即使是稍微不同的状态仍然是不同的状态(例如,通过同一条走廊的敌人的不同位置)。您可以使用可以概括知识的东西,而不是存储和查找每个小的不同状态。
所以,你可以做的是创建一个神经网络,例如预测输入 (state, action) 的奖励(或选择给定状态的最佳动作,但你喜欢看它)
使用神经网络逼近 Q 值
因此,您实际上拥有的是 一个基于输入 (state, action) 来预测Q 值的 NN。这比我们在上表中存储每个可能的值更容易处理。
Q = neural_network.predict(state, action)
深度神经网络
为了能够为复杂的游戏做到这一点,神经网络可能需要“深度”,这意味着一些隐藏层可能不足以捕获该知识的所有复杂细节,因此使用深度神经网络(大量隐藏层)。
额外的隐藏层允许网络在内部提出可以帮助它学习和概括在浅层网络上可能无法解决的复杂问题的功能。
简而言之,深度神经网络允许将强化学习应用于更大的问题。您可以使用任何函数逼近器而不是 NN 来逼近 Q,如果您确实选择了 NN,则它绝对不一定是深度的。只是研究人员最近在使用它们方面取得了巨大成功。
【讨论】:
总结:深度强化学习使用深度神经网络来逼近 Q(s,a)。 非深度强化学习使用表格函数定义 Q(s,a)。
流行的强化学习算法使用函数 Q(s,a) 或 V(s) 来估计回报(折扣奖励的总和)。该函数可以通过离散输入和输出的表格映射来定义。但是,这对于连续状态或无限/大量状态是有限的。对于大量状态,需要更通用的方法。
函数逼近用于大状态空间。一种流行的函数逼近方法是神经网络。您可以通过添加许多隐藏层来制作深度神经网络。
因此,深度强化学习使用函数逼近,而不是表格函数。具体来说,DRL 使用深度神经网络来逼近 Q 或 V(甚至是 A)。
【讨论】: