论文阅读_深度强化学习综述
journal: IEEE Conference on Industrial Electronics and Applications (ICIEA)
name_ch: 深度强化学习:简要概述
name_en: A Brief Survey of Deep Reinforcement Learning
date_publish: 2017
读后感
本篇介绍包含:应用场景;基于策略的和基于价值的不同方法;具体算法包含:DQN,TRPO,AC。
这个文章,感觉中间那部分比较乱,结构比较乱,内容也只是皮毛,定义也没讲清楚,也不够深入,最后一部分还行。
1. 介绍
强化学习主要针对:自主的智能体通过与环境交互学习最优行为,通过试错随着时间的推移而改善模型。
之前方法伸缩性差,且主要解释低维问题,深度学习算法近年的发展,借助其函数逼近和表示学习(高维状态和动作空间的降维&分层表示)的能力,能更好解决上述问题。
典型的应用场景,如从视频游戏的帧像素学习玩游戏,又如混合有监督学习和强化学习的 AlphaGO(结合了监督,强化学习和传统的启发式搜索算法),还有机器人等等。
2. 奖利驱动行为
原理:强化学习在交互环境中学习回报更高的行为(基于行为主义的试错法)。
常用表示:
- t: time step 时间步
- s: state 状态,有时也记作 xt
- a: action 行为或动作,有时也记作 ut
- r: reward 奖利
- \(\pi\): policy 目标策略,最大于奖利
详见:强化学习中的元素
在时间步 t,给定一个状态 \(s_t\),通过目前已知的所有信息计算最佳动作 \(a_t\),执行该动作后,策略返回一个奖利,状态变为 st+1,如果往复,在不断试错学习过程中更新知识库。
RL 最大的挑战是需要通过试错学习一系列的动作(而非一个动作)。
每一次与环境的交互都会产生信息,智能体利用这些信息来更新自己的知识。这种感知 - 行为学习回路如图 2 所示。
A. 马尔可夫决策过程
B. RL 面临的挑战
- 最优策略必须与环境的试错交互,它接收到学习信号只有奖励。
- 观察依赖行为,且有很强的时序相关性。
- 需要处理长期的时间依赖性:一个动作的结果通常只有在多次环境转换之后才会显现出来(是动作累积的结果),这被称为 " 时序信用分配问题 "。
比如:机器人在迷宫里走,它看到了什么取决了它选择怎么走,这也是探索/利用的问题,这些问题都可以在 RL 的框架中得到解决。
3. 强化学习算法
下面将讨论不同类型的强化学习算法。主要包含:基于价值函数的算法,基策略搜索的算法和混合二者的算法 A-C。
A. 价值函数
详见:价值 Value
动态规划
贝尔曼方程是动态规划算法的一种重要的组成部分。它通常用来描述一个问题的最优解是由之前状态的最优解转移而来的。
详见:动态规划法
B. 采样
相对于动态规划逐步计算值函数,蒙特卡洛方法通过平均多次 rollout(尝试探索一条路径)的收益进行来估计一个状态的预期收益。结合 TD 和蒙特卡罗可以发挥二者的优势。
另一种计算值函数的方法引入了优势函数 A,用于表示某个策略不同与其它策略的价值,使用此方法可以对比不同行为的差异。
\[ A^{\pi}=Q^{\pi}-V^{\pi} \]
具体用法可参见:Dueling DQN
采样方法如图 -3 所示:
这里的 BACKUP 指的是数据,(a) 是动态规划,(b) 是穷举搜索,它们都使用所有数据计算策略;(c) 是时序差分 (bootstrap),(d) 是蒙特卡罗,它们使用对数据采样的方法。
C. 搜索策略
策略搜索方法不需要维护价值函数,而是直接优化策略 \(\pi\),以获得最大的奖利 E(R),这种方法可以使用梯度或非梯度方法优化,使用神经网络实现。梯度方法尤其在参数维度高的情况下更加适用。它一般直接输出概率分布,然后利用概率对行为进行采样;神经网络也可支持无梯度策略,比如低维空间,它不需要策略是可微的。
策略梯度
A-C 方法
后面将 AC 作为策略方法的子集介绍。
D. 计划和学习
Sutton 和 Barto 将规划定义为利用模型来产生或改进政策的任何方法。这包括分布模型 (包括 T 和 R) 和样本模型 (对状态转换关系采样)。
基于模型的 RL 方法可以用模型模拟状态转换,以提升采样效率,但是学习模型也可能带来误差,常用的解决方法是只在短序列(局部)使用模型。
E. 使用深度学习方法带来的提升
一般 RL 方法只适用于低维空间,深度学习方法可将其扩展到高维空间(特征映射,低维表示);另外,它可以处理像图像等更复杂的数据;更多时候用深度学习来优化策略,价值函数等。
其主要的优势在于梯度能 很好的引导学习。另外,深度学习可以同时优化多个目标,比如同时优化策略、模型、价值函数等,使其相互促进。另外,在 rollouts 的过程中错误会自动积累,这也避免也手动累加。
下面两章将主要介绍深度学习实现价值函数和策略中的方法。
4. 价值函数详解
最早从值函数开始
深度学习最早使用 TD(时序差分)90 年代在双陆棋中的应用。后来 RL 研究的发展倾向于使用价值函数,用以捕捉环境的底层结构。DRL 中早期的值函数方法将简单的状态作为输入,现在的方法能够处理视觉上和概念上复杂的环境。
A. 函数逼近和 DQN
DQN 可以用于学习视频游戏的玩法,其输入是图片,使用 CNN 提取时空特征,最后再连接全连接层从而对行为决策。最早的出现的 NFQ(neural fitted Q),可接收视频输入,降低数据维度,用一个单独分枝预测 Q 值。
DQN 可以接受环境中各种各样的输入,不仅可以让最后一层更好的选择动作,也让卷积层更好的学习与动作无关的表示,从而学到的显著的视觉特征。
如果不用深度学习,如果把每不同的帧作为状态(长 x 宽 x 色深),再考虑可能的行为,二项相乘得到 Q 将是非常大而稀疏的,且学到的一个状态 - 行为不能传递给附近的状态 - 行为。
深度学习使用了函数逼近方法解决上述问题,具体方法是:
重放 replay
重放机制将历史经历 (st, at, st+1, rt+1) 存储在循环缓冲区中,并从中重新采样这些经验来更新策略或决策过程(离线)。这样,在训练过程中就可以使用大量的经验数据,提高模型的效率(批处理提升吞吐量)和泛化能力,并避免数据的冗余或不足。
目标网络 target networks
目标网络初始值是制定策略的网络权重,在开始的一般时间只更新 Q 值,而不更新目标网络,直到一定步数后才更新。
详见:DQN技术
B. 修改 Q 函数
DQN 的关键组成部分之一是 Q 函数的函数逼近器,它依赖于 Q 函数的实现和优化。本节列出了 Q 函数优化方法:
Q 学习中使用单一的评价,使用最大动作价值作为期望值因此高估的收益,Double-DQN学习需要学习一个额外的函数,实现了更好的评估。
另一种方法是学习价值分布而不仅是价值期望。它提供了额外的信息,比如潜在的奖励是来自偏态分布还是多模态分布。
还有一种方法是把 Q 函数分解成状态价值和优势 (我觉得是动作价值):Q=V+A,相对来说 A 更容易学习,对决 DQN(dueling) 与有优先级的 replay 相结合是离散动作最先进的模型之一;Gu 提出的凸性优势层将算法扩展到连续的动作空间,建立了标准化优势函数,结合 replay, 目标网络主优势更新,是连续动作最先进的模型之一。
一些领域有大量的离散行为,比如推荐系统,Dulac-Arnold 提出“行为嵌入”,使用 k 近邻产生“原行为”以利用传统的 RL 方法,或者使用表示学习。
另一个场景是同时决策多个行为,比如机器人动作,组合也会使 action 指数性增长。比较简单的方法是把复杂行为分解成简单行为分别处理;还有自回归的方法来处理多步预测,离散化大的行为空间;在更广泛的背景下,不直接处理原始行动,可以选择从更高层级的政策中调用 " 子策略 ",称为分层强化学习 (HRL)。
详见:其它 DQN
5. 策略搜索详解
策略搜索是直接寻找策略的方法,它可以是基于梯度,也可以是不基于梯度的。比如不基于剃度的进行算法,这种算法计算量大,但应用范围广,不像梯度方法只能作用于连续空间。也有一些将进化算法和神经网络压缩相结合的方法。
A. 随机函数反向传播
反向传播不仅能解决强化学习中具体的跟踪,图片分类等问题,而且利用反向传播能力优化参数,它也是 SVGs[^1] 等算法中的关键原理。
B. 错误积累
直接搜索参数多的神经网络可能很困难,并受到局部最小值的影响。下面介绍一些解决错误积累的方法:其它优化
C. A-C 方法
详见:整合价值和策略 A-C
目前的研究和挑战
详见:强化学习_进阶
总结:超越模型识别
除 DRL 以外,最近还有一些新发展,比如生成式因果模型(非深度学习)相对于 A3C 表现出了更优越的泛化能力。
目前 DRL 已与搜索和规划相结果,与传统方法相比有更好的泛化性,可解释性,支持更复杂的环境,但有待进一步提升。
RL 能与周围环境互动,更贴近现实世界,让 agent 通过实验更好理解周围环境,学到更高层的因果关系。
其它
SARSA 算法
state-action-reward-state-action
动态规划
动态规划的基本思想是:将待求解的问题分成若干个子问题,按顺序求解子问题,前面的子问题的解用于后面的子问题的求解,最终得出整个问题的解。
启发
- 可不可以用深度学习把高维特征转到低维,可以的,输入视频学玩游戏就是这样。
- 在 ICU 里训练一个可以模拟环境的目标网络和决策网络同时训练有可能是可以的。