笔记:强化学习入门:SARSA 算法

SARSA 算法和 Q Learning算法是同一种强化学习基本算法。

但是SARSA 算法采取了和Q Learning 不同的迭代更新策略。

1 SARSA 算法

SARSA 算法的更新步骤为:

  1. 记录当前的state
  2. 执行上一步选定的action 得到奖励reward 和 新的状态 new_state 
  3. 在new_state下 根据当前的Q函数 ,选定的要执行的不走new_action
  4. reward+GAMMA*Q[new_state,new_action].max()  来更新Q[state,action] 
  5. 实际上用的(1-ALPHA)*Q(state,action)+ALPHA*Q[new_state,new_action].max() 来替换Q[state,action]的值
  6. action = new_action 这个动作会在下一个循环中执行

回顾一下SARSA的过程

  • 智能体处于一个状态下
  • 执行了一个动作action 得到一个期望奖励 和一个新的状态
  • 在新的状态下 Q 函数  确定下一轮要执行的action
  • 根据新的状态和新的动作来更新 Q函数
  • action = new_action

2 off-policy 和 on-policy

强化学习算法分为off-policy 和 on-policy两类算法 而Q Learning 就是 off-policy ,SARSA就是on-policy。

原因:

Q Learning:

在Q Learning 中 Q函数的跟新和Q [new_state,;].max 有关,在Q [new_state,;中选出使得Q函数最大的动作,以此来更新Q函数。设这个动作为max_action.但是智能体在实际有可能不会执行max_action.因为在下个过程中是根据epsilon-greedy方法策略的,有可能选择max_action 也有可能不会选择max_action.

SARSA

而SARSA算法则不同,它用Q[new_state,new_action]结合奖励等信息更新Q函数 之后下一次循环时 智能体必然会执行new_aciotn

总之Q Learning 在更新Q函数使用的max_action  不一定会被智能体执行 

而SARSA 更新Q函数使用的new_acion 一定会被智能体执行

这也是off-policy 和 on-policy 的主要区别。

3另一个角度的理解(考虑风险的态度上)

相比于Q Learning算法 SARSA算法 更加的‘胆小’。

Q Learning 算法是考虑新的状态下可以获得的最大奖励 而不会考虑新状态会带来的风险。

而SARSA 算法会考虑到接近陷阱(假设走迷宫时有陷阱)可能带来负收益,因此更倾向于待在原地不动,从而更加难的找到宝藏。

实际应用中 这两种算法 有各自适合的场景

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值