强化学习笔记(五)

Sarsa(λ)

Sarsa(λ) 定义

  • λ: 脚步衰减值
  • 更新获取到奖励的前 λ 步, λ 在 [0, 1] 之间取值, λ = 0: 单步更新, 每次只更新最近的一步, λ = 1: 一个回合结束后全部一起更新, 且权重相同, 0 < λ < 1: 离目标越远的步骤权重越低, 越近权重越高

Sarsa(λ) 优点

  • 距离奖励越远的步骤, 在衰减因子 λ 的作用下, 价值越小, 而距离奖励越近, 价值越大, 通过这种方式, 可以避免往返执行重复的步骤并更快地整体调整价值参数

Sarsa(λ) 算法

初始化 Q(s, a) 为任意值, 所有 s 表示环境, 所有 a 表示行为
重复以下步骤 (每个训练回合):
	E(s, a) = 0, E(s, a) 表示在获得奖励之前所有经历过的轨迹, 所有 s 表示环境, 所有 a 表示行为
	初始化状态 S, 行为 A
	重复以下步骤 (单个回合中的每一步):
		执行行为 A, 观察奖励 R, 和下一状态 S'
		从状态 S' 中根据来源于 Q 的策略选择行为 A' (例如: ε-greedy  ε=0.9: 90%情况取最优行为, 10% 情况随机采取行为)
		计算 Q 现实和 Q 估计之间差距: δ <- R + γ * Q(S', A') - Q(S, A)
		更新 E(S, A): E(S, A) <- E(S, A) + 1, 即当前状态下该行为多执行了一次
		对所有的状态 s 和行为 a 执行以下更新:
			Q(s, a) <- Q(s, a) + α * δ * E(s, a)
			(α: 学习效率, 表示单次差距有多少被学习, δ: 现实和估计差距)
			E(s, a) <- γ * λ * E(s, a)
			(每往前一步, 就乘上一个衰减因子 λ, 表示距离终点越远, 影响程度越小)
		更新状态和行为为下一状态和行为: S <- S', A <- A'
	直到状态 s 全部结束

猜你喜欢

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