强化学习案例_强化学习系列案例 | 利用Qlearning求解悬崖寻路问题

查看本案例完整的数据、代码和报告请登录数据酷客(cookdata.cn)案例板块。快速获取案例方式:数据酷客公众号内发送“强化学习”。

悬崖寻路问题(CliffWalking)是强化学习的经典问题之一,智能体最初在一个网格的左下角中,终点位于右下角的位置,通过上下左右移动到达终点,当智能体到达终点时游戏结束,但是空间中存在“悬崖”,若智能体进入“悬崖”则返回起点,游戏重新开始。本案例将结合Gym库,使用Sarsa和Q-learning两种算法求解悬崖寻路问题的最佳策略。

1. 悬崖寻路问题介绍

悬崖寻路问题是指在一个4 x 12的网格中,智能体以网格的左下角位置为起点,以网格的下角位置为终点,目标是移动智能体到达终点位置,智能体每次可以在上、下、左、右这4个方向中移动一步,每移动一步会得到-1单位的奖励。

智能体在移动中有以下限制:
(1) 智能体不能移出网格,如果智能体想执行某个动作移出网格,那么这一步智能体不会移动,但是这个操作依然会得到-1单位的奖励
(2) 如果智能体“掉入悬崖” ,会立即回到起点位置,并得到-100单位的奖励
(3) 当智能体移动到终点时,该回合结束,该回合总奖励为各步奖励之和

f4a6f702439e8e5a13c112670e9dc090.png

2. 时间差分方法

时间差分方法是一种估计值函数的方法,相较于蒙特卡洛使用完整序列进行更新,时间差分使用当前回报和下一时刻的价值进行估计,它直接从环境中采样观测数据进行迭代更新,时间差分方法学习的基本形式为:

因上式只采样单步,所以利用上式进行更新的方法称为单步时间差分方法(one-step TD,TD(0)),其实时间差分不仅可以采样一步还可采样多步,得到?步时间差分算法的更新公式:

其需要的观测数据形式为。

3. 利用Sarsa算法寻找最佳策略

3.1 Sarsa算法的理论

Sarsa是一种时间差分算法,并且是单步更新的方法,其迭代对象为 ,其更新公式为:

该算法需要形如的观测数据,因此该算法命名为Sarsa算法,理论证明Sarsa算法最终会使收敛于,Sarsa适用于解决状态和动作都离散的MDP问题,Sarsa算法流程如下:

  1. 设置算法参数:学习率?,探索率?>0,策略?
  2. 对所有 ,初始化,令?(终止状态, ·)=0
  3. for episode=1
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值