强化学习——强化学习的算法分类
1. 算法分类
现代强化学习算法分类
---图片来自Open AI Spinning up 项目---
由于强化学习是一个更新速度非常快的领域,所以准确地全面地分类是相当困难的,Spinning up 项目组给出的这个分类虽然并不全面,但是对初学者来说是非常有用了。
可以看出强化学习可以分为Model-Free(无模型的) 和 Model-based(有模型的) 两大类。Model-Free 又分成基于Policy Optimization(策略优化)和Q-learning。Model-based 又分为模型学习(Learn the Model)和给定模型(Given the Model)两大类。
部分算法的全名和论文链接见文末附录
2. Model-Free vs Model-Based
在之前的文章也阐述过两者的区别,当时主要是以引入Model-based的算法的角度简略地比较了两者的优劣。Spinning up 项目组也对两者的区别和优劣做了系统的比较。
- 两个算法的区别主要是Agent是否知道或要计算出环境的模型 。
- 拥有模型的好处是:Agent可以根据模型看到会发生什么,并提前规划(Planning)行动路径。
- 拥有模型的坏处是,真实模型和学习到带模型是有误差的,这种误差会导致Agent虽然在模型中表现很好,但是在真实环境中可能打不到预期结果。
- Model-Free的算法往往更易于实现和调整,截止到目前(2018年9月),Model-Free的算法更受欢迎。
3. 要学习什么(学习对象)
RL学习的内容无非是如下几个方面
- 策略,不管是随机的还是确定性的
- 行动价值函数(Q (s,a))
- 值函数(V(s))
- 环境模型
3.1. Model-Free 学习对象
Spinning Up 项目组就是根据学习的对象分成Policy Optimization(对象是策略),和Q-Learning(对象是Q(s,a))的。
(1) Policy Optimization
基于策略的强化学习就是参数化策略本身,获得策略函数πθ(a|s), 我们训练策略函数的目标是什么呢?是获得最大奖励。优化策略函数就是优化目标函数可以定义为J(πθ).
Policy Optimization 通常是on-policy的,也就是每次更新策略采用最新策略产生的数据。
Policy Optimization的经典例子包含A2C / A3C,和PPO。
(2) Q-Learning
- Q-Learning 就是通过学习参数化Q函数Qθ(s,a)从而得* 到最优Q*(s,a)的。
- 典型地方法是优化基于Bellman方程的目标函数。
- Q-Learning 通常是Off-Policy的,这就意味着训练的数据可以是训练期间任意时刻的数据。
Q-Learning 的经典例子包含DQN和C51。
3.2. Policy Optimization和Q-Learning 的权衡与融合
Policy Optimization直接了当地优化你想要的对象(策略),因此Policy Optimization稳定性和可信度都较好,而Q-learning是采用训练Qθ的方式间接优化策略,会遇到不稳定的情况。但是Q-learning的优点是利用数据的效率较高(Off-policy的原因?)
Policy Optimization和Q-Learning并非水火不相容,有些算法就融合和平衡了两者的优缺点:
- DDPG, 同时学出一个确定性策略和Q函数,并用他们互相优化。
- SAC 是一种变体,它使用随机策略、熵正则化和一些其它技巧来稳定学习,同时在 benchmarks 上获得比 DDPG 更高的分数。
4. Model-Based RL学习对象
Model-Based RL不像Model-Free RL那样容易分类,很多方法都有交叉。Spinning up 项目组给出了几个例子,但他们也声称这些例子是无法全部覆盖Model-Based强化学习的,这些例子中模型要么是已知给定的,要么是通过学习得到的。
4.1 纯动态规划(Pure Planning)
Pure Planning 是一个基础的算法,其策略并不显示的表达出来,而是使用规划技术来选择行动。比如 模型预测控制 (model-predictive control, MPC)。
在MPC中:
第一步:Agent首先观察环境,并通过模型预测出所有可以行动的路径(路径包含多连续个行动)。
第二步:Agent执行规划的第一个行动,然后立即舍去规划剩余部分。
第三步:重复第一、二步。
例如,MBMF 在一些深度强化学习的标准基准任务上,基于学习到的环境模型进行模型预测控制
4.2 Expert Iteration(专家迭代)
这个算法是Pure Planing 的升级版,它将策略显示地表达出来,并通过学习得到这个最优策略π*θ(a|s)
Agent用规划算法(类似于MT树搜索)在模型中通过采样生成候选行动。通过采样生成的行动比单纯通过策略本身生成的行动要好,所以它是"专家"。通过"专家"指导,迭代更新并优化策略。
- ExIt 算法用这种算法训练深层神经网络来玩 Hex
- AlphaZero 这种方法的另一个例子
4.3 免模型方法的数据增强
这个方法是将模型采样中生成的数据用来训练Model-Free的策略或者Q函数。训练的数据可以单纯是模型采样生成的,也可以是真实经历的数据与模型采样数据的结合。
- MBVE 用假数据增加真实经验
- World Models 全部用假数据来训练智能体,所以被称为:“在梦里训练”
4.4 将规划嵌入策略
该算法是将规划(Planning)嵌入策略中作为策略的一个子程序,这样在用任意Model-Free训练的过程中,如何和何时规划也被学习到了。这个算法的优点就是当模型与现实环境存在较大的偏差,策略也可以选择忽略规划。
- 更多例子,参见 I2A
附录:部分算法全名及论文链接
A2C / A3C (Asynchronous Advantage Actor-Critic): Mnih et al, 2016
PPO (Proximal Policy Optimization): Schulman et al, 2017
TRPO (Trust Region Policy Optimization): Schulman et al, 2015
DDPG (Deep Deterministic Policy Gradient): Lillicrap et al, 2015
TD3 (Twin Delayed DDPG): Fujimoto et al, 2018
SAC (Soft Actor-Critic): Haarnoja et al, 2018
DQN (Deep Q-Networks): Mnih et al, 2013
C51 (Categorical 51-Atom DQN): Bellemare et al, 2017
QR-DQN (Quantile Regression DQN): Dabney et al, 2017
HER (Hindsight Experience Replay): Andrychowicz et al, 2017
World Models: Ha and Schmidhuber, 2018
I2A (Imagination-Augmented Agents): Weber et al, 2017
MBMF (Model-Based RL with Model-Free Fine-Tuning): Nagabandi et al, 2017
MBVE (Model-Based Value Expansion): Feinberg et al, 2018
AlphaZero: Silver et al, 2017
强化学习——强化学习的算法分类相关推荐
- 强化学习(RL)算法
目录 文章目录 前言 一.什么是强化学习? 二.强化学习的基本元素 1.环境Environment 2.主体Agent 3.状态State 4.行动Action 5.收益Reward 三,R ...
- 赠票 | 深度强化学习的理论、算法与应用专题探索班
文末有数据派赠票福利呦! 深度强化学习是人工智能领域的一个新的研究热点.它以一种通用的形式将深度学习的感知能力与强化学习的决策能力相结合,并能够通过端对端的学习方式实现从原始输入到输出的直接控制.自提 ...
- 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法
2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...
- 线下报名 | YOCSEF TDS:深度强化学习的理论、算法与应用
时间:7月29日9:00-17:20 地点:北京中科院计算所,一层/四层报告厅(暂定) 报名方式:1.报名链接:http://conf2.ccf.org.cn/TDS 2.点击文末阅读原文报名 3 ...
- 强化学习的数学基础2---PPO算法
强化学习的数学基础2-PPO系列算法 这篇笔记来自于李宏毅老师的公开课 PPO算法全称是Proximal Policy Optimization算法.该类算法是为了解决Policy Gradient算 ...
- 从0开始强化学习——强化学习的简介和分类
目录 写在前面 一. 强化学习简介 二. 强化学习分类 写在后面 写在前面 最近一直在给老板打工,已经很久没有写过博文了,最近打算系统学习一遍强化学习,所以就开个新坑,和大家分享一下在学习过程中的收获 ...
- AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
人工智能研发的一个大方向是用AI系统来自动化开发AI系统.虽然这一目标尚未实现,但目前的进展让已足够令人人震惊.本文介绍了最新的一些进展,包括伯克利让算法自我优化.MIT自动生成神经网络架构,以及在这 ...
- 基于强化学习的服务链映射算法
2018年1月 <通信学报> 魏亮,黄韬,张娇,王泽南,刘江,刘韵洁 摘要 提出基于人工智能技术的多智能体服务链资源调度架构,设计一种基于强化学习的服务链映射算法.通过Q-lea ...
- 【强化学习】Policy Gradient算法详解
DeepMind公开课https://sites.google.com/view/deep-rl-bootcamp/lectures David Silver教程 http://www0.cs.ucl ...
最新文章
- ios 替换数组中元素_ios可变数组的所有操作
- explain mysql 调优_explain mysql性能优化
- 【运筹学】运输规划求最大值 ( 运输规划求最大值问题示例 | 转为运输规划求最小值的方式 )
- 关于http的一切(updating...)
- iPhone+wp7并行初体验
- Python3列表推导不会再有变量泄露的问题
- echart 世界地图发光_echarts生成世界地图,百度echarts生成世界地图方法
- html节点分析,解析html程序(C#版)——遍历各个节点(mshtml)
- Linux那些事儿----好的学习网站
- SCT12A0DHKR,2.7V-14V输入,30W高效全集成同步升压DCDC转换器,应用领域以及参考设计
- 制造业供应链平台解决方案,实现数字化、可视化、信息化
- 9106w android7,三星n9106w官方原版固件rom刷机包_三星n9106w系统线刷包
- 优化工具MOZ功能详细解说
- camera sensor crosstalk 详细介绍
- [转贴]关于理工科学生应聘非本专业职位的一些建议
- 电梯继续上升,到几楼,才会发现事情真相呢?
- 标签打印机TSPL打印指令
- MATLAB绘图(特殊二维)
- 稳住!特斯拉电动皮卡
- 最新《Laravel5.4电商实战项目-联想商城》