强化学习中的蒙特卡洛(monte-carlo)算法和时序差分算法
2017-06-12 09:52
423 查看
【未完成】
最初的想法应该是连续运行多个周期,比如经历了两次(s, a),并且计算了对应的Gt,那么q(s,a)取之平均就可以了,但实际上,为了优化策略或者值函数,不能这样多次采样后直接计算,而是每次采样(一周期)就迭代计算并更新。
forwardview
蒙特卡洛
蒙特卡洛是一类通用算法,思想是通过随机采样逼近真实,这里只介绍在强化学习中的应用。最初的想法应该是连续运行多个周期,比如经历了两次(s, a),并且计算了对应的Gt,那么q(s,a)取之平均就可以了,但实际上,为了优化策略或者值函数,不能这样多次采样后直接计算,而是每次采样(一周期)就迭代计算并更新。
特点
周期性更新:
一整个周期结束了(到达了终点)才回进行一个更新(更新所有经历过的state的value) 所以是无偏估计,所谓无偏估计就是,随机变量的期望就是理想值,有偏估计就是随机变量的期望也不是理想值,不论怎样都有偏差。
First-Visit:
第一个周期经历了 某个状态s,第二个周期也第一次经历了这个状态s,待第二个周期结束之后,计算出了第二个周期s对应的G值 (G = 这一步的reward + 打折系数 ^ 1 * 下一步的reward + 打折系数 ^ 2 * 下下步的reward ... + 打折系数 ^ 从s开始走了多少步 * 最后一步的reward ), 然后更新(把第一个周期s的G和第二个周期的s的G取平均得到状态s的value)。 如果第二个周期在后面又一次经历了这个状态s,不用于计算 即每个周期的s的value的更新都是本次的G和前面所有周期的G值的和取平均
Every-Visit
和First-Visit的区别就是,如果第二个周期在后面又一次经历了这个状态s,同样算的G值加进去取平均,得到value。 即每个周期的s的value的更新都是本周期所有经历过的状态S的G和前面所有周期所有经历过的状态S的G的和取平均。
时序差分
特点:
可以用于非周期,就是没有terminal,学习材料是前面的经历 在周期内就更新,不需要等到整个周期结束; 学习的材料是上一个周期 所以是有偏估计
最简单的时序差分/TD(0)
在本次周期中经历了状态St,现在要根据目标(target)更新St的value 先根据本周的策略向后走一步,那么就处于状态St+1 用于学习的target = 本周期中状态St的reward + 打折系数 * St+1的value(这里的value不一定是上个周期的结果,也可能本周期上次经历了St+1时更新过) 用于学习的误差(error) = 用于学习的target - St 的 value
向后N步的时序差分/TD(N)
现在处于本周期的St状态,那么现在根据本周期的策略向后走N步,那么就处于St+n状态,同时也或者了n步中的n个reward,然后更新St的value
lambda时序差分/TD(λ)
综合使用了TD(N) N从 0 到 无穷(到周期结束), 0 到 无穷赋予不同的权重, 越靠前越大,权重的和 = 1,
forwardview
forwardview 就是上面讲的思想,要求走完整个周期,这样就和蒙特卡洛的要求一样了。 online forward-view : 因为off-line要求走完整个周期,在实际情况中不好用,所以又提出了online-forward-view,就是对步数进行截断,不走到结束,而是从t往后走h步,把t+h当做终点带入forward-view,公式即可。
backwardview
backwardview逼近off-line的TD(λ)。 在每个周期开始,资格迹初始化为0,之后每一步增加一个value的梯度,上一步的资格迹在下一步乘上了一个打折系数。这样看,资格迹就是对value的梯度的修正,在更新公式中代替value梯度的位置。 True on-line TD(λ): online forward-view 是理论上准确率很高的算法,但是计算量很大,可以考虑使用资格迹,公式太过复杂,不写了
相关文章推荐
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
- 【强化学习】MCTS (Monte Carlo Tree Search)
- 强化学习(七)时序差分离线控制算法Q-Learning
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 深度强化学习中的DQN系列算法
- java算法3_蒙特卡洛方法(Monte Carlo method)求PI和椭圆面积
- 强化学习策略梯度方法之: REINFORCE 算法
- 蒙特卡洛方法(Monte Carlo Method)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 深度强化学习中的NAF算法-连续控制(对DQN的改进)
- (转)Monte Carlo method 蒙特卡洛方法
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- Monte Carlo Sampling Methods-- 蒙特卡洛采样方法
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 蒙特卡洛方法 (Monte Carlo Method)