强化学习笔记(四)

Sarsa

  • 在线学习(On-Policy): 说到做到, 亲自参与训练过程, 不是模拟选择, 直接选择行为执行

Sarsa 算法

初始化 Q(s, a) 为任意值
重复以下步骤 (每个训练回合):
	初始化状态 s
	从状态 s 中根据来源于 Q 的策略选择行为 a (例如: ε-greedy  ε=0.9: 90%情况取最优行为, 10% 情况随机采取行为)
	重复以下步骤 (单个回合中的每一步):
		执行行为 a, 观察奖励 r, 下一状态 s'
		从状态 s' 中根据来源于 Q 的策略选择行为 a' (例如: ε-greedy  ε=0.9: 90%情况取最优行为, 10% 情况随机采取行为)
		更新 Q(s, a): Q(s, a) <- Q(s, a) + α * [r + γ * Q(s', a') - Q(s, a)] 
		(α: 学习效率, 表示单次差距有多少被学习, γ: 衰减因子, Q 现实: r + γ * max(Q(s', a')), Q 估计: Q(s, a))
		更新下一状态 s' 为当前状态 s, 更新下一状态 a' 为当前状态 a
	直到状态 s 全部结束
  • Sarsa 与 Q-Learning 不同之处在于: 在更新计算 Q 值时, Sarsa 已经定下了下一步的行为, 并且在更新 Q 值之后, 下一步一定会去执行这个行为; 而 Q-Learning 在更新 Q 值时, 计算时用到了下一个环境中具有最大的 Q 值的行为, 但在下一环境中, Q-Learning 仅仅有 90% 的概率, 按照最大 Q 值原则去执行这个行为, 而不是一定去执行这个行为
  • Sarsa 算法有点胆小保守, 因为是实际执行, 模型会规避很多风险, 而不是直接选择有风险但最为直接的行为

猜你喜欢

转载自blog.csdn.net/weixin_40042498/article/details/113884918