原文链接:rl_intro
1. 关键概念和术语
RL的主要特征是agent和环境。环境是agent居住并与之互动的世界。在交互的每一步中,agent都会看到(可能是部分的)对世界状态的观察,然后决定要采取的行动。当agent对其起作用时,环境会发生变化,但也可能会自行更改。
agent还会感知来自环境的奖励信号,这个数字告诉它当前世界状态的好坏。agent的目标是最大化其累积奖励,称为回报。强化学习方法是agent可以学习行为以实现其目标的方式。
为了更具体地讨论RL可以做什么,我们需要引入其他术语:
1. 状态和观察,
2. 动作空间,
3. 策略,
4. 轨迹,
5. 不同的回报方式,
6. RL优化问题,
7. 值函数。
1 . 状态和观察
一个状态 是世界状态的完整描述。没有关于世界隐藏的信息。一个观察 是一种状态,其中可省略的信息的部分描述。
在DRL中,我们几乎总是通过实值向量,矩阵或高阶张量来表示状态和观察。例如,视觉观察可以由其像素值的RGB矩阵表示; 机器人的状态可以用它的关节角度和速度来表示。
当agent能够观察到环境的完整状态时,我们说完全遵守了环境。当代理人只能看到部分观察时,我们说环境是部分观察到的。
You Should Know
强化学习符号标记有时会将状态符号放在技术上更适合写观察符号的地方。 具体而言,这在谈论agent如何决定动作时会发生这种情况:我们经常用符号表示动作是以状态为条件,在实践中,动作以观察为条件,因为agent无法进入状态。
2. 动作空间
不同的环境允许不同类型的动作。给定环境中的所有有效动作集通常称为动作空间。某些环境(如Atari和Go)具有离散的动作空间,其中只有有限数量的动作可用于agent。其他环境,例如代理控制物理世界中的机器人,具有连续的动作空间。在连续空间中,动作是实值向量。
这种区别对深度RL中的方法有一些非常深刻的影响。一些算法系列只能直接应用于一种情况,并且必须对另一种情况进行大量重写。
3 . 策略
一个策略是使用agent来决定采取何种动作的规则。它可以是确定性的,在这种情况下,它通常表示为:
或者它可能是随机的,在这种情况下它通常表示为:
由于该策略本质上是agent的大脑,因此将“策略”一词替换为“agent”并不常见,例如说“策略试图最大化奖励”。
在深度RL中,我们处理参数化策略:其输出是可计算函数的策略,这些函数依赖于一组参数(例如神经网络的权重和偏差),我们可以调整这些参数以通过某种优化算法改变行为。我们经常用或表示这种策略的参数,然后将其写为策略符号的下标以突出显示连接:
3.1 确定性策略
以下是用于在Tensorflow中为连续操作空间构建简单确定性策略的代码段:
其中`mlp`是一个函数,它使用给定的大小和激活函数将多个密集层堆叠在一起。
3.2 随机策略
DRL中最常见的两种随机策略是categorical policies - 分类策略和diagonal Gaussian policies - 对角高斯策略。
分类策略可用于离散动作空间,而对角高斯策略用于连续动作空间。
两个关键计算对于使用和训练随机策略至关重要:
1. 从策略中抽样采取行动,
2. 并计算特定动作的对数可能性(log likelihoods)
下面介绍如何对分类和对角高斯策略执行这些操作
3.2.1 分类策略
分类策略就像离散动作的分类器。你为分类策略构建神经网络的方式与分类器相同:输入是观察,后面跟着一些层(可能是卷积或密集连接,取决于输入的类型),然后你有最后一个线性层,为你提供每个动作的logits,然后是softmax,将logits转换为概率。
Sampling 考虑到每个动作的可能性,Tensorflow等框架具有内置的抽样工具。例如,请参阅tf.distributions.Categorical文档或tf.multinomial。
Log-Likelihood 将最后一层概率表示为。它是一个带有多个条目的向量,因为有动作,所以我们可以将动作视为向量的索引。然后可以通过索引到向量来获得动作的对数似然:
3.2.2 对角高斯策略
多变量高斯分布(或多变量正态分布)由平均向量,和协方差矩阵描述。对角高斯分布是协方差矩阵仅在对角线上具有元素的特殊情况。 结果,我们可以用矢量来表示它。
对角高斯策略总是有一个神经网络,从观察到平均动作映射,。 通常表示协方差矩阵有两种不同的方式。
第一种方式:有一个对数标准偏差向量,,它不是状态函数:是独立参(VPG,TRPO和PPO的实现方式是这样做的)
第二种方式:有一个神经网络从状态映射到对数标准偏差,。 它可以选择与平均网络共享一些层。
请注意,在这两种情况下,我们都直接输出对数标准偏差而不是标准偏差。这是因为log stds可以自由地接受中的任何值,而stds必须是非负的。如果你不必执行这些类型的约束,则更容易训练参数。 标准偏差可以通过取幂来立即从对数标准偏差中获得,因此我们不会通过这种方式表示它们而失去任何东西。
Sampling. 给定平均动作和标准偏差, 以及来自球形高斯的噪声矢量, 可以计算动作样本
其中表示两个向量的元素乘积。标准框架具有计算噪声向量的内置方法,例如tf.random_normal。或者,你可以直接向tf.distributions.Normal对象提供均值和标准差,并使用它进行采样。
Log-Likelihood. 对于具有平均值和标准偏差的对角高斯的k-维动作的对数似然由下式给出:
4. 轨迹
轨迹是世界上一系列的状态和行为,
第一个状态,,是从起始状态分布中随机抽样的,有时表示为:
状态转换(在时间 的状态,和 的状态, 之间的发生的事情)受环境的自然规律支配,并且仅依赖于最近的行动,。 它们可以是确定性的,
或随机的,
动作由agent根据其策略产生。
You Should Know
Trajectories - 轨迹也经常被称为episodes - 剧集或 rollouts - 推出。
5 . 奖励和回报
奖励函数在强化学习中至关重要。这取决于当前的状态,刚刚采取的动作以及下一个状态:
虽然经常将其简化为仅依赖于当前状态,,或状态 - 动作对.
Agent的目标是在轨迹上最大化累积奖励的一些概念,但这实际上可能意味着一些事情。我们将用来表示所有这些情况,并且它将从上下文中清楚地表明我们的意思,或者它无关紧要(因为相同的方程将适用于所有情况)。
一种回报是有限期未折现的回报,它只是在固定的步骤窗口中获得的奖励总和:
另一种回报是无限视距折扣回报,这是所有奖励的总和以往的由代理获得,但在未来会得到怎样离谱他们打折。这种奖励制定包括折扣因子:
为什么我们想要折扣因子呢?我们不想只获得所有奖励吗?我们确实想要,但折扣因子既直观在数学上又方便。从直观的角度来说:现在现金比以后更好。数学上:无限期的奖励总和可能无法收敛到有限值,并且很难在方程式中处理。但是在折扣因子和合理条件下,无限期的奖励总和可以收敛。
You Should Know
虽然这两种回报方式之间的界限在RL Formalism中非常明显,但深度RL实践往往会使线条模糊不清 - 例如,我们经常设置算法来优化未折现的回报,但在估算值函数时使用折扣因子。
6 . RL问题
无论选择何种回报指标(无论是无限折扣还是有限折扣),无论选择何种策略,RL的目标都是
选择一种策略,当agent根据它采取行动时,最大化预期回报。
在我们谈论预期回报时,我们首先要讨论轨迹-Trajectories上的概率分布
假设环境转换和策略都是随机的。在这种情况下,-step 轨迹的概率是:
预期回报表示为:
RL中的中心优化问题可以表示为:
其中是最优策略
7. 值函数 - Value Functions
了解状态或者状态-动作对的值通常很有用。通过值,我们指的是如果你从该状态或状态-行动对开始的预期回报,然后永远按照特定策略行事。在几乎每种RL算法中,都以这种或那种方式使用值函数。
有四个主要的值函数:
1. On-Policy Value Function,, 如果你从状态s开始并且总是根据策略行动,它会给出预期的回报:
2. On-Policy Action-Value Function, , 如果你从状态s开始,采取任意动作 a(可能不是来自策略),然后永远根据策略行事,则给出预期的回报:
3. Optimal Value Function , , 如果你从状态s开始并且始终根据环境中的最优策略采取动作,则给出预期的回报:
4. Optimal Action-Value Function,,如果你从状态s开始,采取任意行动a,然后永远根据环境中的最优策略行动,则给出预期的回报:
You Should Know
值函数和动作值函数之间有两个关键连接经常出现:
和
这些关系直接来自刚刚给出的定义:你能证明它们吗?
7.1 最优Q函数和最优动作
最优动作值函数与最优策略选择的行动之间存在重要联系。根据定义,给出了从状态s开始,采取(任意)动作a,然后永久地根据最优策略行动的预期回报。
在状态s的最优策略将选择从状态s开始最大化预期回报的动作。 结果就是,如果我们有,我们可以直接获得最优动作,通过下式:
注意:可能存在多个最大化的动作,在这种情况下,所有动作都是最优的,并且最优策略可以随机选择它们中的任何一个。但总有一种确定性地选择动作的最优策略。
7.2 贝尔曼方程
所有四个值函数都遵循称为Bellman方程的特殊自洽方程。Bellman方程背后的基本思想是:
你的出发点的值是你期望从那里获得的奖励,加上你下次到达的点的值。
on-policy value functions (值函数)的Bellman方程是
其中 是 的缩写,表示从环境的转换规则中采样下一个状态 ;
是的缩写,是的缩写
最优值函数的Bellman方程是
关于on-policy 值函数的Bellman方程与最优值函数之间的关键区别在于:max动作的存在或不存在。它的包含反映了这样一个事实,即每当agent选择其行动时,为了表现最优,它必须选择导致最高值的行动。
You Should Know
在RL文献中,术语“Bellman backup”经常出现。状态或状态 - 动作对的Bellman backup是Bellman方程的右侧:奖励加下一个值。
7. 3 优势函数 - Advantage Functions
有时候在RL中,我们不需要描述一个绝对意义上的行为有多好,而只需要比其他人平均好多少。也就是说,我们想知道该行动的相对优势。我们通过优势函数使这个概念精确。
对应于策略的优势函数描述了根据随机选择一个动作,在状态s中采取特定动作的好坏程度,假设你之后永远按照行动。 在数学上,优势函数定义如下:
You Should Know
优势函数对于策略梯度方法至关重要。
7. 4 Formalism
到目前为止,我们已经以非正式的方式讨论了agent的环境,但是如果你试图深入研究文献,那么你可能会遇到这种设置的标准数学形式:马尔可夫决策过程(MDP)。MDP是一个5元组
,其中
1. 是所有有效状态的集合,
2. 是所有有效行动的集合,
3. 是奖励函数,其中,
4. 是转移概率函数,如果你从状态s开始并采取动作 a,
'|是转变为状态 s' 的概率
5. 是起始状态分布
马尔可夫决策过程这个名称指的是系统服从马尔可夫属性的事实:转换只取决于最近的状态和行动,而不是先前的历史。