5. 强化学习之——策略优化
课程大纲
基于策略的强化学习:前面讲的都是基于价值的强化学习,这次讲基于策略函数去优化的强化学习
蒙特卡罗策略梯度
如何降低策略梯度的方差
Actor-Critic:同时学习策略函数和价值函数
基于策略的强化学习基础知识
Value-based RL 与 Policy-based RL:
Policy-based RL 的优势与劣势:
策略的分类:
(1)确定性策略
(2)概率分布性策略
对策略进行优化的过程中,优化目标是什么?
给定一个带参数的策略逼近函数(类似于值函数逼近),我们就是要找到最优的
怎么去评价一个策略 呢?【废话,当然是用值函数啊】
从环境的角度去看:
(1)对于 episodic 的环境:可以用最开始的那个 value
(2)对于 continuing 环境:可以用平均的 value;也可以用平均的 reward
从轨迹的角度去看:
怎么去优化我们的目标方程 呢?
(1)当目标方程 是可微的时候【我们更倾向于这样】
(2)当目标方程 是不可微的时候 (采用不用求微分的黑箱优化方法)
举例:
黑箱优化方法A:交叉熵方法 Cross Entropy Method
黑箱优化方法B:有限差分法 Finite Difference Method
策略函数的形式可以是怎么样的呢?
(1)Softmax Policy
(2)Gaussian Policy:适用于连续的动作变量
蒙特卡罗策略梯度方法
一步 MDP 的策略梯度(Policy Gradient for One-Step MDPs)
多步 MDP 的策略梯度(Policy Gradient for Multi-Step MDPs)——真实存在的MDP
优化目标是:
怎么去算梯度呢?—— 注意这里的 log 小技巧,把连乘变成加和的形式
算完梯度之后:(第二步中用 MC 去采样很多轨迹来近似导数)
那为什么把那个 τ 放到 log 里面呢?
答:分解那个 log 变成连加的形式,可以消掉无关项,最后只剩下那个 score function
之后我们就有了 likelihood ratio policy gradient:【整个过程我们并不需要知道状态转移函数】
整个推导过程就让求梯度变成加和的形式,例如10条轨迹,就把10条轨迹上的奖励加和加起来,对于每一步也有 score function(就是 likelihood function 取个梯度) 也是加和起来,然后就直接得到了客观函数的梯度,整个过程我们并不需要知道状态转移函数,这也是 policy gradient 的一个特殊之处
如何降低 policy gradient 的方差 variance【改进策略梯度】
Score Function Gradient Estimator:近似我们的客观函数的梯度,通过采样 S 个来求平均
Policy Gradient Estimator 和 Maximum Likelihood Estimator 的区别:
唯一的区别是那个 reward function,这样来看的话,策略梯度估计就类似于加权后的极大似然估计
问题来了:我们的策略梯度是依据于 MC 采样产生的,虽然是无偏的,但是说方差比较大
三种减小方差的解决方案:
(1)引入时序上的因果关系,去掉不必要的项来减小方差
上面的这种方法就叫 REINFORCE 方法【William 提出于1992年】
(2)包含一个 baseline 项来减小方差
下面是 baseline 的简单推导过程:(即引入 baseline 只会减少方差值而不会改变 policy gradient 的实际的值)
也可以用一个参数来拟合 baseline 这个项:
引入 baseline 的 policy gradient 方法:(1999年 sutton 的论文,是要估计两个参数的)
(3)引入 Critic 的方法来减小方差 —— 引出 Actor-Critic 方法
Actor-Critic 策略梯度方法
Actor 就是我们实际跟环境去交互产生训练数据的一个策略
Critic 就是实际的值函数去用于估计/评论
Critic 到底是在做什么事情呢?要怎样进行 Policy Evaluation 呢?
完整的 Actor-Critic 算法流程
在 Actor-Critic 中值函数和策略函数的逼近方法:
接下来的推导:
如何通过 baseline 方法来降低 Actor-Critic 的方差:中间取那个 Advantage Function 的原因是因为天生 V 函数就可以作为 Q 函数的 baseline 来使用
策略梯度的一些扩展知识
Policy Gradient 的一个很有意思的应用:解决不可微分的问题
Policy Gradient 的扩展发展脉络
最新的 RL 算法基本上都是 policy-based 的方法
比如:A2C、A3C、TRPO 和 PPO 以及2020年刚出来的 SAC[http://studyai.com/spinup/algorithms/sac.html] 等方法
RL 中基于价值和基于策略的两大学派
Value-based 的学派:应用主要是打游戏,主要采用 DP算法,bootstrapping方法等去优化价值函数,然后再从 Q 函数里采取行为;代表人物:Sutton 还有 DeepMind 的 Silver[AlphaGo 项目],他们属于控制背景的老派,哈哈哈
Policy-based 的学派:应用主要是机器人,他们更推崇基于策略函数的强化学习方法,大多是跟 OpenAI 和 Berkeley 有联系,机器学习背景来做强化学习
两家其实殊途同归:都回到了 Actor-Critic 方法
Policy Gradient 和 Q-Learning 的发展脉络
注:本文所有内容源自于B站周博磊老师更新完的强化学习纲要课程,听完之后获益很多,本文也是分享我的听课笔记。周老师Bilibili视频个人主页:https://space.bilibili.com/511221970?spm_id_from=333.788.b_765f7570696e666f.2
感谢周老师 :)
5. 强化学习之——策略优化相关推荐
- 基于深度强化学习的组合优化方法在工业应用中的实践
<统筹方法平话>中有一个例子曾被收录到语文课本中,讲"烧水泡茶"有五道工序:1.烧开水,2.洗茶壶,3.洗茶杯,4.拿茶叶,5.泡茶,其中前四道工序是泡茶的前提,且各道 ...
- 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)
基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...
- 强化学习在资源优化领域的应用
点击上方蓝字关注我们 强化学习在资源优化领域的应用 王金予, 魏欣然, 石文磊, 张佳 微软亚洲研究院,北京 100080 摘要:资源优化问题广泛存在于社会.经济的运转中,积累了海量的数据,给强化学习 ...
- 强化学习是针对优化数据的监督学习?
作者 | Ben Eysenbach.Aviral Kumar.Abhishek Gupta 编译 | 凯隐 出品 | AI科技大本营(ID:rgznai100) 强化学习(RL)可以从两个不同的视角 ...
- 分享丨强化学习是针对优化数据的监督学习?
来源:AI科技大本营 作者 | Ben Eysenbach.Aviral Kumar.Abhishek Gupta 编译 | 凯隐 出品 | AI科技大本营(ID:rgznai100) 强化学习(R ...
- 【强化学习】策略梯度Policy-Gradient
目录 Value-based 强化学习方法的不足 Policy-based 强化学习方法的引入 策略梯度的优化目标 策略函数的设计 Softmax策略函数 Gauss策略函数 蒙特卡罗策略梯度rein ...
- 重温强化学习之策略梯度算法
1.介绍 这里仍考虑无模型的方法:策略是从值函数中导出的,使用贪婪的方法导出最优策略,使用e贪婪策略导出行为策略,直接参数化策略 考虑之前强化学习 ...
- 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法
导读:本论文由Berkeley 的几位大神于2015年发表于 JMLR(Journal of Machine Learning Research).深度强化学习算法例如DQN或者PG(Policy G ...
- 7. 基于策略的强化学习——蒙特卡洛策略梯度REINFORCE算法
前6篇我们都是估计动作值函数Q,从而可以根据估计的Q值选择相应的动作.但是这样的值函数(Value Based)估计方法有着一定的限制.第一,值函数估计方法最后得到的策略是固定策略,不能应对最优策略是 ...
- 为什么说强化学习是针对优化数据的监督学习?
作者 | Ben Eysenbach.Aviral Kumar.Abhishek Gupta 编译 | 凯隐 出品 | AI科技大本营(ID:rgznai100) 强化学习(RL)可以从两个不同的视角 ...
最新文章
- 双圆弧插值算法(二)
- 天气情况(思维,dp思想)
- 【Android 逆向】IDA 工具使用 ( 重命名函数 | 添加注释 | 添加标签 / 跳转标签 | 代码跳转前进 / 后退 )
- code vs 集成tfs_关于编译器和集成开发环境,一文给你讲明白!
- Prim算法和Kruskal算法
- 产后抑郁症的食疗方法有什么
- 基于狄利克雷-多项式分布做文档聚类代码(dirichlet multinomial mixture model)
- 电脑端用起来特别爽的四款软件,哪一款才是你的最爱?
- python字典遍历方法
- Android自定义控件学习(四)------创建一个视图类
- 第二章 算法——程序的灵魂
- 图片处理应用:固定容器缩略图实现
- MSDEV.EXE 版本
- pyplot中文手册_Matplotlib中文手册 PDF 下载
- IPVS之Bypass转发模式
- 苍井空是如何勾搭上社交电商的? - 案例 - i黑马网
- PCD格式、Trimmed ICP实现、旋转矩阵四元数欧拉角
- 淘淘商城第51讲——从商城首页跳转到搜索页面
- 水星怎么设置网速最快_水星路由器怎么设置限速(分配合理网速)设置教程图解...
- win7产生大量evtx文件_Win7退役:用户还在坚守,为何微软却执意放弃?