对于强化学习算法中的AC算法(Actor-Critic算法) 的一些理解
AC算法(Actor-Critic算法)最早是由《Neuronlike Adaptive Elements That Can Solve Difficult Learning Control Problems Neuronlike Adaptive Elements That Can Solve Difficult Learning Control Problems》论文提出,不过该论文是出于credit assignment problem设计了actor部分和critic部分,其中critic对actor获得的reward进行credit assignment 处理和学习,然后把处理后获得的新reward传递给actor进行学习,这样结合了critic和actor两部分学习器,得到了一个更优的学习器。


可以看到最初的AC算法只是为了更好解决credit assignment问题,将Actor和Critic两者结合,其中的Critic主要就是为每一步的actor学习给出一个更好的credit assignment的reward。最初的AC算法中critic更多的是在辅助actor来进行学习的,可以看到现在的AC算法除了保留了将两个学习器结合的思想以外已经与最初的AC算法差距较大了,而现在的AC算法形式为论文《Policy Gradient Methods for Reinforcement Learning with Function Approximation》给出的。
因此,本文主要讨论的是对论文《Policy Gradient Methods for Reinforcement Learning with Function Approximation》的一些理解。前几天写过一个该论文的一些基本形式和证明(
论文《policy-gradient-methods-for-reinforcement-learning-with-function-approximation 》的阅读——强化学习中的策略梯度算法基本形式与部分证明
),所以本文算是一个补充版,或是后续版。
---------------------------------------------------------
首先给出论文《Policy Gradient Methods for Reinforcement Learning with Function Approximation》中的定理1:

定理1 又被称作是策略梯度定理,可以说强化学习中的策略梯度一类的算法基本都是基于这个定理来进行构建的。由于前文对该定理给出了一些解释,这里就不具体解释了。
本文的重点是讲一下对论文中定理2的一些理解, 下面给出定理2及其前提设定:


上面的内容比较长,可以说公式(3)和(4)是对定理2的前提设定,也就是说定理2是假设在满足公式(3)和(4)的前提条件下进行推导的。
由公式(3)和(4)我们可以推导出定理2的表现形式,即公式(5)。其中公式(6)及以下为对定理2的表现形式(即公式(5))进行的证明过程。
公式(3)的意思是说,满足公式(3)的话,f(s,a) 对 Q(s,a)的估计为收敛于局部最优,换句话说就是:公式(3)是 f(s,a) 对 Q(s,a)的估计收敛于局部最优的表现形式。假设公式(3)成立则说明 f(s,a) 对 Q(s,a)的估计是假设收敛于局部最优的。
公式(4)则是假设f(s,a)对参数w的微分等于log(pi(s,a)) 对参数theta的微分。
在公式(3)和(4)成立的前提下,才得到定理2 的表现形式(公式5),也就是说定理2是在讲满足公式(3)和(4)的前提下才可以用f(s,a)替代Q(s,a)来对策略的表现求梯度(即定理1)。
刚开始看到定理2的时候感觉多此一举,直接用一个函数来近似表示Q(s,a)不就可以了吗,为什么还要假设满足公式(3)和(4)。研究了些时间才有所了解,如果不满足公式(3),那么f(s,a)对Q(s,a)的估计是没有限定的,也就是说f(s,a)是不能很好的来估计Q(s,a)的,所以我们要加入公式(3)作为前提。或者说只有满足了公式(3)才能说f(s,a)是对Q(s,a)的很好的估计,因为此时的估计函数f(s,a)是收敛于局部最优的。
那么公式(4)又是为何呢,它又起到什么作用呢?
个人理解:
即使满足了公式(3),f(s,a)是对Q(s,a)的一个很好的估计(收敛于局部最优),也不能说f(s,a)就一定可以替换定理1中的Q(s,a)。因为毕竟f(s,a)并不正在等于Q(s,a),只能说在(s,a) 这个(状态,动作 对)分布的情况下,f(s,a)与Q(s,a)的差值平方在(s,a)分布的情况下的期望对参数w的导数为0,因为毕竟 f(s,a) 对Q(s,a)的估计还是难免会存在误差的。
在不考虑公式(4)的情况下,我们只能说下面的公式是成立的:

但是对于公式(6),即下面公式,是难以使其成立的。

也或者说下面公式是难以成立的:

----------------------------------------------
以上对公式(3)和(4)的一个理解就是,如果只满足了公式(3)只能说明f(s,a)对Q(s,a)的估计收敛于局部最优,而只有同时满足公式(4)的收敛于局部最优的f(s,a)才能很好的替换定理1中的Q(s,a)。
当然,在实际应用中公式(3)和公式(4)都是难以满足的,或者说论文中的定理1和定理2是纯理论假设推导,是在一种很理想化的情况下才会成立。
公式(3)的表现形式我们可以假设策略固定不变,然后在固定策略的前提下一直训练f(s,a)使其对Q(s,a)的估计收敛于局部最优,而此时所得到的f(s,a)并不一定会满足公式(4)。而只有满足公式(4)的收敛于局部最优的f(s,a)才满足定理2,才可以替换定理1中的Q(s,a)。
现在的常用函数一般为深度神经网络,也就是说f(s,a)和pi(s,a)一般也是用深度神经网络来表示的,现在常用的对f(s,a)进行更新的方法一般可以较好的使f(s,a)对Q(s,a)的估计收敛,至于能否收敛于局部最优就难以保证了,而对于公式(4)中的限定现在也是基本没有见过哪个具体算法对其进行限定的。
可以说对公式(3)基本可以实现部分满足(使其收敛,不保证收敛于局部最优),而对于公式(4)的限定实际算法一般不做处理。
----------------------------------------------------
对于强化学习算法中的AC算法(Actor-Critic算法) 的一些理解的更多相关文章
- 强化学习(五)—— 策略梯度及reinforce算法
1 概述 在该系列上一篇中介绍的基于价值的深度强化学习方法有它自身的缺点,主要有以下三点: 1)基于价值的强化学习无法很好的处理连续空间的动作问题,或者时高维度的离散动作空间,因为通过价值更新策略时是 ...
- 强化学习(十七) 基于模型的强化学习与Dyna算法框架
在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...
- 基于深度强化学习(DQN)的迷宫寻路算法
QLearning方法有着明显的局限性,当状态和动作空间是离散的且维数不高时可使用Q-Table存储每个状态动作的Q值,而当状态和动作时高维连续时,该方法便不太适用.可以将Q-Table的更新问题变成 ...
- 强化学习-学习笔记14 | 策略梯度中的 Baseline
本篇笔记记录学习在 策略学习 中使用 Baseline,这样可以降低方差,让收敛更快. 14. 策略学习中的 Baseline 14.1 Baseline 推导 在策略学习中,我们使用策略网络 \(\ ...
- 在 Prim 算法中使用 pb_ds 堆优化
在 Prim 算法中使用 pb_ds 堆优化 Prim 算法用于求最小生成树(Minimum Spanning Tree,简称 MST),其本质是一种贪心的加点法.对于一个各点相互连通的无向图而言,P ...
- 强化学习(十二) Dueling DQN
在强化学习(十一) Prioritized Replay DQN中,我们讨论了对DQN的经验回放池按权重采样来优化DQN算法的方法,本文讨论另一种优化方法,Dueling DQN.本章内容主要参考了I ...
- ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文
https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...
- 谷歌重磅开源强化学习框架Dopamine吊打OpenAI
谷歌重磅开源强化学习框架Dopamine吊打OpenAI 近日OpenAI在Dota 2上的表现,让强化学习又火了一把,但是 OpenAI 的强化学习训练环境 OpenAI Gym 却屡遭抱怨,比如不 ...
- 强化学习论文(Scalable agent alignment via reward modeling: a research direction)
原文地址: https://arxiv.org/pdf/1811.07871.pdf ======================================================== ...
- 谷歌推出新型强化学习框架Dopamine
今日,谷歌发布博客介绍其最新推出的强化学习新框架 Dopamine,该框架基于 TensorFlow,可提供灵活性.稳定性.复现性,以及快速的基准测试. GitHub repo:https://git ...
随机推荐
- 连续段 dp - 状态转移时依赖相邻元素的序列计数问题
引入 在一类序列计数问题中,状态转移的过程可能与相邻的已插入元素的具体信息相关. 这类问题通常的特点是,如果只考虑在序列的一侧插入,问题将容易解决. 枚举插入顺序的复杂度通常难以接受,转移时枚举插入位 ...
- INFINI Labs 产品更新 | Easysearch 新增分词插件、Gateway 支持邮件发送等功能
INFINI Labs 产品又更新啦~,本次更新概要如下:Easysearch 新增了分词插件.优化了生命周期管理功能等:Gateway 新增 smtp 过滤器来支持邮件的发送,支持自动跳过因为异常关 ...
- 开源的Datadog?可观测性平台SigNoz是否名副其实?
SigNoz号称自己是开源领域的Datadog,基于OpenTelemetry做了一套可观测性方案.夜莺从V6版本开始,也希望做全栈可观测性方案,巧了,大家目标一致,今天我们一起来对SigNoz做个初 ...
- Mybatis-MySQL 中使用IFNUL
Mybatis-MySQL 中使用IFNULL(p1,p2)函数但是有一些需要注意的地方. 假设数据 title: student id name age 1 Ann 18 2 Bom 19 3 He ...
- FreeRTOS简单内核实现7 阻塞链表
0.思考与回答 0.1.思考一 如何处理进入阻塞状态的任务? 为了让 RTOS 支持多优先级,我们创建了多个就绪链表(数组形式),用每一个就绪链表表示一个优先级,对于阻塞状态的任务显然要从就绪链表中移 ...
- Pytorch复制现有环境
一,在本机上,打开anaconda Prompt直接使用 conda create -n 新环境名 --clone 旧环境名
- Golang基于Mysql分布式锁实现集群主备
背景 集群中如果需要主备,可以基于Redis.zk的分布式锁等实现,本文将介绍如何利用Mysql分布式锁进行实现. 原理 数据库中包含数据字段(此处为Master的主机名).版本号和上一次更新时间. ...
- 03-Python数据类型
None类型 Python3中没有NULL,取而代之的是空类型None.空列表.空字典等. None是一个特殊的Python对象,表示无. None的类型是NoneType. 如果只想声明变量,而不想 ...
- Goland断点调试一直进gopark
现象 使用Goland断点调试一直进gopark 分析 直接运行调试,不打断点,会有一个warning: undefined behavior - version of Delve is too ol ...
- 请解释一下 JavaScript 的同源策略?
概念:同源策略是客户端脚本(尤其是Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.这里的同源策略指的是: 协议,域名,端口 相同,同源策略是一种安全协议.指一 ...