【强化学习】Q-Learning
目录
- Q-Learning(off-policy)
- 概述
- 算法流程
- Q-Learning vs Sarsa
- 小结
强化学习笔记,内容来自 刘建平老师的博客
Q-Learning(off-policy)
概述
关键词: 时序差分、model-free、off-policy、ϵ-greedy、价值迭代
给定强化学习的5个要素:状态集S, 动作集A, 即时奖励R,衰减因子γ, 探索率ϵ, 求解最优的动作价值函数q∗和最优策略π∗
通过价值函数的更新,来更新策略,通过策略来产生新的状态和即时奖励,进而更新价值函数。一直进行下去,直到价值函数和策略都收敛。
首基于状态S,用ϵ−greedy策略选择到动作A,然后执行动作A,得到奖励R,并进入状态S′,此时如果是Sarsa,会继续基于状态S′,用ϵ−greedy策略选择A′,然后来更新价值函数。但是Q-Learning则不同。对于Q-Learning,它基于状态S′,没有使用ϵ−greedy策略而是使用贪婪策略选择A′,也就是说,选择使Q(S′,a)最大的a作为A′来更新价值函数而不存在探索的可能:
off-policy:
价值函数的更新和新动作的选择使用两个不同的策略policy,Q-learning按照ε-greedy策略选择动作、按照贪婪greedy策略更新 价值函数,即更新价值函数的公式中用的A‘ 是贪婪策略选择的而不是ε-greedy。这是Q-learning与Sarsa的本质区别。
算法流程
输入:迭代轮数T、状态集S、动作集A、步长α、衰减因子γ、探索率ϵ
输出:所有的状态和动作对应的价值Q
1. 随机初始化所有的状态和动作对应的价值Q,终止状态的Q初始化为0
2. for i in [ 1, T ]:
a)初始化S为当前序列的第一个状态
b)用ε-greedy策略在当前状态S选择出动作A
c)执行动作A,由环境得到新状态S’ 和奖励R
d)按公式更新价值函数
e)前进一步:S = S’
f)if S’是终止状态,break;else 跳回步骤b
Q-Learning vs Sarsa
Q-Learning直接学习的是最优策略,而Sarsa在学习最优策略的同时还在做探索。这导致在学习最优策略的时候,如果用Sarsa,为了保证收敛,需要制定一个策略,使ϵ−greedy策略的超参数ϵ在迭代的过程中逐渐变小。Q-Learning没有这个烦恼。
另外一个就是Q-Learning直接学习最优策略,但是最优策略会依赖于训练中产生的一系列数据,所以受样本数据的影响较大,因此受到训练数据方差的影响很大,甚至会影响Q函数的收敛。Q-Learning的深度强化学习版Deep Q-Learning也有这个问题。
在学习过程中,Sarsa在收敛的过程中鼓励探索,这样学习过程会比较平滑,不至于过于激进,导致出现像Q-Learning可能遇到一些特殊的最优“陷阱”。比如经典的强化学习问题"Cliff Walk"。
在实际应用中,如果是在模拟环境中训练强化学习模型,推荐使用Q-Learning,如果是在线生产环境中训练模型,则推荐使用SARSA。
小结
对于Q-Learning和Sarsa这样的时序差分算法,对于小型的强化学习问题是非常灵活有效的,但是在大数据时代,异常复杂的状态和可选动作,使Q-Learning和Sarsa要维护的Q表异常的大,甚至远远超出内存,这限制了时序差分算法的应用场景。在深度学习兴起后,基于深度学习的强化学习开始占主导地位。
【强化学习】Q-Learning相关推荐
- 初学者的强化学习q learning和sarsa
Reinforcement learning is a fast-moving field. Many companies are realizing the potential of RL. Rec ...
- 强化学习q学习求最值_通过Q学习更深入地学习强化学习
强化学习q学习求最值 by Thomas Simonini 通过托马斯·西蒙尼(Thomas Simonini) 通过Q学习更深入地学习强化学习 (Diving deeper into Reinfor ...
- 强化学习q学习求最值_Q学习简介:强化学习
强化学习q学习求最值 by ADL 通过ADL Q学习简介:强化学习 (An introduction to Q-Learning: reinforcement learning) This arti ...
- 强化学习 (Reinforcement Learning)
强化学习: 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能 ...
- 强化学习 Reinforcement Learning(三)——是时候用 PARL 框架玩会儿 DOOM 了!!!(下)
强化学习 Reinforcement Learning(三)-- 是时候用 PARL 框架玩会儿 DOOM 了!!!(下) 本文目录 强化学习 Reinforcement Learning(三)-- ...
- 强化学习(Reinforcement Learning)入门知识
强化学习(Reinforcement Learning) 概率统计知识 1. 随机变量和观测值 抛硬币是一个随机事件,其结果为**随机变量 X ** 正面为1,反面为0,若第 i 次试验中为正面,则观 ...
- 强化学习(Reinforcement Learning)入门学习--01
强化学习(Reinforcement Learning)入门学习–01 定义 Reinforcement learning (RL) is an area of machine learning in ...
- 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)
接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率PsaPsa 状态值函数的估计是自举的(bootstrapping),即当 ...
- 强化学习(Reinforcement Learning)
背景 当我们思考学习的本质时,我们首先想到的可能是我们通过与环境的互动来学习.无论是在学习开车还是在交谈,我们都清楚地意识到环境是如何回应我们的行为的,我们试图通过行为来影响后续发生的事情.从互动中学 ...
- 强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!
文章目录 1. 什么是强化学习 2. 强化学习模型 2.1 打折的未来奖励 2.2 Q-Learning算法 2.3 Deep Q Learning(DQN) 2.3.1 神经网络的作用 2.3.2 ...
最新文章
- 爬虫爬取在线小说阅读网站详解
- echarts——父元素宽度100%,但canvas宽度100px
- lokijs可以用mysql_loki 数据库详解
- SpringMVC与Mybatis整合---SpringMVC学习笔记(六)
- 简述hdfs工作原理_HDFS原理篇
- 姑娘美丽人体日志博客_60个美丽诱人的博客设计
- PICK完成,但是状态依然为BACKORDER
- 2013计算机学科排名,2013年世界大学学科排名 计算机科学.pdf
- Unity编辑器(Editor)的问题全解以及使用
- MySQL 数据库管理之 --- SQL 语言进阶一
- java倒计时_详解java倒计时三种简单实现方式
- 真实渗透改编--综合渗透 sql注入写马+文件上传+udf提权 安鸾靶场SQL注入学习
- 【Antv g6】react hook下的useEffect执行初始化渲染 图表渲染了2次的原因及解决办法
- 十年总结(15):产品化-有心杀敌,无力回天
- java如何在控制台重定向_R - 控制台输出重定向不能(可靠地)从函数调用中工作...
- 杨辉三角 118.杨辉三角 119.杨辉三角Ⅱ(数学解法)
- grant with admin option and grant with grant option
- Android实现SIM卡2拨打,android – 在双SIM卡设备中使用指定的SIM拨...
- 【支付FM】个人免签-微信支付宝云闪付 个人二维码收款即时到账
- 【java毕业设计】基于java+Lucene+Tomcat的搜索引擎设计与实现(毕业论文+程序源码)——搜索引擎