More than code

More Than Code
The efficiency of your iteration of reading, practicing and thinking decides your understanding of the world.
  1. 首页
  2. RL
  3. 正文

SARSA & QLearning V2

2025年9月21日 47点热度 0人点赞 0条评论

通过SARSA和QLearning来理解一下on policy和off policy

1. Q-learning(Off-policy)

  • 更新公式:

    Q(s,a) \leftarrow Q(s,a) + \alpha \Big( r + \gamma \max_{a'} Q(s',a') - Q(s,a)\Big)

  • Q-learning 在更新时,使用的是 下一状态 s' 中的最大动作价值 \max_{a'} Q(s',a'),即假设下一步总是采取最优动作。
  • 这意味着它学习的是 最优策略(greedy policy),而不管实际执行过程中你是用 ε-greedy、softmax,还是完全随机策略。
  • 所以即使训练时用旧策略(探索多、次优动作多),也不妨碍学习到最优 Q^*。这就是 off-policy:学习目标策略(最优)与实际行为策略(探索)可以不同。

2. SARSA(On-policy)

  • 更新公式:

    Q(s,a) \leftarrow Q(s,a) + \alpha \Big( r + \gamma Q(s',a') - Q(s,a)\Big)

  • SARSA 在更新时,使用的是 实际选择的下一步动作 a' 的价值,而不是最大值。
  • 它学习的是 当前执行的策略本身(如 ε-greedy 策略)。
  • 如果你在训练时不用当前策略,而用旧的策略去更新,得到的值函数就和实际执行的策略不匹配,更新就会失真。
  • 因为它是 on-policy:必须保证学习的策略和实际行为策略一致。

SARSA的全称是(state, action, reward, state, action),也就对应了用来更新Q table的五元组(s, a, r, s', a')

然而用这个五元组做训练的时候,是不能使用经验回放的,因为SARSA是on policy的。但是看到这里可能会有一个直观的想法,这单独的一个五元组其实是和策略无关的,为什么和on/off policy有关呢

因为我们在训练的时候,无法直接计算这里贝尔曼方程中的期望,所以通过采样的方式来做近似。
而采样的五元组是依赖策略的,所以不能随便更换策略,否则采样出来计算的q就不是针对这个策略的q了

而Q learning是学习的最优Q函数,和策略是无关的,而和reward/状态转移,这两个随机变量相关。可以理解为是通过训练数据学习“环境”的最优Q函数。

标签: 暂无
最后更新:2025年9月21日

sheep

think again

点赞
< 上一篇

文章评论

取消回复

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS