博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几句话总结一个算法之Q-Learning与Sarsa
阅读量:5348 次
发布时间:2019-06-15

本文共 818 字,大约阅读时间需要 2 分钟。

  • 与Policy Gradients的不同之处在于,这两个算法评估某个状态s执行某个动作a的期望奖励,即Q(s,a)

  • Q(s,a) 有两种方法计算方法,第一种直接查表或者模型预估,Q(s, a) = checkTable(s, a),这个在训练初期是非常不准确的;第二种方法是通过"一步蒙特卡洛"方法获取,假设执行a后状态是s',且s'执行了动作了a',Q’(s, a) = 当前状态奖励 + 衰减系数 * Q(s',a'),近似于一个动态规划问题,当游戏结束,就只有当前状态奖励。但与动态规划不同的是,这个递归关系不会等到游戏结束之后才更新,而是走一步更新一次。

  • Q(s, a)表示了模型根据历史数据的预测奖励,而Q'(s,a)表示对当前行动的预测奖励。一个好的模型,Q(s,a) 和 Q'(s,a)应该尽量接近,同时又为了迭代的稳定性,新的Q(s, a) 更新为老Q(s,a)和Q'(s,a)的一个加权平均值(学习率控制)。

  • 因为这种方法预估的是奖励值而不是概率分布,所以一般采用奖励最大的动作,这个训练带来了问题,因为在某些状态下可能永远只选择某个动作,要解决这个方法,需要引入epsilon-greedy,即以大概率选择最大奖励动作,保证探索的聚焦性,同时以小概率随机选择某个动作,保证探索空间完备性。

  • 由于引入了epsilon-greedy,在Q’(s, a) 迭代公式里,s'该选择哪个动作a‘来计算出现两种选择,是选择最大奖励动作,还是和当前s的选择动作的策略保持一致以小概率随机选择某个动作?

  • 如果在s’选择最大奖励动作的贪心策略,就是Q learning,这个叫异策略(off-policy),如果是和当前s的选择动作的策略保持一致,就是 Sarsa,这种也叫同策略(on-policy)

 

具体理解的例子可以参考:

转载于:https://www.cnblogs.com/daniel-D/p/11002870.html

你可能感兴趣的文章
Linux云自动化运维第十六课
查看>>
1.秋招复习简单整理之红黑树性质
查看>>
hive基础2
查看>>
CocoaPods Mac App的安装和使用
查看>>
python 正则表达式匹配ip
查看>>
Flask实战-留言板-使用Faker生成虚拟数据 --
查看>>
解决VC++6.0 无法打开、无法添加工程文件
查看>>
ORA-01858: a non-numeric character was found where a numeric was expected
查看>>
Structure From Motion(二维运动图像中的三维重建)
查看>>
25复杂链表的复制
查看>>
2 Orchard汉化资源包的使用
查看>>
python3 property
查看>>
自定义控件注意点
查看>>
SSRS 报表 如何匿名查看
查看>>
JVM内存管理机制
查看>>
centos 安装Mysql
查看>>
简单通用Ajax函数
查看>>
【Android】ListView监听上下滑动(判断是否显示返回顶部按钮
查看>>
HBASE的MAPREDUCE任务运行异常解决办法,无需CYGWIN,纯WINDOWS环境
查看>>
禅道在docker上部署与迁移
查看>>