强化学习-无模型控制(下)
来源:互联网 发布:大数据麦肯锡定义 编辑:程序博客网 时间:2024/05/16 15:37
2.在线策略学习
2.1.ε -蒙特卡洛控制
有了上一节的引导,我们现在可以提出一个基于
- 随机选择一个策略
π - 依据该策略执行一个状态周期,并估算各个状态的价值
- 使用
ε 贪婪探索进行优化
2.1.1.sarsa
有了之前蒙特卡洛控制的经验,很容易想到,把其中蒙特卡洛预测的部分替换成时间差分,那不就可以完成时间差分控制了么。使得,而且这个算法有一个新名字,叫做sarsa。和蒙特卡洛控制有所区别的是,这里我们使用动作价值函数Q
实际上就是在一个马尔科夫过程
以:
sarsa算法主要流程如下:
- 初始化动作收益函数Q(s,a),一般初始化为0
- 对每一个episode
- 初始化状态S
- 用
ε 贪婪探索决定一个动作 - 对episode中的每个动作状态
- 进行决定的行为,并观察结果
- 更新动作价值函数
Q(S,A)←Q(S,A)+α(R+γQ(S′,A′)−Q(S,A))
当srasa的观察步骤拓展到整个动作状态周期时候,sarsa就和蒙特卡洛方法一致了。
2.1.2.Q-learing
和sarsa比较的话,Q-learing其实没有做很大的改进,其主要就是变化了下状态更新公式,成了:
也就是说每次用于更新的真值估计变成了收益加上本状态最大的收益函数(不论什么动作)。其他和sarsa还是一样的
3.离线策略学习
有了在线策略学习,为什么还要花心思研究离线策略学习呢。很简单,在线策略是一个不断学习优化的过程,从之前的算法我们也可以看书,由于没有先验知识,很多参数我们都是随机初始化或者全部置0的,但是,这样的话就很难把我们的经验用在实际控制里面了。离线策略学习正是为了解决这样一个问题,它希望将之前的经验全部利用起来,先得到一个较为准确的策略,之后再以此为基础优化。值得注意一点的是,在这里我们的经验就并非是同一个策略所得到的经验了,而是使用不同策略所得到的经验,所以离线策略学习想要利用不同策略经验的话,首先就要学会如何从不同策略中选择出较好的那一个进行学习。
而离线策略学习主要要解决的问题就在于通过其他策略经验
重要性采样
关于重要性采样的详细介绍读者请跳转我的另一篇文章:http://blog.csdn.net/ArtistA/article/details/51570878
这样,重要性采样下的收益可以表达为:
于是,另一策略所提供的本策略的更新公式可以表达为:
进一步,改写成一个时间差分形式,有:
于是,我们也可以使用其他策略的经验进行学习了。
这次的分析就到这里,下次我们将把ROS-rl-agent里面的东西拆开来,进入实战分析。
- 强化学习-无模型控制(下)
- 强化学习-无模型控制(上)
- 强化学习和控制
- 监督学习、无监督学习、强化学习
- 模型汇总18 强化学习(Reinforcement Learning)基础介绍
- 深度强化学习控制移动机器人
- 强化学习(一)
- 强化学习(二)
- 强化学习ROS实战-RLagent解析(下)
- 监督学习、无监督学习、半监督学习、强化学习
- 【习题集四】无监督学习和强化学习
- 模型汇总19 强化学习(Reinforcement Learning)算法基础及分类
- 深度强化学习中的NAF算法-连续控制(对DQN的改进)
- 深度强化学习系列(一):强化学习概述
- 深度强化学习系列(二):强化学习基础
- 浅谈强化学习(一)
- 强化学习基础(二)
- 强化学习(一) ----- 基本概念
- 关于WebHDFS与HttpFS
- android上传图片压缩图片大小
- 强化学习-无模型控制(上)
- 【leetcode】169. Majority Element
- js 对象借用方法和sessionStorage用法。
- 强化学习-无模型控制(下)
- 输入两个学生的学号,成绩,输出成绩较高的学生的学号姓名和成绩
- 安卓开发者赚钱之道
- 在action中必须是protected
- C++第七次上机实验
- 【Linux】搭建本地yum源
- 【DRP】将DRP物理模型导出SQL脚本
- php基础-错误处理
- ubuntu16.04系统开机有1分30秒的等待时间