首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于神经网络的幕式半梯度Sarsa

基于神经网络的幕式半梯度Sarsa
EN

Stack Overflow用户
提问于 2017-07-28 15:35:52
回答 1查看 1.7K关注 0票数 6

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

因此,我很想知道如何解决这个伪代码中的第10行Choose A' as a function of q(S', , w)

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

编辑:当使用网络作为逼近器时,我需要修改伪代码吗?所以,我简单地最小化了网络预测的MSE和奖励R,例如?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-29 16:38:13

我想知道如何根据当前学习到的网络权重来选择最优的操作。

你有三个基本选择:

  1. 多次运行网络,对A‘的每个可能值运行一次,使其与您正在考虑的S’值一起运行。以最大值作为预测的最优操作(概率为1-ε,否则随机选择ε-贪婪策略,通常用于SARSA)
  2. 设计网络,一次估计所有的动作值--即有一个(一个或多个)的输出(也许是用来覆盖你需要过滤的“不可能的”动作)。这将稍微改变梯度计算,应该有零梯度应用于最后一层不活跃的输出(即任何不匹配A的(S,A))。同样,只需将最大有效输出作为估计的最佳操作即可。这可能比多次运行网络更有效。这也是最近玩机器人的DQN Atari游戏和AlphaGo的政策网络所采用的方法。
  3. 使用策略梯度法,它的工作方式是使用样本来估计梯度,从而改进策略估计器。您可以查看萨顿和巴托的第二版的第13章以获得更多详细信息。当有大量可能的行为时,策略梯度方法变得有吸引力,并且能够处理连续的行动空间(通过对最优策略的分布函数进行估计,例如选择正态分布的均值和标准差,您可以从中抽样来采取行动)。您还可以将策略梯度与演员批评方法中的状态值方法结合起来,这可以比纯策略梯度方法更有效地学习。

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

当使用网络作为逼近器时,我需要修改伪代码吗?所以,我简单地最小化了网络预测的最小均方误差,比如奖励R

不是的。在伪码中没有单独的损失函数,例如在监督学习中使用的MSE。误差项(通常称为TD错误)是由方括号中的部分给出的,并取得了类似的效果。字面上,术语w) q(S,A,∇(抱歉错过了帽子,在SO上没有LaTex )是指估计量本身的梯度,而不是任何损失函数的梯度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45377404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档