Lecture 6:值函数近似
本文是自己学习David Silver课程的学习笔记:原视频可以在油管或者B站上搜到。
PPT的连接如下:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html。网速慢的话可以点击这里。
这里将会讲更深层次的东西,我们将会讲强化学习是如何应用到实际生活当中的。
强化学习需要解决large-scale的问题,什么是large-scale问题呢?
我们之前说的都是基于表格的强化学习算法,每个状态、每个动作值函数在表格中都有体现,但是对于Large-Scale问题,这种基于表格的方法并不使用,因为其状态空间、动作空间都是巨大的,我们无法去做这样一张巨大的表格。所以我们需要建立一个函数逼近模型,来逼近这个表格。
自然而然我们就会想到将状态值函数,动作值函数,利用一个近似函数将其替代。因为这两者是我们选择动作的依据,如果这两者被近似替代地很成功的话,我们就可以很好地做出动作,从而实现整个强化学习算法。
针对大规模MDP问题,我们无法将整个强化学习探索过程中的数据都给记录下来,因为数据量太大了,就算你可以这样记录下来,那么在计算过程当中也会非常地幔。
使用参数w来做这个值函数近似还有一些好处,我们可以对未知状态做出一个预测,因为理论上我们是拟合了所有的状态值函数。如果我们想要更新这些参数的话,我们就需要用到之前所说的蒙特卡洛方法,TD方法。
参数近似的方法有很多种:
- Linear combinations of features(组合特征)
- Neural network(神经网络)
- Decision tree(决策树)
- Nearest neighbour(邻近取样)
- Fourier / wavelet base(傅里叶变换,小波)
在这里我们主要考虑可微函数逼近(differentiable function approximators)像组合特征、神经网络。在训练神经网络的时候我们一般需要数据满足独立同分布。但是在强化学习智能体与环境交互时产生的数据是不满足独立同分布的,由此我们需要很多技巧来处理这件事情,我们之后再说。
在使用神经网络进行非线性逼近的话,我们需要先了解一下梯度下降算法:
那么我们将要如何将梯度下降算法应用到深度强化学习当中去呢?假设当前的状态值函数真实值是7,我们神经网络的估计值是7.5,那么我们可以利用最小化均方差来训练神经网络,从而完成神经网络对值函数的近似。
神经网络的输入就是能够充分表达状态的特征向量,但是很多时候我们很难去提取这样的特征向量,现在一般常用的做法是直接将图像像素信息输入进神经网络当中去。
在数学上来表示这样的公式如下图所示:
强化学习与监督学习不一样,监督学习是直接告诉你应该需要输出的是什么,强化学习只是告诉你你输出的是好的还是坏的,有多好还是有多坏。都是通过奖励来对其进行衡量。由于强化学习的学习目标是使得整个回合的奖励最大,由此提出了蒙特卡洛的方法,这样的计算量太大,提出了基于TD的方法,这种方法的好处就是我们不必等到整个回合结束再来对其进行更新。
蒙特卡洛方法是一个无偏估计的方法,TD的方法是一个有偏的估计方法。
由于强化学习在处理序列决策问题,因此数据之间的相关性比较重,DeepMind团队提出了经验回放(experience replay)的技巧:
将数据放入经验库当中,然后随机对其进行抽样,这种方法我们就能够打破数据之间的相关性。这个方法是在DQN算法里面被提出来的,同时被提出来的还有设立目标网络:
Lecture 6:值函数近似相关推荐
- 值函数近似Value Function Approximation
1.Introduction 值函数有两种:状态值函数V(s)和动作状态值函数Q(s,a).对于大规模MDP问题,有很多state或者action需要存储,单个学习每种状态的价值非常慢,因此使用函数逼 ...
- 重温强化学习之函数近似
1.简介 之前提到的方法目的是求值函数,通过值函数找打策略 基于表格的方法: 基于表格方法精确的描述每一个动作和状态的大小,表格大小会随着状态数量和动作数量快速膨胀,对于表格中某一项的 ...
- 【文献学习】强化学习1:基于值函数的方法
参考文献: [1]<机器学习>,周志华(西瓜书) [2]<强化学习>,邹伟,等(鳄鱼书) (今天看书总是走神,干脆总结一下,希望帮自己理清思路.如果碰巧能被大神看到,如有不正确 ...
- 强化学习(七) - 函数近似方法 - 随机梯度下降, 半梯度下降,及瓦片编码(Tile Coding)实例
函数近似方法 7.1 目标预测(VE‾\overline{VE}VE) 7.2 随机梯度下降和半梯度下降 例7.1: 1000态随机行走的状态收敛 7.3 线性近似 7.4 线性方法的特征构造 7.4 ...
- 【论文解读】深度强化学习基石论文:函数近似的策略梯度方法
导读:这篇是1999 年Richard Sutton 在强化学习领域中的经典论文,论文证明了策略梯度定理和在用函数近似 Q 值时策略梯度定理依然成立,本论文奠定了后续以深度强化学习策略梯度方法的基石 ...
- 基于值函数逼近的强化学习方法
基于值函数逼近的强化学习方法 1.表格型强化学习方法 2.值函数逼近方法理论 2.1 值函数逼近方法的分类 2.2.值函数逼近和表格型强化学习方法的比较 2.3.参数化逼近 2.4.增量式学习方法 2 ...
- 【干货】全面总结(值函数与优势函数)的估计方法
深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 作者:高新根博士(DeepRL-Lab研究员) 编 ...
- [强化学习实战]函数近似方法-线性近似与函数近似的收敛性
线性近似 最常使用的函数近似就是线性近似和人工神经网络.本节介绍线性近似.线性近似是用许多特征向量的线性组合来近似价值函数.特征向量则依赖于输入(即状态或状态动作对).以动作价值近似为例,我们可以为每 ...
- 第二篇 值函数Based——基于值函数逼近的强化学习方法
本分类专栏博客系列是学习<深入浅出强化学习原理入门>的学习总结. 书籍链接:链接:https://pan.baidu.com/s/1p0qQ68pzTb7_GK4Brcm4sw 提取码:o ...
- Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数
Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...
最新文章
- CVPR2020:点云分类的自动放大框架:PointAugment
- socket sock inet_sock 等关系
- 针对java程序员的好书目录 各帖总结与收集,自用送礼两相宜
- boost::make_ready_future相关的测试程序
- bzoj 刷题计划~_~
- javacv 人脸检测_使用JavaCV进行手和手指检测
- JSTL之数字、日期格式化fmt:formatNumber/、fmt:formatDate/
- Commerce Server 2002 Starter Site and 2006 overview
- [转载]C#获取DLL的目录
- 对Spring Boot还陌生吗?
- 在Ubuntu 18.04上安装Jenkins
- sp_help 查看表结构 alter column修改字段长度
- 股市法则:长线大钱最终胜出(荀玉根、姚佩)
- nbu备份win平台oracle,NBU备份ORACLE错
- 鸿蒙电视应用beta,华为鸿蒙 2.0 开发者公测版 Beta 3 更新:增加三个鸿蒙应用
- linux dns chroot,chroot环境下dns解析不好用
- DM8 2节点DSC+DW搭建及故障测试
- linux忘了用户名和密码_linux忘记用户名怎么办
- 【DSA】树-哈弗曼树详解(3)
- 7-4 银行排队问题之单窗口“夹塞”版 (30 分) C语言版