RLAI-第十二章-EligibilityTrace实践

Sarsa(λ)实践
Model-Free

先验知识
https://zhuanlan.zhihu.com/p/28108498
1.资格迹定义的来源公式 chapter12
2.定义
E0(s,a)=0
Et(s,a) = γ * λ * Et-1(s,a) + 1 其中(St=s,At=a)
3.引入资格迹的Q值更新公式:
Q(s,a) = Q(s,a) + α * {Rt+1 + γQ(S’,a’) -Q(s,a)} Et(s,a)

它体现的是一个结果和某一个state-actin之间的因果关系。得到刺果的最近以及最频繁出现的state-action认为影响此结果的权重高

背景
windy gridWorld 的引入资格迹Sarsaλ算法

目的
Agent遵循着某一个策略选择Action,得到Env的反馈信息(Reward+S’变化),来优化策略

伪代码
https://zhuanlan.zhihu.com/p/28180443

Repeat episode{
    E(s,a)=0  //For all S,all A
    while not done{
        take action A,observe R,S’
        根据on-policy得到 S' A'
        计算δ
        E(s,a) += 1         //经历的越多 对应E值越大

        //更新all s, all a----trick1
        //同时在  近期发生γ 或者频繁发生λ   的Q(S,A)变化更加明显一些
        for(整体state-value空间){
            for(Agent的action-space 比如上下左右){
                //更新Q
                //更新E
            }
        }
    }
    //一次episode结束
}

trick
1.Q表E表 字典套字典 key:state value:{key:action value:State-action的价值}
https://zhuanlan.zhihu.com/p/28108498
解释为什么不选择只更新agent经历过的Q表E表

2.参数lamda更新E时候的作用
2.1 初始状态E(s0,a0)=1,后续的Q值没有发生变化。E值变化就是对路径有记忆
2.2 直到终止状态,遇到非0的Reward:更新之前经历过的所有Q,越近的+越频繁的Q值变化更加明显

3.每次episode清空E表 https://zhuanlan.zhihu.com/p/28108498

三个参数
经过试验得出

lamda越大=动作越频繁的Q变化越大

gama越大,越重视下一步Q(s’,a’)

alpha越小,越重视上一步Q(s,a)经验

代码链接:
https://github.com/cuixuage/Reinforcement_Learning/tree/master/code_RLAI

主要参考:
https://zhuanlan.zhihu.com/p/28339529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值