通过代码学 Sutton 强化学习:SARSA、Q-Learning 时序差分算法训练 CartPole( 二 )
class CartPoleAbstractAgent(metaclass=abc.ABCMeta):
@abc.abstractmethod
def update_q(self, s: State, a: Action, r, s_next: State, a_next: Action):
pass
文章插图
TD Learning的精髓MC需要在环境中模拟直至最终结局 。 若为
文章插图
为t步以后的最终return , 则 MC online update 版本更新为:
文章插图
可以认为
文章插图
向着目标为更新了一小步 。
文章插图
另外一个和Monte Carlo的区别在于一般TD方法保存更精细的Q值 , 并用Q值来boostrap , 而MC一般用V值也可用Q值 。
文章插图
SARSA: On-policy TD 控制SARSA的命名源于一次迭代产生了五元组
文章插图
。 SARSA利用五个值做 action-value的 online update:
文章插图
对应的Q table更新实现为:
class SarsaAgent(CartPoleAbstractAgent):
def update_q(self, s: State, a: Action, r, s_next: State, a_next: Action):
self.q[s][a] += self.lr * (r + self.discount * (self.q[s_next][a_next]) - self.q[s][a])
SARSA 在执行policy 后的Q值更新是对于针对于同一个policy的 , 完成了一次策略迭代(policy iteration) , 这个特点区分于后面的Q-learning算法 , 这也是SARSA 被称为 On-policy 的原因 。 下面是完整算法伪代码 。
文章插图
文章插图
SARSA 训练分析SARSA收敛较慢 , 1000次episode后还无法持久稳定 , 后面的Q-learning 和 Expected Sarsa 都可以在1000次episode学习长时间保持不倒的状态 。
文章插图
文章插图
Q-Learning: Off-policy TD 控制Q-Learning 是深度学习时代前强化学习领域中的著名算法 , 它的 online update 公式为:
文章插图
对应的 update_q 方法具体实现
class QLearningAgent(CartPoleAbstractAgent):
def update_q(self, s: State, a: Action, r, s_next: State, a_next: Action):
self.q[s][a] += self.lr * (r + self.discount * np.max(self.q[s_next]) - self.q[s][a])
本质上用现有的Q table中最好的action来bootrap 对应的最佳Q值 , 推导如下:
文章插图
Q-Learning 被称为 off-policy 的原因是它并没有完成一次policy iteration , 而是直接用已有的 Q 来不断近似
文章插图
对比下面的Q-Learning 伪代码和之前的 SARSA 版本可以发现 , Q-Learning少了一次模拟后的
文章插图
, 这也是Q-Learning 中执行policy和预估Q值(即off-policy)分离的一个特征 。
文章插图
文章插图
Q-Learning 训练分析Q-Learning 1000次episode就可以持久稳定住 。
文章插图
文章插图
SARSA 改进版 Expected SARSAExpected SARSA 改进了 SARSA 的地方在于考虑到了在某一状态下的现有策略动作分布 , 以此来减少variance , 加快收敛 , 具体更新规则为:
文章插图
注意在实现中 , update_q 不仅更新了Q table , 还显示更新了执行policy
文章插图
- 开发自|不妥协不追随 Member’s Mark升级背后的“山姆哲学”
- 计算机学科|机器视觉系统是什么
- 阿尔法|击败李世石的AI公司,又研发出生物版“阿尔法狗”:破解50年生物学难题
- 互联网|政企学界人士西安共议数字经济 产业互联网发展向“西”行
- 高学历|薇娅一夜带货53.2亿,少不了这支高学历团队!
- 教学|机器人教学的目标方案
- 体验|VR\/AR体验、3D打印、机器人“对决”……松江这所中学人工智能创新实验室真的赞
- 操作|[LIVE On]黄敏贤和郑多彬充满心碎的下午:机器操作每次都不能通过测试
- 直播从业者|高三老师监考时开直播,面对质疑还振振有词,怕困没有打扰学生
- 跻身|安师大2学科跻身ESI全球前1%!新增的学科是……