machine-learning - 策略梯度方法和基于神经网络的 Action 值方法有什么区别?

标签 machine-learning artificial-intelligence reinforcement-learning q-learning

策略梯度方法和基于神经网络的 Action 值方法有什么区别?

最佳答案

我们需要区分“ Action 选择”和“ Action 值(value)估计”。

Action 值(value)(用Q(s, a)表示)估计在于计算特定 Action 的某种“分数”(通常称为“预期 future 奖励”) a 处于给定状态s。我们只是估计这个值Q(s, a),但我们仍然不知道我们将采取什么行动。

然后,有一个 Action 选择,它是一个函数f,它根据一些信息返回我们执行的 Action 。

名为 Action 值(value)方法的大类是“ Action 选择”方法,当给出 Action 值(value)估计(分数)Q时,它会给我们一个执行的 Action 。这种方法的一个例子是epsilon-greedy方法。此方法以 1 - epsilon 的概率选择操作值(value)得分最高的操作,并以 epsilon 的概率(通常很小)随机选择一个操作。我们使用的唯一信息是 Q 分数。

策略梯度方法执行操作选择。我们提供给f的信息是当前状态s和一些参数theta:f(s, theta)我们可以将这些参数theta想象为神经网络的权重。因此,在实践中,我们将神经网络的权重设置为 theta 的值,将网络状态 s 作为输入并获得一个 Action a 作为输出。这只是策略梯度方法的一个示例。我们不需要任何状态值(value)或行动值(value)估计来获得政策。此外,函数f必须是可微分的。

Actor-Critic方法还执行 Action 选择。与策略梯度方法的区别在于,函数 f 还接受 Action 值估计,即 Q,作为输入:f(s, theta, Q) 。我们需要评估行动值(value)才能采取行动。

您可以在 Sutton 和 Barto 的“强化学习:简介”第 13 章:策略梯度方法中详细了解这些差异。

关于machine-learning - 策略梯度方法和基于神经网络的 Action 值方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50189695/

相关文章:

machine-learning - 我是否应该返回更多建议,然后在精确召回曲线中有相关文档?

python - 如何在 Scikit 中使用交叉验证进行多输出回归?

machine-learning - keras 在优化过程中卡住了

neural-network - 使用神经网络进行 Q 学习

machine-learning - 强化学习中的Q,V(值函数)和奖励之间到底有什么区别?

machine-learning - 如何向神经网络添加更多输出?

machine-learning - Growing Neural Gas 如何用于聚类?

C 语言的国际象棋引擎

python - 具有不同权重的同一 TensorFlow 网络的 2 个版本,并更新其中一个版本

c++ - SARSA的Zeta变量(lamda)