xChar
·2 years ago

人通过与世界(环境)的交互认识世界、获得反馈。

image

图源 https://storage.googleapis.com/deepmind-media/UCL%20x%20DeepMind%202021/Lecture%201%20-%20introduction.pdf

模仿这个范式,人们提出了强化学习的方法。

奠基

先介绍强化学习中的几个概念

Agent, 直译为代理或智能体,可以理解成决策者、决策器。

Environment 即环境,Agent 通过与环境交互,获取反馈。

反馈这个词很有意思,它有着丰富的内涵。具体来说,Agent 的每一个决策,或者说每一个 Action 都会产生代价。

比如:它会导致环境 Environment 的状态发生变化。这时候,智能体 Agent 对于环境的观测 Observation 就会发生改变。

我们基于获得的环境观测 Observation,来构造 State (Agent State)

对于 Fully Observable Environments 我们可以认为 Agent State = Observation = environment
一般而言,没有特别说明的情况下,默认所有环境都是完全可观测,也就是 Fully Observable 的

采取一个 Action 产生的代价不仅仅局限于环境状态的改变,Action 本身也具有好坏之分。我们以 Reward 来衡量决策/动作 Action 的质量。

如果一个 Action 有正值的 Reward,说明至少在短期来看,这个 Action 是好的。反之如果Reward 为负值,则证明这个 Action 并不明智。

下图直观的展示了强化学习的原理。

image

搞了半天,强化学习到底是干嘛的?

强化学习的目标在于:通过不断的交互,优化 Agent 的行动策略,通过选择更好的 Action 来最大化 Reward 的和 (每一步的 Reward 都要加进来)

建模

我们一般用马尔可夫决策过程,来建模强化学习。

在进行下一步之前,请阅读 马尔科夫(Markov)和强化学习(RL)的关系 - 知乎

此处给出一个 马尔可夫过程示意图

image

图源 https://towardsdatascience.com/markov-chain-analysis-and-simulation-using-python-4507cee0b06e

有几个点需要再提一下:

  1. 马尔可夫过程 Markov Process 由二元组 $$M=(S, P)$$ 组成,马尔可夫决策过程 Markov Decision Process 由四元组 $$M=(S,A,P,R)$$ 组成。有时还会带上 Reward 的折扣因子 $$\gamma$$, 这个下面会提到。
  2. 由于随机性,给定初始态和终态,马尔可夫过程 Markov Process 对应的马尔可夫链 Markov Chain 不唯一。

重要概念

在 Agent 与 Environment 的交互过程中。在某一个时刻 t:

  1. Agent 根据对于环境的观测 $$O_t$$ 和收到的激励 $$R_t$$ 来构造 Agent State $$S_t$$(通常,没有特别说明,可认为 $$S_t=O_t$$),并决定如何采取行动(即向环境提交 $$A_t$$)

  2. 环境接收到 Agent 提交的 Action $$A_t$$,需要承受 $$A_t$$ 这个 Action 带来的“代价”,于是向 Agent 反馈回更新后的 $$O_{t+1}$$ 和 $$R_{t+1}$$

如此循环往复。


个体与环境交互,产生了下面的交互轨迹。我们记为 $$\mathcal H_t$$。 这个交互轨迹存储了每一次交互下的 Observation, Action 和 Reward。

$$
\mathcal H_t = O_0, A_0, R_1,O_1, A_1,\cdots, O_{t-1}, A_{t-1}, R_t, O_t
$$

通过这个 $$\mathcal H_t$$ 序列,我们可以构造出 Agent State $$S_t$$

当环境满足 Fully Observable 的性质时,我们认为 Agent State $$S_t = O_t$$ 所以也可以将上式 $$\mathcal H_t$$ 中的所有的 O 符号改为代表 State 的 S 符号。(很多材料中也直接使用 S 符号)

此时,就无需使用 $$\mathcal H_t$$ 来构造 $$S_t$$ 了,直接将 $$O_t$$ 当做 $$S_t$$ 即可。


我们根据 State 来决定采取什么样的 Action,于是我们抽象出策略函数 $$\pi$$,策略函数 $$\pi$$ 以 State 作为输入,然后输出对应的 Action,将其记作 $$\pi(a|s)$$ 有时也简写为 $$\pi$$

我们假设状态空间 S 是离散的,且只可能有 |S| 种不同的状态。同理,假设动作空间 A 也是离散的,并且只可能有 |A| 种不同的动作。

在这样的设定下,我们应该如何理解策略函数 $$\pi(a|s)$$?

系统当前处于 $$s$$ 状态,$$s\in S$$

在状态 $$s$$ 的条件下,应该采取什么样的 Action(选择哪个 a)就是策略函数 $$\pi(a|s)$$ 所考虑的内容。

策略函数可以理解为一类复合函数。 除了随机策略以外,我们可以大致认为,策略函数包括两个部分:action 评估和 action 选择

action 的评估一般使用 Q value 来做

action 的选择一般使用 argmax 或者 $$\epsilon$$-greedy 来做

后面碰到了再说。


个体或者说 Agent 通过与环境的交互,获得 Reward,我们上面提到,强化学习的目标在于,我们需要通过选择 Action(也就是说找到合适的 policy)来尽可能使得 Total Reward 最大。

我们将 Total Reward(有的材料也称 Return 或 future reward)定义为 $$G_t$$

$$
G_t = \sum_{k=0}^\infty {\color{red} \gamma^k}R_{t+k+1} = R_{t+1} + {\color{red} \gamma } R_{t+2} + {\color{red} \gamma^2}R_{t+3} + \cdots + {\color{red} \gamma^k}R_{t+k+1} + \cdots
$$

有几点需要注意:

  1. Total Reward,或者说总 Reward,在字面上理应是从 $$R_1$$ 开始加,而这里为什么是从 $$R_{t+1}$$ 开始加的?因为 $$R_1 \sim R_t$$ 的值已经固定,是常数,是不可被优化的。所以我们着眼于 Future Reward 更多一些。

  2. 式子中的 $$\gamma$$ 即为上面提到的折扣因子 discount factor $$\gamma$$ 通常,discount factor 的范围被限定在 $$0<\gamma<1$$ 之间。

    如果 $$\gamma$$ 值较小,接近于 0 ,由于 随着 k 的增大,$$\gamma^k$$ 会越来越小,即 $$R_{t+k+1}$$ 的权重会越来越小。这意味着,我们更加偏向于考虑短期影响,而不太考虑长期的影响 。

    如果 $$\gamma$$ 值比较接近 1,代表我们会更多地将长期影响纳入考虑。


我们定义状态价值函数 State Value Function 或称 Value Function 或 Value 为【从状态 s 出发,遵循策略 $$\pi$$ 所能获得的期望累计回报】,状态价值函数用于衡量状态 s 有多“好”,定义如下:

$$
\begin{align*}
V^\pi(s) &= \mathbb E_\pi[G_t|S_t=s] {\color{red}=\mathbb E_\pi[R_{t+1}+R_{t+2}+\cdots|S_t = s] } \
&=\mathbb E_\pi [R_{t+1}+G_{t+1}|S_t = s] \
&=\mathbb E_\pi[R_{t+1}+V^\pi(S_{t+1})|S_t = s]\
&={\color{red} \sum_a\pi(a|s)\sum_{s^\prime}p_{ss^\prime}^a \left[ r_{ss^\prime}^a + \gamma V^\pi(s^\prime) \right] }
\end{align*}
$$

第一行的等号,是状态价值函数的定义式。
第二行和第三行的等式,是将 Return $$G_t$$ 按定义展开后,得到的递归形式,或者说是 Bellman Equation 的形式
第四行将 Bellman Equation 打开,等式中的 $$p_{ss^\prime}^a$$ 和 $$r_{ss^\prime}^a$$ 需要注意

$$p_{ss^\prime}^a$$ 是状态转移概率。在马尔可夫决策过程中应该有所描述。具体而言:

我们在状态 s 下,依据策略函数 $$\pi(a|s)$$ 选择一个 a 作为行为提交给 environment 后,会导致环境的观测也就是 observation 发生变化,所以 state 也会跟着变化。

但动作 a 造成的影响,并不是固定的,我们不能保证状态 s 在动作 a 的作用下,总是能变化到某个固定的状态 $$s^\prime$$,也就是说 $$s^\prime$$ 可以等于 state_1, state_2, state_3 或是其他某个 state_i,因此会对应一个概率分布 $$p_{ss^\prime}^a$$ 同理我们有 $$r_{ss^\prime}^a$$


我们定义动作价值函数 Action Value Function 为【从状态 s 出发,采取动作 a 后,遵循策略 $$\pi$$ 所能获得的期望累计回报】

$$
\begin{align*}
Q^\pi(s,a) &= \mathbb E_\pi[G_t|S_t=s, A_t=a] {\color{red}=\mathbb E_\pi[R_{t+1}+R_{t+2}+\cdots|S_t = s, A_t = a] } \
&=\mathbb E_\pi [R_{t+1}+G_{t+1}|S_t = s, A_t = a] \
&=\mathbb E_\pi[R_{t+1}+Q^\pi(S_{t+1}, A_{t+1})|S_t = s, A_t=a]\
&={\color{red} \sum_{s^\prime}p_{ss^\prime}^a \left[ r_{ss^\prime}^a +\gamma \sum_{a^\prime} \pi(a^\prime|s^\prime) Q^\pi(s^\prime, a^\prime)\right] }
\end{align*}
$$

与 $$V^\pi(s)$$ 类似,不再另作赘述。


我们定义优势函数 Advantage Function 为 Q 和 V 的差值。

$$
A(s,a) = Q(s, a) - V(s)
$$

表示在状态 s 下,采取动作 a 比遵循当前策略 $$\pi$$ 更好或更差的程度。 优势函数的主要用途是优化策略,帮助Agent更明确地了解哪些动作在当前状态下是有利的。

如何理解优势函数(Advantage Function)?-知乎


Model-based 与 Model-free

所谓 Model 包括状态转移概率,以及 Reward function。

如果 Model 是已知的,就是 model-based 我们将在完全信息下,进行规划。也就是说,我们可以用动态规划算法 Dynamic Prograrmming,学习所求的 policy

知道 Model 就说明,当 Action 和 State 确定时,我们能够知道状态转移概率 $$p_{ss^\prime}^a$$ 以及对应的 $$r_{ss^\prime}^a$$ 确定值。

相反,如果 leanring 是不依赖于 model 的,也就是不知道 model 那么就称为 model-free。比如 Policy Gradient 方法,就是 Model free 的

后面碰到再细谈。


On-Policy 和 Off-Policy

On-Policy 是说 episode 采样时(behavior policy)和 policy 优化时(target policy)是同一种策略。

Off-Policy 则代表两种策略不同。

后面碰到再细谈。

相关资料

A (Long) Peek into Reinforcement Learning

Loading comments...