Model-free强化学习

强化学习几个问题

1.在线学习与离线学习
在线学习:agent与环境在线交互,将样本在线学习后,使用一次就丢掉。
离线学习:agent与仿真环境进行交互,将样本进行存储,也可以从别的地方直接拿来样本,可重复的从样本池中抽取样本进行学习。
离线学习样本的利用率较高,但是需要保证样本的可用性。
2.奖励的延迟
agent与环境交互,每次得到的是立即回报,可能需要一连串动作后,才能达到最终的成功状态,获取一个高奖励。因此,只根据立即回报agent不能决策当前最优的动作,需要考虑延迟的高奖励。这里就涉及到一个时间信用分配问题(temporal credit assignment),agent最终达到的成功状态,是前面的哪几步起决定性作用,如果要将最终的奖励分配到从初始状态到最终状态的每一步决策上,应该如何分?
3.探索与利用
强化学习是以奖励为导向,以累计奖励最高为目标,但是问题的状态空间往往比较大,agent在一开始只能探索到一部分,从中进行学习到经验。agent是利用已有的经验去获取奖励,还是去探索未知的状态,也许能发现更好的奖励。理论上,agent只有经历过相应的动作-状态对,才能够得到相应的值函数,才有可能得到最优策略,但是大量的探索,会导致学习的效率低,探索与利用的平衡直接影响了强化学习的学习效率。

蒙特卡洛算法

MC策略估计

动态规划需要知道状态转化概率和回报函数,是有模型的学习,而现实中大部分的问题都是不知道状态转化概率和回报函数的,是无模型的学习。无法通过贝尔曼方程进行策略迭代和值迭代求最优策略,但是,可以通过和环境交互,获取大量的样本,通过样本统计,实现对模型的拟合估计,得到近似的价值函数。理论上来讲,只要样本足够大,估计值就可以看做事真实值。
蒙特卡洛算法主要用在策略评估,采用样本回报均值化来估计价值函数。通过采样,从初始状态 s 0 s_0 s0到最终的结束状态 s t s_t st,形成 { ( s 0 , a 0 , r 1 , s 1 ) , ( s 1 , a 1 , r 2 , s 2 ) , ( s 2 , a 2 , r 3 , s 3 ) , . . . ( s t − 1 , a t − 1 , r t , s t ) } \{(s_0,a_0,r_1,s_1),(s_1,a_1,r_2,s_2),(s_2,a_2,r_3,s_3),...(s_{t-1},a_{t-1},r_t,s_t)\} { (s0,a0,r1,s1),(s1,a1,r2,s2),(s2,a2,r3,s3),...(st1,at1,rt,st)}序列,称为一个episode。采集大量的episode,根据价值函数的定义,某个状态的价值等于从现在到结束状态所有立即回报的累加和期望,那么就可以求出每个episode中,每个状态的价值,将所有episode中相同状态的价值求和,在除以总的episode个数,得到每个状态的价值平均值,根据大数定律,可知当样本足够大时,该均值就收敛至真实的价值函数。
这中间有一个问题,在一个episode中,若经历过两个相同的状态,该如何计算。目前有两种方法:FVMC(first visit MC)和EVMC(every visit MC)。FVMC是将每次episode中奖励算在了第一访问该状态上,EVMC是将奖励平均给了每次访问该状态上。
FVMC计算流程
v ( s ) v(s) v(s)表示状态 s s s的统计价值总和, N ( s ) N(s) N(s)表示访问过的 s s s的总次数, G i ( s ) G_i(s) Gi(s)表示一个episode中每次出现 s s s的第 i i i次的回报。
1.状态出现次数: N ( s ) = N ( s ) + 1 N(s)=N(s)+1 N(s)=N(s)+1
2.总的统计价值变化: v ( s ) = v ( s ) + G 1 ( s ) v(s)=v(s)+G_1(s) v(s)=v(s)+G1(s)
3.平均价值: V ( s ) = v ( s ) N ( s ) V(s)={v(s) \over N(s)} V(s)=N(s)v(s)
4. N ( s ) − > 无 穷 , V ( s ) = V π ( s ) N(s)-> 无穷,V(s) = V_π(s) N(s)>V(s)=Vπ(s)
EVMC计算流程
1.状态出现次数: N ( s ) = N ( s ) + 1 + 2 + . . i N(s) = N(s)+1+2+..i N(s)=

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值