深度强化学习-强化学习基础-SARSA算法(四)

本片主要介绍SARSA算法,蒙特卡洛算法,以及自举的概念。内容比较细,比较基础,大家可以认真看。有不懂的地方可以先看之前的文章。

目录

SARSA: 

SARSA算法和Q学习的对比:

多TD目标:

蒙特卡洛:

自举:


Q学习和SARSA算法都属于TD算法,Q 学习的目的是学习最优动作价值函数,SARSA 的目的是学习动作价值函数。


SARSA: 

我们一般使用\small Q_{\pi }作为确定的策略来控制智能体的运动,但现在\small Q_{\pi }被用来评判策略的优略,不再用于控制智能体。动作价值函数\small Q_{\pi }常和策略函数\small \pi结合使用,被称作 Actor-Critic(演员—评委)方法。策略函数控制智能体,因此被看做“演员”,动作价值函数评价策略函数的表现,帮助改进\small \pi,因此 \small Q_{\pi }被看做“评委”。常用 SARSA 训练“评委”。

SARSA 使用的单步 TD 目标定义为:

其中这个q()实际上是在t时刻对\small Q_{\pi }做出的估计。最终鼓励q()逐渐拟合于\small \hat{y}_{t}


SARSA算法和Q学习的对比:

二者都是既可以应用于表格形式(要求状态数有限),也可用于神经网络。对表格形式的更新也类似:更新为表格中现有的奖励值+学习率*(预测值-表格中的值)。对于神经网络用到梯度下降算法。使用梯度下降算法更新神经网络参数与SARSA算法和Q学习算法无关。

SARSA 是 State-Action-Reward-State-Action 的缩写,因此SARSA算法需要依赖于一个五元组,相较于四元组,多了一个\small a_{t+1}.\small a_{t+1}是根据策略函数\small \pi,在\small s_{t+1}下随机抽样得到的。

SARSA最终目的就是求动作价值函数\small Q_{\pi },而Q 学习的目的是学习最优动作价值函数\small Q_{\bigstar }

Q 学习是异策略,行为策略和目标策略不同。因为Q学习学到的表格Qtable是最优动作价值函数的近似,与策略函数\small \pi无关,因此不论收集经验用的行为策略是什么,都不影响Q学习最终的目标策略。所以Q学习可以反复利用经验回放来进行训练。

此处还涉及到经验回放,简单介绍一下:经验回放所用到的四元组还是我们之前提到过的(\small s_{t},\small a_{t},\small r_{t},\small s_{t+1}),将这些四元组缓存起来记录到 一个数组里,这个数组被称作经验回放数组(Replay Buffer),不论是基于表格形式的还是神经网络形式的Q学习,最终进行训练都需要用到这些四元组,这种方式就被称为经验回放。

SARSA是同策略,每一个\small Q_{\pi }都与一个\small \pi相对应,不同的策略\small \pi会导致学习到的\small Q_{\pi }的不同。经验回放数组里的(\small s_{t},\small a_{t},\small r_{t},\small s_{t+1})是已经缓存下来的,过时的行为策略收集到的,与当前策略对不上,必须要使用当前策略,因此不能使用经验回放。


多TD目标:

单TD目标表示公式中只有一个已知的现实奖励\small r_{t},多步 TD 目标用 m 个奖励,可以视作单步 TD 目标的推广。从t开始每往后一个时刻,奖励就多乘以一个学习率,回报也多乘以一个学习率。m个奖励,就是m个奖励求和,t时刻后的都要乘以学习率,并且t+m时刻的回报乘以学习率的m次方。

后面进行计算与优化和单TD一样。本质上是没差的,只是多TD更接近于现实,更加可靠。


蒙特卡洛:

蒙特卡洛算法并不是一种算法的名称,是对一种算法特性的概括。蒙特卡洛是一种数值算法,靠随机样本对目标做近似。蒙特卡洛一般难以得到真实结果,但是可以得到十分相近的结果。随机梯度下降也是一种蒙特卡洛算法,拿随机梯度来近似真实梯度。

简单举个例子大家应该能更清楚:

背景是:在直角坐标系中以原点为圆心,半径为1有一个圆,它同时有一个外界正方形。我们利用蒙特卡洛算法来近似求\small \pi(pai)的值:

我们上面说到蒙特卡洛算法是靠随机样本对目标做近似,我们利用随机生成的点,在正方形中均匀分布,共生成n个点。我们知道圆的面积为pai*r^2,此时半径为1,圆的面积就为pai,正方形面积为4.则我们可以认为落在圆上的概率p=pai/4。而我们随机产生n个样本点,根据数学期望得到落在圆上的点的个数为m=np=n*pai/4,n是已知的产生的随机点的个数,m是经过统计的落在圆上的个数。最终经过化简pai=4m/n。由此一来,我们便可以计算出pai的近似值,并且n越大这个值越准确。

我们使用蒙特卡洛算法对网络进行训练,首先我们可以将一局游戏进行到底,观察所有奖励r1,...rn,我们可以直接计算ut,此时的ut是有实际数据的已经观测到的真实值,并以ut作为目标,鼓励价值网络向ut靠近。

蒙特卡洛的好处是无偏的:无偏估计的要求就是:估计出来的参数的数学期望等于被估计参数的真实值。ut是\small Q_{\pi }的无偏估计,由于ut 的无偏性,拿ut 作为目标训练价值网络,得到的价值网络也是无偏的。

蒙特卡洛的坏处是方差大:回报Ut依赖于t时刻以后的动作,状态等,不确定性很大。实际观测值ut虽然是Ut的无偏估计,但可能实际上离回报的期望(即动作价值函数)很远,拿ut 作为目标训练价值网络,收敛会很慢。


自举:

自举的意思是用一个估算去更新同类的估算。

我们以TD算法为例,回顾一下单步 TD 目标定义:

由此我们可以看出来最终是要向\small \hat{y}_{t}上面拟合的,并且后半部分q()是做出的估计,因此便是用自己做出的估计去更新自己即为自举。

自举的好处是方差小:咱们看公式可以得到单步TD目标的随机性只来自于q(\small s_{t+1},\small a_{t+1})和其他时刻的无关,然而之前介绍的回报Ut和从t时刻开始到回合结束所有时间的都有关,因此TD方差较小,用自举的方法训练网络,收敛比较快。

自举的坏处是有偏差:由于q()是对\small Q_{\pi }的估计,我们当然希望可以使二者相等,但是假如q()高估,会导致\small \hat{y}_{t}偏大,接着需要让q()向\small \hat{y}_{t}靠拢,进而导致产生偏差。

实践中,自举通常比蒙特卡洛收敛更快,这就是为什么训练DQN和价值网络通常用TD算法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度强化学习是结合了深度学习强化学习的一种算法方法,它的发展历史可以追溯到强化学习深度学习各自的起源。 强化学习是一种机器学习方法,旨在通过智能体与环境的交互来学习最优的行为策略。其基本思想是通过试错和奖励机制来引导智能体的学习过程。强化学习的发展历史可以追溯到20世纪50年代的动态规划方法,随后逐渐发展出了值函数和策略函数的方法,如Q-learning和SARSA等。然而,传统的强化学习方法在处理高维、复杂的问题时面临着维度灾难和计算复杂性的挑战。 深度学习是一种基于神经网络的机器学习方法,通过多层次的神经网络模型来学习数据的表示和特征提取。深度学习在图像识别、语音识别等领域取得了巨大成功。然而,传统的深度学习方法在处理序列决策问题时存在困难,因为它们缺乏对时间序列和延迟奖励的建模能力。 深度强化学习的发展可以追溯到2013年,当时DeepMind团队提出了一种基于深度神经网络的强化学习算法——深度Q网络(DQN)。DQN通过将强化学习深度学习相结合,成功地解决了一些复杂的游戏问题。随后,深度强化学习得到了广泛的关注和研究。 在此基础上,深度强化学习的发展又涌现出了一系列的算法,如策略梯度方法、Actor-Critic方法、Proximal Policy Optimization(PPO)等。这些算法通过引入深度神经网络来近似值函数或策略函数,进一步提高了深度强化学习在处理复杂问题上的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值