强化学习(八)价值函数的近似表示与Deep Q-Learning
在强化学习系列的前七篇里,我们主要讨论的都是规模比较小的强化学习问题求解算法。今天开始我们步入深度强化学习。这一篇关注于价值函数的近似表示和Deep Q-Learning算法。
Deep Q-Learning这一篇对应Sutton书的第11章部分和UCL强化学习课程的第六讲。
1. 为何需要价值函数的近似表示
在之前讲到了强化学习求解方法,无论是动态规划DP,蒙特卡罗方法MC,还是时序差分TD,使用的状态都是离散的有限个状态集合SS。此时问题的规模比较小,比较容易求解。但是假如我们遇到复杂的状态集合呢?甚至很多时候,状态是连续的,那么就算离散化后,集合也很大,此时我们的传统方法,比如Q-Learning,根本无法在内存中维护这么大的一张Q表。
比如经典的冰球世界(PuckWorld) 强化学习问题,具体的动态demo见这里。环境由一个正方形区域构成代表着冰球场地,场地内大的圆代表着运动员个体,小圆代表着目标冰球。在这个正方形环境中,小圆会每隔一定的时间随机改变在场地的位置,而代表个体的大圆的任务就是尽可能快的接近冰球目标。大圆可以操作的行为是在水平和竖直共四个方向上施加一个时间步时长的一个大小固定的力,借此来改变大圆的速度。环境会在每一个时间步内告诉个体当前的水平与垂直坐标、当前的速度在水平和垂直方向上的分量以及目标的水平和垂直坐标共6项数据,奖励值为个体与目标两者中心距离的负数,也就是距离越大奖励值越低且最高奖励值为0。
在这个问题中,状态是一个6维的向
强化学习(八)价值函数的近似表示与Deep Q-Learning相关推荐
- 【强化学习笔记】从 “酒鬼回家” 认识Q Learning算法
1.背景 现在笔者来讲一个利用Q-learning 方法帮助酒鬼回家的一个小例子, 例子的环境是一个一维世界, 在世界的右边是酒鬼的家.这个酒鬼因为喝多了,根本不记得回家的路,只是根据自己的直觉一会向 ...
- 【四】多智能体强化学习(MARL)近年研究概览 {Learning cooperation(协作学习)、Agents modeling agents(智能体建模)}
相关文章: [一]最新多智能体强化学习方法[总结] [二]最新多智能体强化学习文章如何查阅{顶会:AAAI. ICML } [三]多智能体强化学习(MARL)近年研究概览 {Analysis of e ...
- Deep Q learning: DQN及其改进
Deep Q Learning Generalization Deep Reinforcement Learning 使用深度神经网络来表示 价值函数 策略 模型 使用随机梯度下降(SGD)优化los ...
- CNNs and Deep Q Learning
前面的一篇博文介绍了函数价值近似,是以简单的线性函数来做的,这篇博文介绍使用深度神经网络来做函数近似,也就是Deep RL.这篇博文前半部分介绍DNN.CNN,熟悉这些的读者可以跳过,直接看后半部分的 ...
- 【深度学习入门到精通系列】Deep Q Network
文章目录 1 什么是 DQN 2 DQN 算法更新 (Tensorflow) 3 DQN 神经网络 (Tensorflow) 4 DQN 思维决策 (Tensorflow) 1 什么是 DQN 我们使 ...
- 强化学习 补充笔记(TD算法、Q学习算法、SARSA算法、多步TD目标、经验回放、高估问题、对决网络、噪声网络)
学习目标: 深入了解马尔科夫决策过程(MDP),包含TD算法.Q学习算法.SARSA算法.多步TD目标.经验回放.高估问题.对决网络.噪声网络.基础部分见:强化学习 马尔科夫决策过程(价值迭代.策略迭 ...
- 强化学习第一步:Q_learning 算法,Q现实与Q估计分不清楚?我来说说我的理解
Q_learning 算法,Q现实与Q估计分不清楚 Q_learning 算法的一些简介 公式 Q现实与Q估计 Q_learning 算法的一些简介 是一种与模型无关的强化学习算法,直接优化一个可迭代 ...
- 强化学习5——价值函数近似(VFA)
价值函数近似(VFA) 原因:状态太多,算力存储能力有限.只能通过插值的办法(神经网络)近似求得无法算到的状态价值函数值或状态动作价值函数值,或者是策略.如下: 方法:线性拟合,神经网络,决策 ...
- CS294-112 深度强化学习 秋季学期(伯克利)NO.9 Learning policies by imitating optimal controllers...
make compromise between learnt policy and minimal cost! π hat is using states π theta is using obser ...
最新文章
- 我怎样才能参加比特币现金9月1日压力测试?
- shiro 没有注销再登录_Shiro 详细介绍 068
- python网络编程—TCP协议(一)
- SEO关键之密:自己创造一个关键词!
- python中常用的序列化模块_使用pickle模块对python对象进行序列化
- 单机简单搭建一个kafka集群(没有进行内核参数和JVM的调优)
- 本地项目antd 修改.less文件导致内存溢出
- 十四、PyCharm开发Python利用WMI修改电脑IP、DNS
- 利用SCCM2012中的导入计算机功能来实现定制化的操作系统部署
- SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第二篇)
- ubuntu添加PPA(个人软件包)源
- 什么是信息系统安全等级保护
- Linux之——udp端口测试连接
- MySQL数据库字段级权限设计
- 思科无线路由EA6500代理服务器,思科EA6500路由器怎样设置
- 往事如烟随风,切如梦初醒
- 简单实现微信抢红包的功能(Java)
- Airbnb如何应用AARRR策略成为全球第一民宿平台
- html给input添加边框,html input怎么设置虚线边框样式
- java毕业设计基于spring框架的论坛网站项目设计和源码
热门文章
- $(@_config=)什么意思?
- [MySQL优化案例]系列 -- OPTIMIZE的威力
- lwip之数据收发流程_1
- PAT甲级1070 Mooncake:[C++题解]贪心
- PAT甲级1069 The Black Hole of Numbers:[C++题解]模拟、6174
- Acwing756. 蛇形矩阵:模拟
- Leetcode1688. 比赛中的配对次数[C++题解]:简单题模拟
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
- java字符型转百分比_小数转换成百分比,转字符串
- java cursor_使用3.0驱动程序的Java中的Tailable Cursor示例?