Actor-Critic方法
复习回顾:
是动作价值函数的期望,如果动作是离散的,则是图中连加的形式,如果动作是连续的,则会是积分形式。是策略函数,可以计算动作的概率值,从而控制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方法相关推荐
- 深度增强学习--Actor Critic
Actor Critic value-based和policy-based的结合 实例代码 1 import sys 2 import gym 3 import pylab 4 import nump ...
- 强化学习论文笔记:Soft Actor Critic算法
Soft Actor Critic是伯克利大学团队在2018年的ICML(International Conference on Machine Learning)上发表的off-policy mod ...
- 【强化学习笔记】2020 李宏毅 强化学习课程笔记(PPO、Q-Learning、Actor + Critic、Sparse Reward、IRL)
前言 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 Introduction Two Learning Mod ...
- CS294(285) Actor Critic算法系列
CS294(285) Actor Critic算法系列 CS294(285) Actor Critic之agents(https://duanzhihua.blog.csdn.net/article/ ...
- actor critic玩cartpole
只能玩到reward=200多,git actor critic采用单步更新,每一步游戏后Actor和Critic都进行学习. Actor网络使用交叉熵损失,是因为r_s为正时需要增加选择a_s的概率 ...
- python实现CRITIC方法
一个很简单的CRITIC方法python实现,通常用来确定属性权重的标准重要性.除了不要求属性的独立性外,CRITIC方法还反映了属性之间的相关系数.主要步骤为 1.标准化决策矩阵,可以有很多种方法. ...
- 【强化学习】Actor Critic原理
PG算法是一种只基于policy的一种方法,存在的问题就是该算法需要完整的状态序列,且单独对策略函数进行迭代更新,不太容易收敛. Actor-critic方法呢是一种将 策略(Policy Based ...
- 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)的启发.控制器的主要特性是: 同时 ...
- 【UE4】查找Actor的方法(蓝图)
查找Actor的三种方法 Get All Actors Of Class :通过给定的对象模板将场景中与之匹配的对象进行查找,并返回查找到的所有对象. Get All Actors with Inte ...
- 【论文解读】深度强化学习基石论文:函数近似的策略梯度方法
导读:这篇是1999 年Richard Sutton 在强化学习领域中的经典论文,论文证明了策略梯度定理和在用函数近似 Q 值时策略梯度定理依然成立,本论文奠定了后续以深度强化学习策略梯度方法的基石 ...
最新文章
- 基于Matlab和Wind SQL数据库的通用选股策略回测程序
- 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
- 设置textview背景色为透明
- tableview动态修改和删除_Ubuntu加载动态库失败的解决方案
- MapXtreme 安装、编码及打包注意事项
- DOS常用网络相关命令
- 12-- 缺失的第一个正数
- 解决在工具栏Chrome图标上点击右键会显示“常去网站”和“最后关闭网站”的问题
- android 新闻应用、Xposed模块、酷炫的加载动画、下载模块、九宫格控件等源码...
- POJ1029 UVA158 Calendar题解
- mysql存储过程 定时任务
- 父shell和子shell
- 【精品】好用的验证码工具类VerifyCodeUtils
- linux下实现getch()函数的功能,linux下有没有和windows下的getch函数功能基本一样的函数?...
- 在计算机上配置超级终端,解决办法:如何在XP系统中设置超级终端? xp超级终端设置方法...
- “缺少winload.efi”的解决办法“:Windows Boot Manager更改读取启动信息路径
- bpsk调制及解调实验_漫画讲解调制解调,深奥的通信原理是不是明白了?
- STM32开源代码——TM1637四位数码管
- 王慧文清华产品课(二)
- vue.js毕业设计,基于vue.js前后端分离在线教育视频点播系统设计与实现(H5移动项目)
热门文章
- 对比学习损失函数中超参数temperature的作用
- cf837E(xjb)
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)...
- 神经网络的参数优化方法
- PYQT5 倒数计时器
- ASCII码完整版对照表,收藏起来以备不时之需
- 安兰德写作竞赛可以获得多少奖金?
- Elementui自定义Pagination 上一页下一页使用按钮
- PACT parameterized clipping activation for quantization neural networks
- [黑马IOS自学第四篇]C语言函数,进制,Unix命令、函数学习