强化学习--QLearning
1.概述:
QLearning基于值函数的方法,不同与policy gradient的方法,Qlearning是预测值函数,通过值函数来选择
值函数最大的action,而policy gradient直接预测出action。
目标就是选择出最佳action。
2一些定义
2.1值函数
Given an actor π, it evaluates how good the actor is
有2种值函数,V(S) 、Q(s,a).
2.1.1 V(S)
有2种衡量的方法:
MC方法只能等玩完一个episode才能进行统计评价,效率比较低。
TD方法可以每玩一步就更新一次。
mc与td对比,mc需要估计的是一个episode的值函数,方差比较大,而td是与时间相关的,只有r是需要估计的,方差比较小。
下面看一下例子:
V(Sb)=6/8=1
MC: V(Sa)=0/2=0
TD: V(Sa)=V(Sb)+0=3/4
2.1.2 Q(s,a)
我们可以评估,在当前状态s,采取行动a,在接下来的游戏中获得得奖励累计和的期望为Q(s,a)。但在接下来的游戏中,
不一定采取行动a,而是采取Q值最大的行动。
下图中1,无论采取那个行动都无所谓,因为离球还很远,而图2离球比较近了,我们需要向上接到球,接下来游戏才能获得奖励。
3 怎么用
我们利用PI去与环境互动,得到一些互动数据,通过TDorMC的方法去更新Q(s,a)的参数,
根据更新后的Q,我们选择一个更好的pi_new,然后把pi更新为pi_new,再去与环境互动。
tips:pi_new 是完全取决于Q,没有新参数。
3.1 target network
3.2 Epsilon Greedy
如果我们只选择Q值最大的action,如果碰巧其他的action没有被采样到,这样其他的action将更不会被选择,
并不是他们不好,所以需要打破这种循环,我们以一定的几率选择Q最大的,还有几率选择其他的action。
3.3 Replay Buffer
我们将历史数据存到Buffer里,然后训练的时候随机选一批,还要定期更新Buffer
3.4 完整算法
4 QLeaning 进阶
参考:
链接:https://www.zhihu.com/question/49787932/answer/124727629
https://www.youtube.com/watch?v=2-zGCx4iv_k&list=PLJV_el3uVTsODxQFgzMzPLa16h6B8kWM_&index=4
强化学习--QLearning的更多相关文章
- 强化学习 - Q-learning Sarsa 和 DQN 的理解
本文用于基本入门理解. 强化学习的基本理论 : R, S, A 这些就不说了. 先设想两个场景: 一. 1个 5x5 的 格子图, 里面有一个目标点, 2个死亡点二. 一个迷宫, 一个出发点, ...
- 强化学习Q-Learning算法详解
python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...
- 强化学习-Q-Learning算法
1. 前言 Q-Learning算法也是时序差分算法的一种,和我们前面介绍的SARAS不同的是,SARSA算法遵从了交互序列,根据当前的真实行动进行价值估计:Q-Learning算法没有遵循交互序列, ...
- 深度学习之强化学习Q-Learning
1.知识点 """ 1.强化学习:学习系统没有像很多其他形式的机器学习方法一样被告知应该做什么行为, 必须在尝试之后才能发现哪些行为会导致奖励的最大化,当前的行为可能不仅 ...
- 强化学习——Q-learning算法
假设有这样的房间 如果将房间表示成点,然后用房间之间的连通关系表示成线,如下图所示: 这就是房间对应的图.我们首先将agent(机器人)处于任何一个位置,让他自己走动,直到走到5房 ...
- 强化学习-Q-learning学习笔记
Q学习动作探索策略中的ep-greepy,以ep的概率进行随机探索,以1-ep的概率以最大值策略进行开发,因为设定的迭代次数比较多,所以肯定存在一定的次数去搜索不同的动作. 1)Python版本 b站 ...
- 强化学习之Q-learning简介
https://blog.csdn.net/Young_Gy/article/details/73485518 强化学习在alphago中大放异彩,本文将简要介绍强化学习的一种q-learning.先 ...
- 强化学习之QLearning
注:以下第一段代码是 文章 提供的代码,但是简书的代码粘贴下来不换行,所以我在这里贴了一遍.其原理在原文中也说得很明白了. 算个旅行商问题 基本介绍 戳 代码解释与来源 代码整个计算过程使用的以下公式 ...
- (译) 强化学习 第一部分:Q-Learning 以及相关探索
(译) 强化学习 第一部分:Q-Learning 以及相关探索 Q-Learning review: Q-Learning 的基础要点是:有一个关于环境状态S的表达式,这些状态中可能的动作 a,然后你 ...
随机推荐
- [git] 关闭 git branch 的pager
高版本的git做了pager的调整. git diff git log git branch 等命令都用了pager, 默认的pager用了less 在我的应用里, 通常branch只有那么3,5个. ...
- 2018/09/13《涂抹MySQL》【MySQL复制特性】学习笔记(六)
推荐一首歌 - <可不可以>张紫豪 好吧,随便从排行榜上找了一首 读 第十一章<MySQL的复制特性> 总结 1:复制(Replication) 应用场景? - 提高性能 (通 ...
- mybatis传入某一列的值,然后设置这一列的值是这个
select '${action}' as action from table name parameterType="map"可以指定为map,然后这边就可以用${xxx}来取值 ...
- LEO原创-FMX之你不知道的ARC
LEO原创13498714 FMX加入了ARC技术,对象创建后不用释放,FMX会帮你释放,是不是这样就不用关心对象的释放了呢,非也! 写简单的代码,这个功能也许很好用,但如果你写的是一个项目,那隐藏的 ...
- caffe编译报错解决
添加ssd中的一些层之后,编译报错: ../lib/libcaffe.so.1.0.0-rc5:对‘boost::match_results<__gnu_cxx::__normal_iterat ...
- awk 和 sed (Stream Editor)
1.sed pattern space(模式空间)相当于车间sed把流内容在这里处理: hold space(保留空间)相当于仓库,加工的半成品在这里临时储存(当然加工完的成品也在这里存储). h/H ...
- block详解
Objective-C 中 Block 有三种类型: NSStackBlock 存储于栈区 NSGlobalBlock 存储于程序数据区 NSMallocBlock 存储于堆区 block 内部没有引 ...
- MongoDB limit 选取 skip跳过 sort排序 方法
MongoDB limit 选取 skip跳过 sort排序 在mysql里有order by MongoDB用sort代替order by > db.user.find() { " ...
- 报错解决——Disconnected:No supported authentication methods available
该问题是由于ssh链接未允许远程密码认证导致的 解决方法 通过管理控制台进入系统,查看 /etc/ssh/sshd_config配置文件中是否包含以下配置 PasswordAuthentication ...
- IOP开发数据库--20180105整理
http://10.110.22.12/cloud-web/#/login/tenant 数据库 代理节点 10.110.22.12 数据库 10.110.22.12 dev/ro ...