目录

1 阅前需知

2 为什么方差大?

3 如何解决方差大问题?

3.1 Add a baseline

3.2 TD 代替 MC (即Actor-Critic方法)

4 阅后须知


1 阅前需知

策略梯度方法(Policy-Based)方法直接学习参数化的策略来进行动作的选择。本文所用符号的习惯与下书一致

此书中将所有符合以下条件的均称为Policy-Based方法,不论这种方法是否学习值函数:

①直接学习参数化的策略

②梯度上升法更新参数  

考虑到这么多方法统称为Policy-Based方法,本文在此特意说明,本文所指的方差大问题,是就最开始的Policy-Based方法而言的,即REINFORCE方法,伪代码如下图(相信学过的人一定对这图很熟悉,就不多说了)

图1 REINFORCE伪代码

2 为什么方差大?

为了方便说明,本文假设状态空间中有s1,s2两个状态,动作空间有a1,a2,a3三个动作。假设不同状态下采取不同动作得到的即时奖励如下表所示(在状态s1时采取动作a1,得到奖励200)

根据图1,我们会在当前策略下进行MC采样来得到一条episode,进而用于更新,假设采样结果如下所示,纵向是可能的trajectory,横线是某trajectory在不同时刻的采样结果。Rt+1之所以没写,是因为现在在计算Q(s,a),st,at固定之后,Rt+1是个定值,而后面的st+1等不是定值。

为了更简单直观的表达,我们令折扣因子,根据图1,策略梯度是,其中

因为Gt是Q(s,a)的无偏估计,所以这样采样得到的结果就是策略梯度的无偏估计,那么其方差呢?请听我慢慢道来...

是对数概率的梯度,只与策略有关,因为是在当前策略下采样,所以不妨将其看做G的一个系数或者说权重,如此一来,方差的来源就是G,只不过是对G的方差起一个放缩的作用。(根据公式),下面我们来分析G的方差。

由此可以看出,方差大来源于2个原因:

①若不同s对应的R范围相差较大,再加上MC的随机性,那么每一步的R都会有较大的方差。

②因为采样轨迹长度的原因,出现方差累积。

3 如何解决方差大问题?

①针对第一个原因,提出Add a Baseline

②用TD方法代替MC(即Actor-Critic方法)

下面详细解说...

3.1 Add a baseline

我们可以设计一个与状态s有关的函数b(s),作为这个状态下奖励的baseline,只有超过这个baseline,我们才会给出正的奖励,否则给出负的奖励。看下面这个简单的例子,对某个时间步,R的取值有200,210,220,105,110,115共6种可能,这时候的方差是不是很大呢?R的方差大,Gt的方差自然也小不了,方差大的话就会减慢学习的速度(可以类比下SGD和GD的关系,SGD就是因为随机选择一个样本,所以与真实的梯度相比方差比较大,导致学习曲线震荡,收敛较慢,所以就有了小批量梯度下降来降低SGD的方差(原理是))

-10,0,10,-5,0,5这个序列是不是比200,210,220,105,110,115的方差小呢?当然小咯。那就果断安排上啊,可以加快学习效率!

当然了,也不是说所有baseline都能降低方差咯,要好好设计一番。上图中b(s)用的是均值,这是最常用的baseline方法,却不是最优的baseline。那为什么不是最优还要用呢?因为简单。如果有人想知道推导的话,可以留言哦(原理与相似,只不过是x-a带权重)。

3.2 TD 代替 MC (即Actor-Critic方法)

TD只用了一个时刻的即时奖励r,所以相比MC而言可以避免方差累积的问题。

4 阅后须知

以上皆为我个人理解,若有不同意见,还请大家不吝留言探讨。

另外附上我在组会上讲的关于策略梯度的PPT,请点击策略梯度PPT获取。

关于“强化学习 策略梯度方法 方差大 的原因与解决方法”问题的思考相关推荐

  1. Linux系统盘爆满根目录100%,又找不到占空间的大文件 原因与解决方法

    最近一位朋友他的Linux(Centos7)根目录一直100%,也就是系统文件磁盘已经爆满了.虽然通过:df -h, du -sh * 等指令配合使用,发现当前系统任然存在大量可以使用的空间(6.5G ...

  2. 计算机主机风扇声音大的原因,电脑主机风扇声音大的原因及解决方法

    为了帮助电脑更好的散热,在电脑主机上面也有安装风扇,一般电脑一开机风扇也开始运行.但是有些人却发现电脑主机风扇运行的过程中声音非常的大,由于声音比较大的关系导致自己很心烦.为大家介绍电脑主机风扇声音大 ...

  3. vue父组件引用子组件方法显示undefined问题原因及解决方法

    vue父组件引用子组件方法显示undefined问题原因及解决方法 参考文章: (1)vue父组件引用子组件方法显示undefined问题原因及解决方法 (2)https://www.cnblogs. ...

  4. mysql死锁的原因及解决方法_mysql死锁的原因及解决方法

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. mysql死锁的原因及解决方法如下: 1.一个用户A访问表A(锁住了表A),然后又访问表B:另一个用户B 访问表B(锁住了表B), ...

  5. 计算机黑屏故障的原因及解决方法,电脑黑屏原因及解决方法

    电脑黑屏原因及解决方法 导语:当电脑发生黑屏时往往是什么原因引起的呢?我们如何进行解决呢?下面是小编给大家提供的电脑黑屏原因及解决方法,大家可以参考阅读,更多详情请关注应届毕业生考试网. 电脑黑屏原因 ...

  6. 梯度消失和梯度弥散现象形成的原因和解决方法

    1 梯度消失和梯度爆炸产生的原因 https://blog.csdn.net/yhily2008/article/details/80790476 https://zhuanlan.zhihu.com ...

  7. 计算机主机风扇声音大的原因,电脑声音大怎么回事 电脑风扇声音大的原因及解决方法...

    大家都知道电脑机箱中一般都会有两到三个风扇,如果电脑风扇声音大,那么必然会产生整个电脑机箱声音大的问题,那么 电脑声音大怎么办,电脑风扇声音大的原因到底是怎么回事 ,我们来找下原因吧. 1.机箱中排线 ...

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

    学习情况:

  9. mysql 死锁原因_Mysql并发时经典常见的死锁原因及解决方法

    1.mysql都有什么锁 MySQL有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒 ...

  10. python内核死亡的原因_Kernel Panic常见原因以及解决方法

    Technorati 标签: Kernel Panic 出现原因 1. Linux在中断处理程序中,它不处于任何一个进程上下文,如果使用可能睡眠的函数,则系统调度会被破坏,导致kernel panic ...

最新文章

  1. 苹果电脑安装python3密码_mac系统安装Python3初体验
  2. 暑期集训3:几何基础 练习题G: HDU - 1052
  3. 用STM32F103C8T6的做IAP时,在跳转时一直进入HardFault_Handler 解决方法
  4. 【超坑人的面试题】switch没有break
  5. springboot异步注解_SpringBoot如何实现异步、定时任务?
  6. C++和Opencv4.5 实现全景图像拼接
  7. Excel模板导出之动态导出
  8. (027) Linux之shell分支if语句
  9. @Async join
  10. html:(25):选择器定义和标签选择器
  11. 东北大学文科能学计算机专业吗,东北大学有哪些好专业,文科理科专业分别有哪些...
  12. Sublime Text插件:HTML+CSS+JAVASCRIPT+JSON快速格式化
  13. springboot JPA 做security的时候出现查了user表却不自动查role表 报 session为空
  14. python-获取满足条件的索引值np.where
  15. 【图论】Spfa算法求最短路(长得像Dijkstra的,Bellman_Ford的优化算法)
  16. uicontrol_与UIControl结合
  17. 【基于pyAudioKits的Python音频信号处理项目(一)】实现音频频谱分析仪并进行交互式滤波器设计
  18. 为啥苹果手机连无线无网络连接服务器,苹果手机网络无法连接怎么回事
  19. 基于Retrofit框架的金山API翻译功能案例
  20. 让AI能懂得人类的社交讯号 使AI分辨人类的个性特质

热门文章

  1. 【双系统】删除linux系统扇区后无法启动windows
  2. 斯蒂文斯理工学院计算机专业,斯蒂文斯理工学院计算机专业
  3. linux sar 分析,Linux性能测试分析命令_sar
  4. Promethus(普罗米修斯)监控系统
  5. SAPlink 的初次使用
  6. SWIG简介 | win10和Linux下的安装--亲测 | (一)
  7. 很好听的曲子《红枣树》,歌词写的很好,摘抄一下
  8. SOLIDWORKS+CAD+UG软件培训 三款电脑学习软件
  9. IDrawingDoc Interface 学习笔记
  10. Caesar加密与解密