本文主要介绍TD算法和Q学习算法


目录

TD算法:

Q学习算法:

同策略,异策略:


TD算法:

即时间差分 (Temporal Difference):此处用举例子方法来帮助大家理解

1.假设我从天津到郑州,初始预测时间为12个小时(这个时间是初始的,并不那么准确),则有预测时间q=12;有一次我实际开车从天津到郑州只用了9个小时,则有实际时间y=9;由此就产生了误差,损失函数.计算梯度用损失函数对参数w求偏导,得出梯度之后用梯度下降来更新参数w。

关于梯度和梯度下降可以参考深度强化学习-深度学习基础(一)

2.假设从天津到郑州的预测时间仍然为12个小时,我从天津出发,但是走到霸州车抛锚了,走不了了,已经花了3个小时。但是根据模型,从霸州到郑州需要走7个小时。此时我们有了一个新的估计从天津到郑州只需要3+7=10小时,因为有一段实际行走的路段3小时,因此此时的估计10小时相比于初始的12小时更为可靠。此时就使y=10;我们不需要跑完全程也能对其进行更新,损失函数,梯度计算,梯度下降和上面一样。q与y之间的差值就称为TD error。

我们下面理解一下:TD error,模型预测霸州到郑州需要7小时,总共12小时,则天津到霸州则5小时。但是我们实际走了3小时,实际与预测差值为2小时,和整体的TD error相等。TD算法最终的目标是使得TD error接近0.

具体公式:

先回忆一下回报:从当前时刻开始到回合结束的奖励的和。也可看作=+*

做期望就得到了t和t+1时刻的动作价值函数。

左侧是预估的总时间,右侧是当前真实观测到的时间,再加上对t+1时刻做的估计。在TD目标的动作a实际上就是根据动作价值函数对应动作得到奖励最大的那个动作。

不断更新,使得q与y逐渐接近。仍旧使用梯度下降公式。


Q学习算法:

Q学习的目的是学到最优动作价值函数。会构建一个Qtable,行列分别为当前状态与动作,对应的值表示奖励。给定状态求动作时,会自动选择该行最大的奖励所对应的动作表示要进行的动作,以此来进行决策。问题是Qtable是如何建立的呢?我们就是利用Q学习算法不断更新Qtable,使其能做出最优的决策。

最优贝尔曼方程:

左边就是我们要求的最优动作价值函数,右侧的期望是关于t+1时刻的。给出当前状态st,以及动作at会给出奖励rt和下一状态.Qtable初始为0矩阵,针对某一点(st,at)有在表格中已经存在的实际值,经过Q学习更新会得到一个新的预测值,最终更新为:实际值+学习率*(新的预测值-实际值)。最终Qtable的值趋于收敛,也就近似得到了最优动作价值函数。


同策略,异策略:

同策略代表行为策略和目标策略相同,异策略表示二者不同。

行为策略:控制智能体和环境交互,行为策略一般是用来收集经验,即观测的环境,动作,奖励。

目标策略:用这个策略函数来控制智能体,这个策略函数就叫做目标策略。

上面提到的Q学习就是利用行为策略收集(当前状态,当前动作,当前奖励,下一状态)这个四元组,并用他们训练目标策略。

贪婪策略是常用的行为策略,也是在Q学习中常用的策略,给定一个概率p,有1-p的概率按照预定策略进行,有p的概率从动作空间中完全随机地选取一个动作执行。让行为策略带有随机性是为了能获得更多未见过的状态。

深度强化学习-基于价值的强化学习-TD算法和Q学习(三)相关推荐

  1. 深度强化学习-基于价值学习的高级技巧(五-1)

    之前讲了TD算法和DQN,但实际上原始的DQN效果并不是很理想,因此本节主要讲解一些TD算法或者DQN的改进策略.包括经验回放, 高估问题(目标网络target network,double Q-le ...

  2. 强化学习 补充笔记(TD算法、Q学习算法、SARSA算法、多步TD目标、经验回放、高估问题、对决网络、噪声网络)

    学习目标: 深入了解马尔科夫决策过程(MDP),包含TD算法.Q学习算法.SARSA算法.多步TD目标.经验回放.高估问题.对决网络.噪声网络.基础部分见:强化学习 马尔科夫决策过程(价值迭代.策略迭 ...

  3. 深度强化学习-基于价值学习的高级技巧-对决网络(五-2)

    对决网络实属比较复杂和难以理解,我在博客末尾加上一点自己的总结与理解,虽然可能不太严谨,但绝对通俗易懂,大家一看就会!如有问题欢迎留言,本人几乎全天在线. 目录 公式: 网络: maxA的作用: 再理 ...

  4. 算法设计(动态规划实验报告) 基于动态规划的背包问题、Warshall算法和Floyd算法

    一.名称 动态规划法应用 二.目的 1.掌握动态规划法的基本思想: 2.学会运用动态规划法解决实际设计应用中碰到的问题. 三.要求 1.基于动态规划法思想解决背包问题(递归或自底向上的实现均可): 2 ...

  5. 《算法图解》学习笔记(八):贪婪算法和NP完全问题(附代码)

    欢迎关注WX公众号:[程序员管小亮] python学习之路 - 从入门到精通到大师 文章目录 欢迎关注WX公众号:[程序员管小亮] [python学习之路 - 从入门到精通到大师](https://b ...

  6. R语言应用实战系列(六)-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)

    一.神经网络 人工神经网络算法(ANN),是一种模仿生物神经网络的结构和功能的数学模型和计算模型.神经网络由大量的人工神经元联结进行计算.大多数情况下,人工神经网络能在外在信息的基础上改变内部结构,是 ...

  7. 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架

    转自:https://www.cnblogs.com/pinard/p/10384424.html 在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Poli ...

  8. 强化学习(十七) 基于模型的强化学习与Dyna算法框架

    在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...

  9. 强化学习q学习求最值_通过Q学习更深入地学习强化学习

    强化学习q学习求最值 by Thomas Simonini 通过托马斯·西蒙尼(Thomas Simonini) 通过Q学习更深入地学习强化学习 (Diving deeper into Reinfor ...

最新文章

  1. 编写优秀Bug报告的艺术 ----转载自CSDN(imlogic的专栏)
  2. 如何开发自己的第1个可以上线的Java项目?
  3. php laravel 排序,php – 在laravel中排序数组
  4. Android双机(网络和USB)调试及其完美ROOT
  5. mysql 四大基础操作_mysql数据库的基本操作
  6. 混凝土地坪机器人_地面整平机器人:精准又高效,轻松摆“平”混凝土
  7. isKindOfClass vs isMemberOfClass
  8. 玩了一年多电子商务,接触各种品类产品
  9. Win10推荐一款Terminal
  10. Thrift在windows7下的安装与实践
  11. 嵌入式Qt(实验三)——Qt网络编程
  12. 词根词缀的实践应用 - 词根词缀词典墨墨详细使用
  13. C4D插件X-Particles粒子特效(八)
  14. 三分钟上马 ESP32 spiffs文件系统
  15. 基于html的旅游网站的设计与实现
  16. win10电脑锁屏快捷键
  17. 利用ptython中的tutle画了一个表情包——2020冲冲冲!!
  18. Espresso测试示例
  19. 一个中文占多少个英文字符
  20. C语言第6次上课随堂讲义

热门文章

  1. autosar 时间同步
  2. virtio虚拟化框架
  3. 数学小抄: 对于齐次变换矩阵的伴随算子求导性质
  4. MFAN通用企业网站后台管理系统源码模板
  5. struts2框架的总结
  6. C语言文件的打开与关闭
  7. java计算时间差 毫秒_java 获取两个日期相差的毫秒数
  8. glove安装,以及安装中个各种坑
  9. 微信小程序page页面下有多余空白区域(解决方法)
  10. echarts设置柱形图宽度 最大宽度 最小宽度