线性近似

最常使用的函数近似就是线性近似和人工神经网络。本节介绍线性近似。线性近似是用许多特征向量的线性组合来近似价值函数。特征向量则依赖于输入(即状态或状态动作对)。以动作价值近似为例,我们可以为每个状态动作对定义多个不同的特征 x ( s , a ) = ( x j ( s , a ) : j ∈ J ) x(s,a)=(x_j(s,a):j∈\mathcal{J} ) x(s,a)=(xj​(s,a):j∈J),进而定义近似函数为这些特征的线性组合,即

对于状态函数也有类似的近似方法:

精确查找表与线性近似的关系

对于动作价值而言,可以认为有 ∣ S ∣ × ∣ A ∣ |S|×|A| ∣S∣×∣A∣个特征向量,每个向量的形式为

即在某个的状态动作对处为1,其他都为0。这样,所有向量的线性组合就是整个动作价值函数,线性组合系数的值就是动作价值函数的值。

线性最小二乘策略评估

在使用线性近似的情况下,不仅可以使用基于随机梯度下降的策略评估方法,还可以使用线性最小二乘来进行策略评估。线性最小二乘是一种批处理(batch)方法,它每次针对多个经验样本,试图找到在整个样本集上最优的估计。

将线性最小二乘用于回合更新,可以得到线性最小二乘回合更新(Linear Least Square Monte Carlo,Linear LSMC)。线性最小二乘回合更新试图最小化

在线性近似的情形下,其梯度为

将待求的权重 w L S M C w_{LSMC} wLSMC​代入上式并令其等于零,则有

求解该线性方程组得:

这样就得到了线性最小二乘回合更新的计算式。在实际使用时,直接使用上式更新权重,就实现了线性最小二乘回合更新。
将线性最小二乘用于时序差分,可以得到线性最小二乘时序差分更新(Linear Least Square Temporal Difference,Linear LSTD)。对于单步时序差分的情况,线性最小二乘时序差分试图最小化

其中 U t = R t + 1 + γ q ( S t + 1 , A t + 1 ; w ) U_t=R_{t+1}+γq(S_{t+1},A_{t+1};w) Ut​=Rt+1​+γq(St+1​,At+1​;w)。在线性近似的情况下,其半梯度为

将待求的权重 w L S T D w_{LSTD} wLSTD​代入上式并令其等于零,则有

求解该线性方程组得:

这样就得到了线性最小二乘时序差分更新的计算式。在实际使用时,直接使用上式更新权重,就实现了线性最小二乘时序差分更新。

线性最小二乘最优策略求解

最小二乘也可以用于最优策略求解。本节介绍基于Q学习的最小二乘最优策略求解算法。
在Q学习中,回报的估计为

这和上一节介绍的时序差分策略估计相比,就是把回报的估计值 R t + 1 + γ q ( S t + 1 , A t + 1 ; w ) 中 的 A t + 1 换 成 q ( S t + 1 , a ; w ) R_{t+1}+γq(S_{t+1},A_{t+1};w)中的A_{t+1}换成q(S_{t+1},a;w) Rt+1​+γq(St+1​,At+1​;w)中的At+1​换成q(St+1​,a;w)。所以,其最小二乘的解相应从

变为

求解上述最小二乘解,可以得到最优价值函数的估计,进而得到最优策略的更新。据此反复进行策略迭代,就得到了线性最小二乘Q学习算法(见算法8)。

算法8 线性最小二乘Q学习算法求解最优策略
输入:许多经验。
输出:最优动作价值估计 q ( s t , a t ; w ) , s ∈ , a ∈ ( s ) q(st,at;w),s∈ ,a∈ (s) q(st,at;w),s∈,a∈(s)和确定性最优策略的估计π。
1.(初始化) w ← 任 意 值 ; 用 q ( s t , a t ; w ) , s ∈ , a ∈ ( s ) w←任意值;用q(s_t,a_t;w),s∈ ,a∈ (s) w←任意值;用q(st​,at​;w),s∈,a∈(s)确定贪心策略π。
2.(迭代更新)迭代进行以下操作:
2.1 (更新价值) ,其中是由确定性策
略π决定的在状态%S_{t+1}%的动作。
2.2 (策略改进)根据 q ( s , a ; w ′ ) , s ∈ , a ∈ ( s ) q(s,a;w'),s∈ ,a∈ (s) q(s,a;w′),s∈,a∈(s)决定确定性策略π’。
2.3 如果达到迭代终止条件(如w和w’足够接近,或π和π’足够接近),则终止迭
代;否则更新 w ← w ′ , π ← π ′ w←w',π←π' w←w′,π←π′进行下一轮迭代。

函数近似的收敛性

线性近似具有简单的线性叠加结构,这使得线性近似可以获得额外的收敛性。表1和表2分别给出了策略评估算法和最优策略求解算法的收敛性。在这两个表中,查找表指的是不采用函数近似的方法。一般情况下,它们都能收敛到真实的价值函数或最优价值函数。但是,对于函数近似算法,收敛性往往只在采用梯度下降的回合更新时有保证,而在采用半梯度下降的时序差分方法时是没有保证的。限定函数近似采用线性近似后,在个别情况下收敛情况有提升。当然,所有收敛性都是在学习率满足RobbinsMonro序列的情况下(即同时满足 ( 1 ) α t ≥ 0 , t = 0 , 1 , … ; ( 2 ) ∑ t = 0 + ∞ α t = + ∞ ( 3 ) ∑ t = 0 + ∞ α 2 < + ∞ (1)αt≥0,t=0,1,…;(2)\sum_{t=0}^{+\infty} \alpha_t=+\infty(3)\sum_{t=0}^{+\infty}{\alpha}^2<+\infty (1)αt≥0,t=0,1,…;(2)∑t=0+∞​αt​=+∞(3)∑t=0+∞​α2<+∞才具有的。线性近似还可以和批处理的线性最小二乘结合,可能得到更好的收敛性。对于能保证收敛的情况,收敛性一般都可以通过验证随机近似Robbins-Monro算法的条件证明。
另外,最优策略求解的收敛性证明用到了其随机优化的版本。

表1 策略评估算法的收敛性

表2 最优策略求解算法的收敛性

值得一提的是,对于异策的Q学习,即使采用了线性近似,仍然不能保证收敛。研究人员发现,只要异策、自益、函数近似这三者同时出现,就不能保证收敛。一个著名的例子是Baird反例(Baird’s counterexample),有兴趣的读者可以自行查阅。

[强化学习实战]函数近似方法-线性近似与函数近似的收敛性相关推荐

  1. 【强化学习实战-04】DQN和Double DQN保姆级教程(2):以MountainCar-v0

    [强化学习实战-04]DQN和Double DQN保姆级教程(2):以MountainCar-v0 实战:用Double DQN求解MountainCar问题 MountainCar问题详解 Moun ...

  2. 干货!基于非递减分位数网络的值分布强化学习及其高效探索方法

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 尽管值分布强化学习在过去几年中得到了广泛的研究,但仍然存在两方面未能解决问题:一是如何保证估计出来的分位数函数的有效性,二是如何有效地利 ...

  3. 基于深度强化学习的组合优化方法在工业应用中的实践

    <统筹方法平话>中有一个例子曾被收录到语文课本中,讲"烧水泡茶"有五道工序:1.烧开水,2.洗茶壶,3.洗茶杯,4.拿茶叶,5.泡茶,其中前四道工序是泡茶的前提,且各道 ...

  4. 【强化学习实战】基于gym和tensorflow的强化学习算法实现

    [新智元导读]知乎专栏强化学习大讲堂作者郭宪博士开讲<强化学习从入门到进阶>,我们为您节选了其中的第二节<基于gym和tensorflow的强化学习算法实现>,希望对您有所帮助 ...

  5. 【经典书籍】深度强化学习实战(附最新PDF和源代码下载)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 深度强化学习可以说是人工智能领域现在最热门的方向,吸引了众多该领域优秀的科学家去发 ...

  6. PyTorch强化学习实战(1)——强化学习环境配置与PyTorch基础

    PyTorch强化学习实战(1)--强化学习环境配置与PyTorch基础 0. 前言 1. 搭建 PyTorch 环境 2. OpenAI Gym简介与安装 3. 模拟 Atari 环境 4. 模拟 ...

  7. 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法

    导读:本论文由Berkeley 的几位大神于2015年发表于 JMLR(Journal of Machine Learning Research).深度强化学习算法例如DQN或者PG(Policy G ...

  8. MATLAB强化学习实战(十三) 使用强化学习智能体训练Biped机器人行走

    使用强化学习智能体训练Biped机器人行走 两足机器人模型 创建环境接口 选择和创建训练智能体 DDPG Agent TD3 Agent 指定训练选项和训练智能体 仿真训练过的智能体 比较智能体性能 ...

  9. 强化学习实战 --- 用DQN让Ai玩吃豆子游戏吧

    前景介绍 上期文章介绍TensorFlow入门基础篇,本意就是给介绍强化学习做一篇前置. 本期我们将尝试利用深度强化学习来让神经网络学习自动地玩一款经典的吃豆人小游戏.让我们愉快地开始吧~ 吃豆人小游 ...

最新文章

  1. java datetime now_相当于C#的DateTime.Now在Java中?
  2. [置顶] 决策树绘图(二)
  3. QTreeWidget 读取windows注册表
  4. 集美大学教务处验证码识别(一)
  5. 交换机生成树协议配置
  6. 《系统集成项目管理工程师》必背100个知识点-64采购文件
  7. 学习WPF——使用Font-Awesome图标字体
  8. 课时40:类与对象:一些相关的BIF
  9. 灰度资产管理总规模升至460亿美元
  10. 会议家用多面手!智能微型投影设备导购
  11. 为何python不好找工作-听说自学Python不好找工作,小白要如何学Python?
  12. SSM项目整合实现数据库CRUD操作(菜鸟模仿版,熟练码农版,大神探讨版)
  13. 内网穿透群晖NAS:免费安装cpolar群晖套件 1/2
  14. winpe修复计算机无法启动,如何使用winpe来修复无法进入系统
  15. std::decay 类型萃取
  16. MPB:使用QIIME 2分析微生物组16S rRNA基因扩增子测序数据(视频)
  17. 智伴机器人三级分销模式_微信三级分销模式的可行性?
  18. 邮储银行计算机岗位笔试题,中国邮政储蓄银行各类岗位笔试经验汇总
  19. 【漏洞学习——SSRF】腾讯某处SSRF漏洞(非常好的利用点)附利用脚本
  20. 初创企业如何做高效持续交付

热门文章

  1. LoRaWAN介绍3 优点
  2. 爆肝分享!什么样的架构师修炼之道文档,才能帮助大家修炼成为最最出色的架构师?不服就干!绝不怂!
  3. Adobe安装程序无法访问关键文件/目录,请尝试重新安装。(错误代码:41) 解决方法
  4. 用ANSYS画矩形_基于ANSYS的压力自动加载
  5. android+ble室内定位,基于BLE的室内定位系统的设计与实现
  6. Python Numpy练习(一)
  7. CF1740F Conditional Mix
  8. 英国工人手机上网欠巨债 收到2.7万英镑帐单
  9. go项目打包交给k8s发布并管理步骤
  10. OR和AR系统的区别