1. Q-Learning是强化学习算法中Value-based中的一种算法,Q即为Q(s,a)就是在某一时刻的s状态下(s∈S),采取动作a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward r,所以算法的主要思想就是将State与Action构建成一张Q-table来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。

更简单的理解就是我们基于状态s利用ε−greedy​​​法进行贪婪选择出动作a,然后执行动作a,得出下一状态s'以及reward r,有了这些值就可以做Q-table的更新了,更新公式如下:

对应的参考代码部分如下:

# 更新S
def chose_direction(s, q_table):if np.random.uniform() > EPSILON or q_table.iloc[s, :].all() == 0:direction = np.random.choice(ACTIONS)else:direction = ACTIONS[q_table.iloc[s, :].argmax()]return direction# 学习过程
s = 0
is_terminal = False
step_count = 0
while not is_terminal:a = chose_direction(s, q_table)s_, r = update(s, a)q_predict = q_table.loc[s, a]if s_ != "terminal":q_target = r + GAMA*q_table.iloc[s_, :].max()else:q_target = ris_terminal = Trueq_table.loc[s, a] += ALPHA*(q_target-q_predict)a = s_

其中:看到Q-learning算法的行为策略和目标策略不同,因此为异策略(off-policy)。

2. Sarsa的行为策略部分和Q-Learning一模一样,都是采用Q表的方式进行决策,我们会在Q表中挑选values比较大的动作实施在环境中来换取奖赏。但是Sarsa的更新是不一样的。'sarsa'五个字母的含义即s(当前在状态),a(当前行为),r(奖励),s(下一步状态),a(下一步行为),也就是说我们在进行这一步操作时已经想到当前s对应的a,并且想好了下一个s'和a'。

Sarsa的公式如下:

以下是Sarsa更新的主要代码:

s = 0
is_terminal = False
step_count = 0
a = chose_direction(s, q_table)
while not is_terminal:s_, r = update(s, s)q_predict = q_table.loc[s, a]if s != "terminal" and s_ != "terminal":a_ = chose_direction(s_, q_table)q_target = r + GAMA*q_table.loc[s_, a_]else:q_target = ris_terminal = Trueq_table.loc[s,a] += ALPHA*(q_target-q_predict)s = s_a = a_

可以看到行为策略和目标策略使用同一个函数,因此SARSA为同策略(on-policy)。

代码参考:强化学习中,Q-Learning与Sarsa的差别有多大? - 知乎 (zhihu.com)

强化学习入门 Q-learning与SARSA相关推荐

  1. RL之Q Learning:利用强化学习之Q Learning实现走迷宫—训练智能体走到迷宫(复杂迷宫)的宝藏位置

    RL之Q Learning:利用强化学习之Q Learning实现走迷宫-训练智能体走到迷宫(复杂迷宫)的宝藏位置 目录 输出结果 设计思路 实现代码 测试记录全过程 输出结果 设计思路 实现代码 f ...

  2. RL之Q Learning:利用强化学习之Q Learning实现走迷宫—训练智能体走到迷宫(简单迷宫)的宝藏位置

    RL之Q Learning:利用强化学习之Q Learning实现走迷宫-训练智能体走到迷宫(简单迷宫)的宝藏位置 目录 输出结果 设计思路 实现代码 测试记录全过程 输出结果 设计思路 实现代码 f ...

  3. mdp框架_强化学习中q learning和MDP的区别是什么?

    MDP通常是指一种用转移概率描述连续不确定概率过程的数学框架,是强化学习中最基础的概念,很多强化学习的算法都是在把问题抽象为一个MDP之后再想办法求解的. 而q-learning是求解强化学习问题的算 ...

  4. 强化学习之Q学习与SARSA

    ** Q学习路径规划与SARSA法路径规划 ** Q学习与SARSA学习简介 强化学习的历史可以用两条各自独立但丰富多彩的主线来追溯..一条主线聚焦 于研究最优化控制,以及使用价值函数动态规划等算法来 ...

  5. 强化学习入门 : 一文入门强化学习 (Sarsa、Q learning、Monte-carlo learning、Deep-Q-Network等)

    最近博主在看强化学习的资料,找到这两个觉得特别适合入门,一个是"一文入门深度学习",一个是"莫烦PYTHON". 建议:看资料的时候可以多种资料一起参考,一边调 ...

  6. Q学习(Q learning) 强化学习

    Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化_Morty 的挖坑记录-CSDN博客 强化学习(MATLAB) - 叮叮当当sunny - 博客园

  7. 多智能体强化学习入门

    参考文章:万字长文:详解多智能体强化学习的基础和应用 .多智能体强化学习入门(一)--基础知识与博弈 推荐文章:多智能体强化学习路线图 (MARL Roadmap) 推荐综述论文:An Overvie ...

  8. 第七章 深度强化学习-深度Q网络系列1(Deep Q-Networks,DQN)

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 第七章 深度强化学习-深度Q网络 7.1 学习目标 7.2 深度学习和强化学习的区别 7.3 DQN原理 7.4 DQN算法 7.4.1 预处理 7. ...

  9. 强化学习入门8—深入理解DDPG

    文章目录 Deep Deterministic Policy Gradient 简介 网络结构 算法流程 小结 本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG.DD ...

最新文章

  1. Soldier and Badges
  2. Android控件ActionBar浅析及适配2.x的方法介绍
  3. hdu 1055(贪心)
  4. [svc]visio绘制模具
  5. [BZOJ 4916]神犇和蒟蒻
  6. 基于机器学习方法的POI品类推荐算法
  7. powerquery加载pdf_pdf转换为excel,你不会,同事点点鼠标2分钟就搞定了
  8. 一文掌握关于Java数据结构所有知识点(欢迎一起完善) 1
  9. OpenCV3学习(11.6) ORB特征检测器及BRIEF描述符
  10. iphone分辨率_AppStore今日推荐 iphone放大分辨率减少白噪点的照片处理工具
  11. cocos-2d iphone入门(二) cocos2d源代码生成查询文档
  12. JAVA 导出 Excel, JS 导出 Excel
  13. GJB150A-2009军用装备实验室环境试验标准目录
  14. c语言双人贪吃蛇-基于图形库实现
  15. 新版谷歌地图的好处和优点
  16. 计算机网络知识总结(韩立刚老师视频)
  17. 带有资源混淆的打补丁过程
  18. 鼠标悬停显示滚动条,移出不显示
  19. MongoDB4.0 配置文件
  20. 局域网共享打印机无反应故障

热门文章

  1. Hadoop入门案例WordCount
  2. bzoj1613 贝茜的晨练计划
  3. iOS设备截图和Windows电脑互传,解决提交bug无图不能说明问题
  4. HTML 打印table分页
  5. Android学习资源汇总
  6. BLOB图像处理技术
  7. 外网访问家里的nas
  8. wordpress 文章php,Wordpress制作文章页面single.php
  9. 如何从乱码中恢复 (下)?
  10. 超级玛丽2号max即将停售定期?是谣言还是确有其事,有啥影响