深度强化学习-策略梯度算法推导

引言

1 策略梯度算法推导

1.1 方法一

1.2 方法二

2 Reinforce算法

3 Reinforce算法伪代码


引言

之前我们讨论过DQN算法:深度强化学习-DQN算法原理与代码、Double DQN算法:深度强化学习-Double DQN算法原理与代码、Dueling DQN算法:深度强化学习-Dueling DQN算法原理与代码以及D3QN算法:深度强化学习-D3QN算法原理与代码,这些算法在求解最优策略的过程中试图估计最优价值函数,所以这些算法都被称为最优价值算法(optimal value algorithm)

但是求解最优策略梯度不一定要估计最优价值函数,策略梯度算法(policy gradient algorithm)试图用含参函数近似最优策略,并通过迭代更新参数值。本文采用两种方法推导策略梯度算法,法一的推导过程比较简单,可以直观了解策略梯度算法的原理,但是不太严谨,具体可以参考李宏毅老师讲解PG算法的视频:Policy Gradient。法二的推导过程稍微复杂一点,但是推导过程严谨,Reinforce算法就是法二推导结果的直观体现。

1 策略梯度算法推导

强化学习的目标在于最大化累积期望回报,策略梯度算法给出了期望回报和策略梯度之间的关系。采用函数近似法估计最优策略的基本思想是用含参函数来近似最优策略。

1.1 方法一

假设智能体与环境交互一次的经验轨迹为,T为终止时刻,即

本次交互的累积回报为

本次经验轨迹出现的概率为

其中,由环境决定,与无关。

真实的累积回报为采样得到累积回报的期望,即累积期望回报为

关于求梯度,得到

注意:式中的其实与参数有关,但是推导时假定无关,没有算入梯度,因此不太严谨,不过并不影响对策略梯度算法的理解,严谨的推导见方法二。

由于

那么

上面求和符号可以通过采样消除,即N次采样后,得到

求对数,得到

关于求梯度,由于无关,因此全部被消掉,得到

代入,得到

策略梯度:

至此,我们完成了策略梯度算法的推导,沿着的方向改变策略参数,就有机会增加累积期望回报。不过,策略梯度公式中有一个需要注意的地方,表示的是整条轨迹的累积回报,并非即时回报。

1.2 方法二

策略满足Bellman期望方程

Bellman期望方程:

对以上两式关于求梯度,得到

代入,得到

在策略下,当时求上式的期望,得到

这样就得到了从的递推式。注意到最终关注的梯度值就是

所以有

考虑到

所以

又由于,所以

因此

策略梯度:

2 Reinforce算法

在每一个回合结束后,就回合中的每一步利用如下迭代式更新

这样的算法称为简单的策略梯度算法,R.Willims称它为“REward Increment=Nonnegative Factor x Offset Reinforcement x Characteristic Eligibility”(REINFORCE),表示增量是由三个部分的积组成。这样迭代完这个回合轨迹就实现了

在具体的更新过程中,不一定要严格采用这样的形式。当采用自动微分的软件包来学习参数时,可以定义单步的损失为,让软件包中的优化器减小整个回合中所有步的平均损失,就会沿着的梯度方向更新参数

3 Reinforce算法伪代码

深度强化学习-策略梯度算法推导相关推荐

  1. 深度强化学习-Double DQN算法原理与代码

    深度强化学习-Double DQN算法原理与代码 引言 1 DDQN算法简介 2 DDQN算法原理 3 DDQN算法伪代码 4 仿真验证 引言 Double Deep Q Network(DDQN)是 ...

  2. 【深度强化学习】DRL算法实现pytorch

    DRL Algorithms DQN (deep Q network) Policiy_Gradient 策略梯度是强化学习的一类方法,大致的原理是使用神经网络构造一个策略网络,输入是状态,输出为动作 ...

  3. 强化学习 11 —— REINFORCE 算法推导与 tensorflow2.0 代码实现

    在上篇文章强化学习--Policy Gradient 公式推导介绍了 Policy Gradient 的推导: ∇ θ J ( θ ) ≈ 1 m ∑ i = 1 m R ( τ i ) ∑ t = ...

  4. 【深度强化学习】DDPG算法

    1 DDPG简介 确定性策略梯度(Deterministic Policy Gradient,DPG):确定性策略是和随机策略相对而言的.作为随机策略,在同一个状态处,采用的动作是基于一个概率分布,即 ...

  5. 强化学习 | 策略梯度 | Natural PG | TRPO | PPO

    学习情况:

  6. 深度强化学习Soft-Actor Critic算法高性能Pytorch代码(改写自spinningup,低环境依赖,低阅读障碍)

    写在前面 DRL各种算法在github上各处都是,例如莫凡的DRL代码.ElegantDRL(易读性NO.1) 很多代码不是原算法的最佳实现,在具体实现细节上也存在差异,不建议直接用在科研上. 这篇博 ...

  7. 重温强化学习之深度强化学习

    1.简介                输入特征和真实特征相距比较远,加一个深度学习提取源的特征 2.基于值函数的深度强化学习 意义:不用函数近似无法解决大规模的问题,用函数近似训练不稳定,首次证明了 ...

  8. 赠票 | 深度强化学习的理论、算法与应用专题探索班

    文末有数据派赠票福利呦! 深度强化学习是人工智能领域的一个新的研究热点.它以一种通用的形式将深度学习的感知能力与强化学习的决策能力相结合,并能够通过端对端的学习方式实现从原始输入到输出的直接控制.自提 ...

  9. 线下报名 | YOCSEF TDS:深度强化学习的理论、算法与应用

    时间:7月29日9:00-17:20 地点:北京中科院计算所,一层/四层报告厅(暂定) 报名方式:1.报名链接:http://conf2.ccf.org.cn/TDS  2.点击文末阅读原文报名  3 ...

  10. 深度学习学习笔记-论文研读4-基于深度强化学习的多用户边缘计算任务卸载调度与资源分配算法

    本人学识浅薄,如有理解不到位的地方还请大佬们指出,相互学习,共同进步 概念引入 强化学习 DQN算法 边缘计算 边缘计算,是指在靠近物或数据源头的一侧,采用网络.计算.存储.应用核心能力为一体的开放平 ...

最新文章

  1. 机器学习中的训练集 验证集 测试集的关系
  2. Zookeeper知识学习
  3. Laravel 有哪些核心的内容?
  4. Map .NET Concepts to the Lightning Platform——list,set,map
  5. C语言博客作业05--指针
  6. Django(part49)--用Django自带的User模型类进行模拟登录
  7. winfrom 图片互传
  8. hql 查询条件 set集合_Redis从入门到深入-Sorted_set的value
  9. 深度学习《CGAN新认识》
  10. Centos 7 一键安装openstack
  11. 权御天下计算机音乐数字乐谱,权御天下(单音 适合电吉他)
  12. 解决win10删除文件时找不到该项目的问题
  13. markdown删除代码空白行
  14. 超神学院暗质计算机,超神学院之拳皇
  15. 【教案】心田花开:如何辅导一年级孩子看图写话
  16. 网络流量一对多镜像配置
  17. 5G智慧医疗全流程服务白皮书发布;2021年《故宫日历》青少版亮相 | 美通企业日报...
  18. 怎么利用抖音海外版tiktok进行赚钱?
  19. 扒了扒华为、新华三、联想、浪潮、曙光5家的财报,吓一大跳
  20. linux-FHS总结

热门文章

  1. 科技界、IT届的外号
  2. 挂载NTFS分区导致Docker容器无法启动,Exited (137)错误
  3. 【算法板子】普通平衡树(洛谷P3369)
  4. 几天几夜,终解移动MM计费SDK接入bug
  5. WINDOWS系统进程查询
  6. PE装错盘,装到移动硬盘的资料恢复办法
  7. Spring Security OAuth2搭建认证授权中心、资源服务中心、并结合网关校验的完整详细示例
  8. 第四十九篇: JAVA加密解密之凯撒加密(Caesar cipher)算法
  9. hdu3966-线段树
  10. 【冬瓜哥归来】传统存储老矣,新兴存储能当大任否?