复习回顾:

是动作价值函数的期望,如果动作是离散的,则是图中连加的形式,如果动作是连续的,则会是积分形式。是策略函数,可以计算动作的概率值,从而控制agent做运动,是动作价值函数,可以评价动作的好坏程度。可惜策略函数和都不知道,于是需要用两个神经网络分别近似这两个函数,再用Actor-Critic方法同时学习这两个神经网络。

我们可以用策略网络 来近似策略函数,θ为策略网络的参数。我们用策略网络控制agent做运动,决策是由策略网络做的,所以策略网络也叫actor。相当于运动员。

用另一个神经网络来近似价值函数,这里的w是神经网络的参数,即价值神经网络,这里的价值网络不控制agent的运动,只是给动作打分而已,所以被称为critic。相当于裁判。

所以最后可以写成:

搭建网络:

具体过程已经介绍过。

这个价值网络可以可以和策略网络共享卷积层的参数,也可以跟策略网络完全独立。

训练网络:

更新θ和w的目标是不同的。

更新策略网络的参数θ是为了让v函数的值增加,v函数是对策略π和状态s的评价,如果固定s,v越大,则说明策略π越好,所以我们要更新θ,使得v的平均值增加。学习策略网络的时候,监督是由价值网络提供的。即运动员的分数是由裁判打分的,运动员改进自己的技术,争取让裁判打的分数平均值更高。

更新价值网络的w是为了打分更精准,从而更好地估计未来得到的奖励的总和。相当于裁判,一开始是随机初始化的,所以一开始裁判没有判断能力,打分都是瞎猜的,裁判会逐步改变自己的水平,让打分越来越精准。裁判靠的什么改变呢?是根据环境给的奖励reward。

使用下面5个步骤对两个神经网路进行更新:

首先观察到当前状态st。

第二步把st作为输入,用策略网络来计算概率分布,随机抽样得到动作at。

第三步agent执行动作at,这时环境会更新状态s到并给出奖励

第四步,有了奖励就可以用TD算法更新价值网络的参数w,也就是让裁判变得更准确。

最后用策略梯度算法来更新策略网络的参数θ,更新该参数要用到裁判对动作at的打分。

更新价值网络:

首先用价值网络来给动作打分,分别给打分,这里的动作是由策略函数随机抽取的。

然后算一下TD target,算出来的值记作yt,γ是折扣率。

再算损失函数,所以要做梯度下降,让损失函数变小,α是学习率。

用策略梯度下降更新策略网络:

已经介绍过了。

网络详解:

策略网络(actor)观测到当前的状态s,控制agent做出动作a,目的是是自己做出的动作更好。问题是什么样的动作更好?

为了使得动作越来越好,需要裁判的作用,裁判通过观察此时的状态s和动作a,给出分数q并告诉运动员。运动员就靠这个q来改变自己的技术,即神经网络里面的参数,通过状态s,动作a,打分q近似算出策略梯度,然后用梯度上升来更新参数,通过这样做,运动员的动作平均水平会越来越高。但是这样做只是为了迎合裁判的喜好,使得裁判的打分q越来越高了,更高的q并不能说明该运动员变得更优秀了,裁判的水平也很重要,二流的裁判不会产生一流的运动员。

为了让运动员变得更优秀,还要使得裁判有更优秀的打分能力,最开始价值网络是随机初始化的,意味着裁判啥也不懂,打分是瞎猜的。所以要不断改进裁判。裁判要靠r来提升打分水平。r相当于上帝视角,即全部结束时的汇报,裁判根据动作a和状态s进行打分,可以生成打分q,比较q和q+1,以及奖励rt,用TD算法更新价值网络参数,这样可以让裁判打分更精准。

算法总结;

1.观测此时的状态,更具策略函数生成此时概率密度,从中随机抽取动作

2.让agent执行动作,此时环境生成新的状态,和回报

3.拿状态作为输入,用策略网络生成新的概率,随机抽样得到动作,这个只是一个假想的动作,agent并不会去做这个动作,算法的每一轮循环只做一次动作,已经做过了。

4.算两次价值网络的输出,用作为输入,算出,用算出。此时丢掉,因为agent并不会执行此动作。

5.算TD error,预测值与TD Target()的差即为TD error,记作

6.对价值网络求导,算出q网络对w的梯度,把q关于w的梯度记为

7.用TD算法更新价值网络,让裁判打分变得更精准。α是学习率,做梯度下降算法,使得预测离TD Target更近。

8.对策略网络求导,记作

9.用梯度上升更新策略网络,让运动员的平均分更高(该步骤中也会使用来替换公式中的,这两种方法都是对的)。

每个循环都做这9个动作,每个循环都只做一个动作,只得一次奖励。

可以看到,训练结束后价值神经网络就没用了,因为该二重网络的终极目的是让运动员的动作完美,所以训练结束后裁判就没用了。

Actor-Critic方法相关推荐

  1. 深度增强学习--Actor Critic

    Actor Critic value-based和policy-based的结合 实例代码 1 import sys 2 import gym 3 import pylab 4 import nump ...

  2. 强化学习论文笔记:Soft Actor Critic算法

    Soft Actor Critic是伯克利大学团队在2018年的ICML(International Conference on Machine Learning)上发表的off-policy mod ...

  3. 【强化学习笔记】2020 李宏毅 强化学习课程笔记(PPO、Q-Learning、Actor + Critic、Sparse Reward、IRL)

    前言 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 Introduction Two Learning Mod ...

  4. CS294(285) Actor Critic算法系列

    CS294(285) Actor Critic算法系列 CS294(285) Actor Critic之agents(https://duanzhihua.blog.csdn.net/article/ ...

  5. actor critic玩cartpole

    只能玩到reward=200多,git actor critic采用单步更新,每一步游戏后Actor和Critic都进行学习. Actor网络使用交叉熵损失,是因为r_s为正时需要增加选择a_s的概率 ...

  6. python实现CRITIC方法

    一个很简单的CRITIC方法python实现,通常用来确定属性权重的标准重要性.除了不要求属性的独立性外,CRITIC方法还反映了属性之间的相关系数.主要步骤为 1.标准化决策矩阵,可以有很多种方法. ...

  7. 【强化学习】Actor Critic原理

    PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛. Actor-critic方法呢是一种将 策略(Policy Based ...

  8. An Actor–Critic based controller for glucose regulation in type 1 diabetes

    a b s t r a c t \qquad 控制器基于Actor-Critic(AC)算法,受强化学习和最优控制理论(optimal control theory)的启发.控制器的主要特性是: 同时 ...

  9. 【UE4】查找Actor的方法(蓝图)

    查找Actor的三种方法 Get All Actors Of Class :通过给定的对象模板将场景中与之匹配的对象进行查找,并返回查找到的所有对象. Get All Actors with Inte ...

  10. 【论文解读】深度强化学习基石论文:函数近似的策略梯度方法

     导读:这篇是1999 年Richard Sutton 在强化学习领域中的经典论文,论文证明了策略梯度定理和在用函数近似 Q 值时策略梯度定理依然成立,本论文奠定了后续以深度强化学习策略梯度方法的基石 ...

最新文章

  1. 基于Matlab和Wind SQL数据库的通用选股策略回测程序
  2. 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
  3. 设置textview背景色为透明
  4. tableview动态修改和删除_Ubuntu加载动态库失败的解决方案
  5. MapXtreme 安装、编码及打包注意事项
  6. DOS常用网络相关命令
  7. 12-- 缺失的第一个正数
  8. 解决在工具栏Chrome图标上点击右键会显示“常去网站”和“最后关闭网站”的问题
  9. android 新闻应用、Xposed模块、酷炫的加载动画、下载模块、九宫格控件等源码...
  10. POJ1029 UVA158 Calendar题解
  11. mysql存储过程 定时任务
  12. 父shell和子shell
  13. 【精品】好用的验证码工具类VerifyCodeUtils
  14. linux下实现getch()函数的功能,linux下有没有和windows下的getch函数功能基本一样的函数?...
  15. 在计算机上配置超级终端,解决办法:如何在XP系统中设置超级终端? xp超级终端设置方法...
  16. “缺少winload.efi”的解决办法“:Windows Boot Manager更改读取启动信息路径
  17. bpsk调制及解调实验_漫画讲解调制解调,深奥的通信原理是不是明白了?
  18. STM32开源代码——TM1637四位数码管
  19. 王慧文清华产品课(二)
  20. vue.js毕业设计,基于vue.js前后端分离在线教育视频点播系统设计与实现(H5移动项目)

热门文章

  1. 对比学习损失函数中超参数temperature的作用
  2. cf837E(xjb)
  3. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)...
  4. 神经网络的参数优化方法
  5. PYQT5 倒数计时器
  6. ASCII码完整版对照表,收藏起来以备不时之需
  7. 安兰德写作竞赛可以获得多少奖金?
  8. Elementui自定义Pagination 上一页下一页使用按钮
  9. PACT parameterized clipping activation for quantization neural networks
  10. [黑马IOS自学第四篇]C语言函数,进制,Unix命令、函数学习