讲清楚Sarsa和Q-learning的对比,各自起作用的场景

两者的区别

  • 两者的区别就在于Q值的更新公式上:
  • Sarsa
    Q ( s t , a t ) = Q ( s t , a t ) + α ∗ ( r t + γ ∗ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ) Q\left(s_{t}, a_{t}\right)=Q\left(s_{t}, a_{t}\right)+\alpha^{*}\left(r_{t}+\gamma^{*} Q\left(s_{t+1}, a_{t+1}\right)-Q\left(s_{t}, a_{t}\right)\right) Q(st,at)=Q(st,at)+α(rt+γQ(st+1,at+1)Q(st,at))
  • Q-learning
    Q ( s t , a t ) = Q ( s t , a t ) + α ∗ ( r t + v ∗ max ⁡ a Q ( s t + 1 , a ) − Q ( s t , a t ) ) Q\left(s_{t}, a_{t}\right)=Q\left(s_{t}, a_{t}\right)+\alpha^{*}\left(r_{t}+v^{*} \max _{a} Q\left(s_{t+1}, a\right)-Q\left(s_{t}, a_{t}\right)\right) Q(st,at)=Q(st,at)+α(rt+vamaxQ(st+1,a)Q(st,at))
  • 明确两个概念行为策略和目标策略
    • 行为策略:agent在与环境互动时,究竟怎样通过Q表来选择action。两个算法是一样的,都为 ϵ \epsilon ϵ-greedy。
    • 目标策略:
      • 即最终要得到的策略,也就是找到 Q ∗ Q_* Q.有了它之后,每次在真实场景下,直接通过 Q ∗ Q_* Q找对应状态下的最优action即可。
      • agent训练的最终目的,是让Q值表确定下来。一般也不一定能完全确定,就是可能比较稳定收敛了,就近似认为是最优。
      • 两个算法的区别也就在这里,就是对Q值的更新方法不同,具体见上面公式。

直观解释

  • 有了前面的铺垫,就很好解释了。
  • Sarsa的行为策略,目标策略一致。意味着在训练的过程里,它实际上采取的行动,和它根据行动后的反馈,对自身目标的更新,都是一致的。这和下面的Q-learning算法形成鲜明对比。
  • Q-learning的行为策略和目标策略不一致。导致agent会在环境里,做一些目标策略以外的事。 用RL里的一个专业术语,可以说是更多探索。好处是也许能发现惊喜,比如很难找到的全局最优。或者一些不会掉的坑,让agent受到更强烈的反馈,以后就绝对不会再掉进去等。

作用场景

Sarsa

Sarsa 就是目标策略和实际行为一致的算法。适合做一些,我们希望agent在学习过程中,表现“良好”的场景。不希望他做一些”出格“,”意料外“的事。比如一个机器人很贵重,Sarsa下,它不太可能会去做冒险的事,比如掉进陷阱,导致摔坏设备的情况。

Q-learning

允许agent做一些冒险的事,可以不计成本。比如新车的测试,我需要它能遇到一些紧急情况,并看它的处理行为如何。只有这样,才能保证人坐在上面也是安全的。

参考

  1. stackoverflow
  2. zhihu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值