1.Policy Gradient和DQN系列强化算法最大的区别在于:
DQN系列基于Value,也就是说执行完所有的动作并保存所得到的价值,根据这些价值计算出最优价值函数,并以此选择动作,最终获得一个特定的策略。
Policy Gradient基于策略来选择动作,Value Based方法中将动作价值函数进行近似,引入了一个动作价值函数q^,状态s和动作a为输入,价值函数输出,得到近似的动作价值。
PG中采用类似的思路,将策略表示成一个连续的函数之后,使用连续函数的优化方法寻找最优策略。

2.Policy Gradient要想得到最优策略需要经过这么几个步骤:
1.得有一个连续的函数,有了连续的函数才能使用连续 函数的优化方法寻找最优策略。我们类比DQN中的方法,将策略Π表示为一个连续的函数(这里只是把她表示出来,具体是需要详细的设计的):

2.找到一个可以优化的函数目标。最简单的优化目标是初始状态收获的期望

但有的问题没有明确的初始状态,这时可以将优化目标定义为平均价值

或者每一步的平均奖励

得到这个目标函数之后,我们要对他求一个梯度,为啥要求梯度呢,特意去翻了翻高数知识,梯度是指方向导数的最大值,梯度向量的方向即为函数值增长最快的方向,所以。有了梯度之后我们就可以随时找到函数值变化最大的方向,就可以实时的更新策略函数的参数从而找到最优策略了。

其中,我们把
这块称为分值函数

这大概就是PG的大概思路,所以我们接下来只要设计一个合适的策略函数,前面的就通了。

关于设计合适的策略函数,最常用的策略函数就是softmax策略函数了,它主要应用于离散空间,使用描述状态和行为的特征 ϕ(s,a)和参数
θ的线性组合来权衡一个行为发生的几率

策略函数表示出来了!接下来就按照前面的流程,求导得对应的分值函数:

好了我们现在想要的东西都得到了,接下来我们设计策略梯度算法,给它把数学符号和公式想办法变成代码就完工了!
下面这个就是一种最简单的策略梯度算法:

3.Softmax是什么?
https://blog.csdn.net/bitcarmanlee/article/details/82320853?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161853644116780366579767%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161853644116780366579767&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-82320853.pc_search_result_no_baidu_js&utm_term=softmax
如果将max看成一个分类问题,就是非黑即白(两个变量a,b,如果a>b,则max为a,fan’zhi),最后的输出是一个确定的变量。更多的时候,我们希望输出的是取到某个分类的概率,或者说,我们希望分值大的那一项被经常取到,而分值较小的那一项也有一定的概率偶尔被取到,所以我们就应用到了soft的概念,即最后的输出是每个分类被取到的概率。

4.交叉熵损失函数
https://blog.csdn.net/bitcarmanlee/article/details/105619286
图片参考:
刘建平Pinard
https://www.cnblogs.com/pinard/p/10137696.html

下一篇是我的PG代码注释版本

【强化学习】Policy Gradient原理相关推荐

  1. 强化学习: Policy Gradient

    目录 前言 参考资料 一.算法原理 1. 回合(episode)与轨迹(trajectory) 2. 奖励(reward)与损失函数 3. 策略梯度(Policy Gradient) 二.Tips 1 ...

  2. 深度强化学习-Policy Gradient基本实现

    全文共2543个字,2张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...

  3. 深度强化学习-DDPG算法原理和实现

    全文共3077个字,8张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...

  4. 深度强化学习-Actor-Critic算法原理和实现

    全文共2543个字,2张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...

  5. 深度强化学习——DQN算法原理

    DQN算法原理 一.DQN算法是什么 二.DQN训练过程 三.经验回放 (Experience Replay) 四.目标网络(Target Network) 1.自举(Bootstrapping) 2 ...

  6. 策略梯度模型 (Policy Gradient)原理与实现

    作者:陆平 1. 智能体与环境 策略梯度(Policy Gradient)模型是强化学习中的一个经典基础模型.它用来在某种环境下训练智能体.对于一些简单场景,我们可以把智能体与环境及关系抽象为: 智能 ...

  7. 强化学习ppt_机器学习原理、算法与应用配套PPT第四部分(深度学习概论、自动编码器、强化学习、聚类算法、半监督学习等)...

    本文是SIGAI公众号文章作者雷明编写的<机器学习>课程新版PPT第四部分,包含了课程内容的深度学习概论,自动编码器,受限玻尔兹曼机,聚类算法1,聚类算法2,聚类算法3,半监督学习,强化学 ...

  8. 那些年玩过的超级玛丽,竟然还隐藏了强化学习的这些原理

    深度强化学习是一个很有意思,值得持续研究的方向.现在深度学习大热,一点也不输给现在的室外气温,但大热背后也有隐忧,也就是深度学习虽然表面光鲜,但细看就会发现:仍然充满了槽点.这里说两个"费& ...

  9. 深度强化学习-D3QN算法原理与代码

    Dueling Double Deep Q Network(D3QN)算法结合了Double DQN和Dueling DQN算法的思想,进一步提升了算法的性能.如果对Doubel DQN和Duelin ...

最新文章

  1. 解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
  2. 场地测量的方法和程序_场地测量方案
  3. ASP.NET Web API 接口执行时间监控
  4. centos7.0 安装java1.8,tomcat
  5. PHP统计链接跳转的次数,如何在PHP页面统计某链接的点击数
  6. 列出搜索过的数据(类似京东顶部搜索框)
  7. 基于springboot+vue的学生选课系统(前后端分离)
  8. python中的filter函数
  9. linux aix试题,《aix-linux考试试题.xls》-支持高清全文免费浏览-max文档
  10. 仿真未编码和进行(7,4)Hamming码的编码的QPSK调制通过AWGN信道后的误比特性能比较
  11. 程序员转行做大数据有什么优势?
  12. excel小写转大写公式_知乎高赞回答:Excel从入门到精通,看这一篇就够了!
  13. liunx 红帽6.8、 oracle11g 安装指南
  14. tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)
  15. cisco Linux SRv6 实战踩坑记录
  16. 霖呆呆的近期面试128题汇总(含超详细答案)
  17. 蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)
  18. 管理系统之KTV点歌系统
  19. 利用tensorflow神经网络进行泰坦尼克的生存预测
  20. C++ STL函数库 pair (henu.hjy)

热门文章

  1. Akka STM –与STM Ref和Agent进行乒乓球比赛
  2. Java 7:在不丢失数据的情况下关闭NIO.2文件通道
  3. 关于JavaFX的最常见问题
  4. MacOS命令终端(CMD)的快捷键/终端快捷键
  5. c语言iota怎么用,C++ std::iota用法及代码示例
  6. php响应式布局,响应式布局之弹性布局的介绍
  7. windows server 2008 R2 命令行的方式创建用户、设置密码
  8. navicat运行sql文件慢_SQL进阶之路——入门
  9. indesign如何画弧线_彩铅画入门教程,如何给独角兽设计一款好发型
  10. php制作404,利用thinkphp怎么制作一个404跳转页面