强化学习(七)时序差分离线控制算法QLearning刘建平Pinard

Q-Learning这一篇对应Sutton书的第六章部分和UCL强化学习课程的第五讲部分。

Q-Learning算法是一种使用时序差分求解强化学习控制问题的方法,回顾下此时我们的控制问题可以表示为:给定强化学习的5个要素:状态集$S$,动作集$A$,即时奖励$R$,衰减因子$\gamma$,探索率$\epsilon$,求解最优的动作价值函数$q_{*}$和最优策略$\pi_{*}$。

这一类强化学习的问题求解不需要环境的状态转化模型,是不基于模型的强化学习问题求解方法。对于它的控制问题求解,和蒙特卡罗法类似,都是价值迭代,即通过价值函数的更新,来更新策略,通过策略来产生新的状态和即时奖励,进而更新价值函数。一直进行下去,直到价值函数和策略都收敛。

再回顾下时序差分法的控制问题,可以分为两类,一类是在线控制,即一直使用一个策略来更新价值函数和选择新的动作,比如我们上一篇讲到的SARSA,而另一类是离线控制,会使用两个控制策略,一个策略用于选择新的动作,另一个策略用于更新价值函数。这一类的经典算法就是Q-Learning。

对于Q-Learning,我们会使用$\epsilon-$贪婪法来选择新的动作,这部分和SARSA完全相同。但是对于价值函数的更新,Q-Learning使用的是贪婪法,而不是SARSA的$\epsilon-$贪婪法。这一点就是SARSA和Q-Learning本质的区别。

Q-Learning算法的拓补图入下图所示:

首先我们基于状态$S$,用$\epsilon-$贪婪法选择到动作$A$,然后执行动作$A$,得到奖励$R$,并进入状态$S'$,此时,如果是SARSA,会继续基于状态$S'$,用$\epsilon-$贪婪法选择$A'$,然后来更新价值函数。但是Q-Learning则不同。

对于Q-Learning,它基于状态$S'$,没有使用$\epsilon-$贪婪法选择$A'$,而是使用贪婪法选择$A'$,也就是说,选择使$Q(S',a)$最大的$a$作为$A'$来更新价值函数。用数学公式表示就是:$$Q(S,A)=Q(S,A)+\alpha(R+\gamma\max_aQ(S',a)-Q(S,A))$$

对应到上图中就是在图下方的三个黑圆圈动作中选择一个使$Q(S',a)$最大的动作作为$A'$。

此时选择的动作只会参与价值函数的更新,不会真正的执行。价值函数更新后,新的执行动作需要基于状态$S'$,用$\epsilon-$贪婪法重新选择得到。这一点也和SARSA稍有不同。对于SARSA,价值函数更新使用的$A'$会作为下一阶段开始时候的执行动作。

下面我们对Q-Learning算法做一个总结。

下面我们总结下Q-Learning算法的流程。

算法输入:迭代轮数$T$,状态集$S$,动作集$A$,步长$\alpha$,衰减因子$\gamma$,探索率$\epsilon$,

输出:所有的状态和动作对应的价值$Q$

1.随机初始化所有的状态和动作对应的价值$Q$.对于终止状态其$Q$值初始化为0.

2.forifrom1toT,进行迭代。

a)初始化S为当前状态序列的第一个状态。

b)用$\epsilon-$贪婪法在当前状态$S$选择出动作$A$

c)在状态$S$执行当前动作$A$,得到新状态$S'$和奖励$R$

d)更新价值函数$Q(S,A)$:$$Q(S,A)+\alpha(R+\gamma\max_aQ(S',a)-Q(S,A))$$

e)$S=S'$

f)如果$S'$是终止状态,当前轮迭代完毕,否则转到步骤b)

绝大部分代码和SARSA是类似的。这里我们可以重点比较和SARSA不同的部分。区别都在episode这个函数里面。

首先是初始化的时候,我们只初始化状态$S$,把$A$的产生放到了while循环里面,而回忆下SARSA会同时初始化状态$S$和动作$A$,再去执行循环。下面这段Q-Learning的代码对应我们算法的第二步步骤a和b:

#playforanepisodedefepisode(q_value):#trackthetotaltimestepsinthisepisodetime=0#initializestatestate=STARTwhilestate!=GOAL:#chooseanactionbasedonepsilon-greedyalgorithmifnp.random.binomial(1,EPSILON)==1:action=np.random.choice(ACTIONS)else:values_=q_value[state[0],state[1],:]action=np.random.choice([action_foraction_,value_inenumerate(values_)ifvalue_==np.max(values_)])接着我们会去执行动作$A$,得到$S'$,由于奖励不是终止就是-1,不需要单独计算。,这部分和SARSA的代码相同。对应我们Q-Learning算法的第二步步骤c:

next_state=step(state,action)defstep(state,action):i,j=stateifaction==ACTION_UP:return[max(i-1-WIND[j],0),j]elifaction==ACTION_DOWN:return[max(min(i+1-WIND[j],WORLD_HEIGHT-1),0),j]elifaction==ACTION_LEFT:return[max(i-WIND[j],0),max(j-1,0)]elifaction==ACTION_RIGHT:return[max(i-WIND[j],0),min(j+1,WORLD_WIDTH-1)]else:assertFalse后面我们用贪婪法选择出最大的$Q(S',a)$,并更新价值函数,最后更新当前状态$S$。对应我们Q-Learning算法的第二步步骤d,e。注意SARSA这里是使用$\epsilon-$贪婪法,而不是贪婪法。同时SARSA会同时更新状态$S$和动作$A$,而Q-Learning只会更新当前状态$S$。

values_=q_value[next_state[0],next_state[1],:]next_action=np.random.choice([action_foraction_,value_inenumerate(values_)ifvalue_==np.max(values_)])#Sarsaupdateq_value[state[0],state[1],action]+=\ALPHA*(REWARD+q_value[next_state[0],next_state[1],next_action]-q_value[state[0],state[1],action])state=next_state跑完完整的代码,大家可以很容易得到这个问题的最优解,进而得到在每个格子里的最优贪婪策略。

现在SARSA和Q-Learning算法我们都讲完了,那么作为时序差分控制算法的两种经典方法吗,他们都有说明特点,各自适用于什么样的场景呢?

Q-Learning直接学习的是最优策略,而SARSA在学习最优策略的同时还在做探索。这导致我们在学习最优策略的时候,如果用SARSA,为了保证收敛,需要制定一个策略,使$\epsilon-$贪婪法的超参数$\epsilon$在迭代的过程中逐渐变小。Q-Learning没有这个烦恼。

另外一个就是Q-Learning直接学习最优策略,但是最优策略会依赖于训练中产生的一系列数据,所以受样本数据的影响较大,因此受到训练数据方差的影响很大,甚至会影响Q函数的收敛。Q-Learning的深度强化学习版DeepQ-Learning也有这个问题。

在学习过程中,SARSA在收敛的过程中鼓励探索,这样学习过程会比较平滑,不至于过于激进,导致出现像Q-Learning可能遇到一些特殊的最优“陷阱”。比如经典的强化学习问题"CliffWalk"。

在实际应用中,如果我们是在模拟环境中训练强化学习模型,推荐使用Q-Learning,如果是在线生产环境中训练模型,则推荐使用SARSA。

对于Q-Learning和SARSA这样的时序差分算法,对于小型的强化学习问题是非常灵活有效的,但是在大数据时代,异常复杂的状态和可选动作,使Q-Learning和SARSA要维护的Q表异常的大,甚至远远超出内存,这限制了时序差分算法的应用场景。在深度学习兴起后,基于深度学习的强化学习开始占主导地位,因此从下一篇开始我们开始讨论深度强化学习的建模思路。

(欢迎转载,转载请注明出处。欢迎沟通交流:liujianping-ok@163.com)

THE END
1.人工智能三大算法机器学习深度学习与强化学习的融合与应用前景人工智能三大算法的概述 人工智能(AI)作为一个多学科交叉领域,其核心在于模拟人类智能行为。随着技术的发展,人们提出了许多不同类型的人工智能方法,其中机器学习、深度学习和强化学习是其中最为重要的三个子集,它们分别代表了从基础到高级别的人工智能技术。 机器学习https://www.xstkmqmgl.cn/zhi-neng/481943.html
2.解析人工智能三大算法机器学习深度学习与强化学习的核心之旅解析人工智能三大算法:机器学习、深度学习与强化学习的核心之旅 人工智能三大算法是现代计算机科学领域中的重要组成部分,它们分别是机器学习、深度学习和强化学习。每种算法都有其独特的特点和应用场景,共同推动了人工智能技术的发展。 机器学习:数据驱动的革命 机器学https://www.fmovhaqkz.com/shou-ji/530948.html
3.多智能体强化学习知乎mob6454cc70863a的技术博客多智能体强化学习知乎 系统简介 基于ROBO-MAS多智能体自主协同高频投影定位系统通过采用ROBO-MAS桌面型群体智能机器人,在小型实验场地内通过高频光电投影定位技术实现机器人位置感知和数据通讯,实现“开放式群体智能研究和多智能体自主协同”的研究目标。 系统为群体智能研究和多机器人任务协同研究搭建基础科研平台,系统完全https://blog.51cto.com/u_16099271/12897860
4.学习笔记在线强化学习与离线强化学习的异同(3)- 离线强化学习:状态是从历史数据集中提取的特征表示,它用于训练智能体以学习最优策略。这些状态可能包括历史数据中的所有相关信息,但不一定是实时环境中的当前状态。 在线强化学习和离线强化学习在奖励获取方式、评估侧重点、动作选择和状态表示上有所不同,这些区别反映了它们在实际应用中的不同需求和挑战。 https://blog.csdn.net/hzlalb/article/details/136797191
5.离线强化学习因此,离线强化学习(offline reinforcement learning)的目标是,在智能体不和环境交互的情况下,仅从已经收集好的确定的数据集中,通过强化学习算法得到比较好的策略。离线强化学习和在线策略算法、离线策略算法的区别如图 18-1 所示。图18-1 离线强化学习和在线策略算法、离线策略算法的区别https://hrl.boyuai.com/chapter/3/%E7%A6%BB%E7%BA%BF%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/
6.2020届计算机科学方向毕业设计(论文)阶段性汇报推荐系统与用户进行多步交互的过程可以建模为马尔科夫决策过程并使用强化学习算法训练推荐策略,但在真实的工业界场景中,在线上进行强化学习模型的训练成本极高。本课题希望使用推荐系统与用户交互的历史数据离线训练强化学习算法,并探讨这一模式的问题解决方式。 https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
7.在对齐AI时,为什么在线方法总是优于离线方法?在线算法与离线算法的对比 要公平地比较在线和离线算法并非易事,因为它们存在许多实现和算法方面的差异。举个例子,在线算法所需的计算量往往大于离线算法,因为它需要采样和训练另一个模型。因此,为了比较公平,需要在衡量性能时对不同算法所耗费的预算进行一定的校准。 https://m.thepaper.cn/newsDetail_forward_27434433
8.科学网—[转载]强化学习在资源优化领域的应用基于这种行业趋势,本文针对强化学习算法在资源优化领域的应用展开调研,帮助读者了解该领域最新的进展,学习如何利用数据驱动的方式解决资源优化问题。鉴于资源优化问题场景众多、设定繁杂,划分出3类应用广泛的资源优化问题,即资源平衡问题、资源分配问题、装箱问题,集中进行调研。在每个领域阐述问题的特性,并根据具体的问题特性https://blog.sciencenet.cn/blog-3472670-1312677.html
9.基于深度强化学习的水面无人艇路径跟踪方法4.为此,公开号为cn113625725a的中国专利就公开了《一种水面无人艇路径跟踪控制方法》,包括:设定期望跟踪路径,将期望跟踪路径离散化形成期望路径点阵;判断无人艇距离期望路径点阵的起始点的距离;根据设计参数和无人艇位置确定参考点的位置,根据路径曲率信息求得参考点处的曲率,然后根据制导算法公式求得加速度:计算由加https://www.xjishu.com/zhuanli/54/202210772926.html/
10.屏南县公安局信息化采购项目附件配套人像识别及微卡口系统AI算法识别及分析许可。 路 14 8 分布式数据转发节点 配套感知终端进行分布式设备注册及数据转发,单节点提供HCI超融合节点融合计算。节点提供基于互联网社区、校园等区域标准地址管理、实有单位管理、感知设备实时监测、设备在线率统计、感知数据接入、清洗、上传、人员名单库管理、巡检任务管理、故http://zfcg.czj.ningde.gov.cn/upload/document/20200807/9d142b566de140818484e071d457a4c2.html
11.清华北大等发布SelfPlay强化学习最新综述**自博弈(self-play)指的是智能体通过与自身副本或历史版本进行博弈而进行演化的方法,近年来在强化学习领域受到广泛重视。这篇综述首先梳理了自博弈的基本背景,包括多智能体强化学习框架和博弈论的基础知识。随后,提出了一个统一的自博弈算法框架,并在此框架下对现有的自博弈算法进行了分类和对比。此外,通过展示自博https://zhuanzhi.ai/vip/9dcf45a53259c483e9ab51efb4835006
12.一种用于医学数据的强化学习算法模型构建方法和设备专利在线阅读 下载 引用 收藏 分享 打印 摘要:本发明涉及医学数据技术领域,具体涉及一种用于医学数据的强化学习算法模型构建方法和设备,在本申请中,结合了BCQ和CQL两种算法的优势,减少了离线强化学习中的外推误差,使得强化学习模型生成更合理的动作;并且为强化学习算法模型建立了损失函数,提升了原始动作的评分,降低了生成动https://d.wanfangdata.com.cn/patent/CN202311576836.1
13.基于可变保守程度离线强化学习的机器人运动控制方法为了解决以保守Q学习(Conservative Q-Learning, CQL)为代表的离线强化学习算法保守程度固定不变,导致学习到的策略过于保守的问题,文中提出了一种名为可变保守程度Q学习(Variable Conservativeness Q-Learning, VCQL)的离线强化学习算法。VCQL算法在CQL算法的基础上引入了对于状态动作对偏离数据集的程度衡量,并能够根据偏https://wap.cnki.net/touch/web/Journal/Article/JZDF20240510007.html
14.2020年媒体技术趋势报告:13大领域89项变革全输出总部位于瑞士的Tamedia的记者在本国2018年大选期间尝试采用了生成技术。Tamedia用一个名为“ Tobi”的决策树算法自动生成了文章,详细描述了由私人媒体组织的30家报纸所涵盖的每个城市的投票结果,并同时生成了多种语言、总计39,996个不同版本的选举报道,每篇平均250字,并将其发布到Tamedia的在线平台上。 https://36kr.com/p/5267903