具有神经网络的情景半梯度 Sarsa

zim*_*rol 6 reinforcement-learning neural-network sarsa

在尝试实现Episodic Semi-gradient Sarsa with神经网络作为逼近器时,我想知道如何根据当前学习的网络权重选择最佳动作。如果动作空间是离散的,我可以计算当前状态下不同动作的估计值,并选择给出最大值的那个。但这似乎并不是解决问题的最好办法。此外,如果动作空间是连续的(例如自动驾驶汽车的加速),它就不起作用。

所以,基本上我想知道如何解决Choose A' as a function of q(S', , w)Sutton 伪代码中的第 10 行: 在此输入图像描述

这些问题通常是如何解决的?有人可以推荐一个使用该算法的好例子吗Keras

编辑:使用网络作为逼近器时是否需要修改伪代码?那么,我是否可以简单地最小化MSE网络的预测和奖励R

Nei*_*ter 5

\n

我想知道如何根据当前学习的网络权重选择最佳动作

\n
\n\n

您有三个基本选择:

\n\n
    \n
  1. 多次运行网络,每次针对A'的每个可能值与您正在考虑的S'值相匹配。取最大值作为预测的最优动作(概率为1-\xce\xb5,否则随机选择\xce\xb5-SARSA中常用的贪心策略)

  2. \n
  3. 设计网络以一次性估计所有动作值 - 即具有 | A(s) | 输出(可能会填充以覆盖您需要过滤掉的“不可能”操作)。这将稍微改变梯度计算,应该将零梯度应用于最后一层非活动输出(即任何不匹配(S,A)A的内容)。同样,仅将最大有效输出作为估计的最佳动作。这比多次运行网络更有效。这也是最近的 DQN Atari 游戏机器人和 AlphaGo 的策略网络所使用的方法。

  4. \n
  5. 使用策略梯度方法,该方法通过使用样本来估计梯度来改进策略估计器。您可以参阅Sutton 和 Barto 的《强化学习:简介》第二版的第 13 章了解更多详细信息。当存在大量可能的行动并且可以应对连续的行动空间时,策略梯度方法变得有吸引力(通过估计最优策略的分布函数 - 例如选择正态分布的均值和标准差,您可以从中采样采取行动)。您还可以将策略梯度与演员批评家方法中的状态价值方法结合起来,这比纯粹的策略梯度方法可以成为更有效的学习者。

  6. \n
\n\n

请注意,如果您的操作空间是连续的,则不必使用策略梯度方法,您只需量化操作即可。此外,在某些情况下,即使动作理论上是连续的,您可能会发现最优策略仅涉及使用极值(经典的山地车示例属于此类,唯一有用的动作是最大加速度和最大向后加速度)

\n\n
\n

使用网络作为逼近器时是否需要修改伪代码?那么,我是否可以简单地最小化网络预测和奖励的 MSE R

\n
\n\n

不。伪代码中没有单独的损失函数,例如您在监督学习中看到的 MSE。误差项(通常称为 TD 误差)由方括号中的部分给出,并达到类似的效果。从字面上看,术语 \xe2\x88\x87 q(S,A, w )(抱歉缺少帽子,SO 上没有 LaTex)意味着估计器本身的梯度 - 而不是任何损失函数的梯度。

\n