matlab gamma函数_强化学习--时间差分方法的matlab简单实现

时间差分方法(TD方法)

在蒙特卡洛方法中,状态的价值是通过以下公式求出:

其中

是学习率,
是状态
处的折扣累积回报值。其公式推导如下
[1]

这种方法有一个缺点,就是在一次试验中需要等到终止状态出现才会结束,所以在这里借鉴动态规划的”自举“思想将其改写,使试验还未结束时就能估计出当前的值函数。

根据前面的知识,我们知道

,将其代入到上式中:

以上就是时间差分方法的值函数更新公式,其中

为TD目标,
称为TD偏差。

时间差分方法分为同策略Sarsa方法和异策略Q-learning方法。

异策略Q-learning方法的伪代码如下[1]

760d5763bd33492069ca396e8e1c7120.png
异策略伪代码

贪婪策略(
):
,当
时表示有90%的概率选取最大动作值,有10%随机选取动作值。

首先需要随机选取一个状态

,在根据
贪婪策略选择动作a,选择之后以状态
为起始状态,然后重复选择下一状态,直到出现终止状态。下一状态
由状态
和动作a确定,动作值函数由公式 :

直到值函数收敛,然后根据策略:

确定最终策略。根据博客
[2] hadxu:极简Qlearning教程(附Python源码)​zhuanlan.zhihu.com
a500624f2c40416aa3494f9284990622.png

中的例子,由matlab实现代码如下:

1.异策略-Q-learning

function

7408aa2be7266ab21bb71f8c78cb0178.png
同策略伪代码

同策略Sarsa算法和异策略Q-learning算法的主要区别是评估策略的确定方式不同,在Q-learning算法中,评估策略是通过贪心算法的思想得到的,即在求解动作值函数时使用公式:

由公式可以看出下一状态的动作值函数是选取最大的(

),而在同策略sarsa中,其下一状态的动作也是通过
贪婪策略得到。具体matlab代码如下:

2.同策略-sarsa算法[3]

function

参考

  1. ^ab蒙特卡洛方法 https://zhuanlan.zhihu.com/p/25743759
  2. ^Q-learning实现 https://zhuanlan.zhihu.com/p/29213893
  3. ^sarsa算法 https://zhuanlan.zhihu.com/p/29283927
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值